为您找到与软件测试工程师算程序员吗相关的共200个结果:
从程序员到软件测试工程师的路该怎么走?我想大家都知道这是一个晋升向上的方向,这条路该怎么走呢?今天小编将与您探讨一下这个问题。
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员,系统架构师,测试工程师五大类。
软件测试工程师(Software Testing Engineer)指理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),测试软件是否具有稳定性(Robustness),写出相应的测试规范和测试用例的专门工作人员。简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时发现软件问题并及时督促更正,确保产品的正常运作。按其级别和职位的不同,分为三类。
水往低处流,人往高处走,大家一般都会有想要向上晋升的愿望。那么从程序员到软件测试工程师是怎么样一个过程呢?从程序员到软件测试工程师的路该怎么走?让我们来了解一下:
国内软件公司对软件测试的态度令人担忧。软件测试工程师不足,开发测试人员比例不合理。据调查,最好的企业中测试人员和开发人员的比例是1:8,有的是1:20,甚至没有专职的软件测试工程师。
曾经参与微软Windows95、Exchange Server4.0和4.5、Internet Explorer4.0和5.0、SQL Server2000开发与测试工作陈宏刚博士尽管已经升任微软亚洲研究院商务及高校关系高级经理,但仍然对国内软件测试水平的落后深有感触。
国内很多企业还处在探索阶段,小企业的运作方式造成其主要精力是要尽快完成初始资本积累。有些企业也了解软件测试的重要性,很努力、很认真的在学,但因为很多原因而学不到精髓,不知道如何去做。于是只能局限于书本上学来的简单的黑盒、白盒测试而已。很多人知道有压力测试和性能测试,但针对产品具体如何去做就不清楚了。
陈宏刚表示,重视测试首先需要有开放性的软件文化,而在很多公司中,测试工程师只是绝对服从的听命角色,没有开发他们的积极性和创造性。一些管理人员对软件开发的流程管理经验不足,仍然用传统企业的方法进行管理,再加上对软件质量的控制理解不对,认为编完程序经过简单的程序员自己测试就可以使用了,而没有认识到软件测试是控制质量最好的方法。
不过,国内还是有一些大型公司和专业公司已经在软件测试方面走上正规。1994年开始接包IBM软件测试项目,1999年软件测试成为公司主体软件外包业务之一的和腾软件就是其中之一。因为客户就是IBM这样的大型软件公司,和腾软件高级副总裁刘忠表示,它们在软件测试管理上,经同国外的公司相差不大,同时也研究和应用了多种软件测试技术。
软件测试工程师
一提到软件测试工程师,很多人就会想到那些反复使用软件,试图在频繁操作中寻找到错误发生的低层次人员或者软件用户。其实这是一种错误的概念,软件测试早已超越了用户使用来发现Bug的基本测试阶段。
陈宏刚介绍说,微软的软件测试工程师分为三种:测试执行者(Basic SoftwareTester)、测试工具软件开发工程师(Software Development Engineer inTest)和高级软件测试工程师(Ad_hoc Tester)
测试执行者负责理解产品的功能要求,然后根据测试规范和测试案例对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,属于最低级的执行角色。
测试工具软件开发工程师负责写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。产品开发后的性能测试、提交测试等过程,都有可能要用到开发的测试工具。对技术要求最强的是这些人,因为它们要具备写程序的技术。“因为不同产品的特性不一样,对测试工具要求也是不同的,就像Windows的测试工具不能用于Office,office的也不能用于SQLserver,微软很多测试工程师就是负责专门为某个产品写测试程序的。”
而Ad_hocTestet属于比较有经验,自己会找方向并做的很好的测试工程师,这要求具有很强的创造性。刚进入微软时,老板也是只给陈宏刚一个操作流程,每天就按照这个规程去做,几天下来,一个Bug都没有发现。陈宏刚也很沮丧,觉得这样挺对不起公司,后来自己问自己:为什么非要这样做!于是换了其他的方法试试,令他吃惊的是,一下就找到很多严重的Bug,当时也不敢声张。有一天,他找到10多个非常严重的Bug,开发经理一下就惊呆了,怒冲冲的跑到陈宏刚面前问:“你是不是改变了测试方式和测试步骤?”陈宏刚有些吓住,说道:“可能改变了一点。”对方说:“我非常生气,但我不是生你的气,而是因为以前测试人员水平太差,或者以前的测试方面有问题,软件中有些Bug存在了半年甚至一年,但直到现在才发现,现在修补这些错误要困难很多!”后来陈宏刚得到了老板的赞许,可以按照自己的想法去做测试。对此,陈宏刚感受颇深:“一方面我体会到了微软非常鼓励创造的文化,同时也感到只遵守教条不是好的测试人员,就和用户一样了。做软件测试工程师同样需要开拓和创造性。”
在开发管理上,测试不应该归属于项目管理,也不应该归属开发人员。这三个部门应该是并驾齐驱,相互协作,测试工程师最终决定产品是否能够发布。
软件测试工程师的素质
因为软件测试仍然处在发展阶段,还没有上升到理论层次。对人员的评测,包括微软在内,都还没有一个统一标准,因此评定软件测试工程师只能根据工作实践进行自然淘汰。
软件测试对逻辑思维、学习能力、反应要求很高,是否有严密的思维和逆向思维也非常重要。陈宏刚介绍说,在五六个人的测试小组时,一半以上的Bug都是他找到的。他认为这同自己数学专业的背景关系密切,数学中有逻辑思维的培训,要善于找出来各方面的因素。比如要证明一个定理,各个方面都考虑到,一个条件不满足就无法证明;但如果证明其不成立,最常用的就是找到一个反例,只要有一点证明不成立就可以了,软件测试也是找这一点。
做测试还要考虑到所有出错的可能性,还要做一些不是按常规做的、非常奇怪的事。除了漏洞检测,测试还应该考虑性能问题,也就是要保证软件运行得很好,没有内存泄漏,不会出现运行越来越慢的情况;在不同的使用环境下,考虑软件的兼容性同样重要。软件测试同产品的规模也有很大的关系,因为软件的bug往往出在大型软件的连接处。
做软件测试工程师需要对软件抱有怀疑态度。这是因为开发人员喜欢想当然,总是找一些有利于自己程序执行的数据,有些开发人员甚至认为不利于程序执行的数据是对代码的玷污和亵渎。而软件测试却要策略性的准备各种数据,从每个细节上设计不同的应用场景,不去想当然的假定任何一个数据是可行的。
在职业素质和交际方面方面,并不是测试工程师爱挑别人毛病才好,反而这个工作要求很强的沟通能力。经常的和开发人员进行沟通,说话办事要很得当,不能指责别人,否则会事倍功半。性格随和才能和开发人员顺畅的沟通,对人和对事是完全不同的两个问题。
如何培养优秀的软件测试工程师
朗川软件测试工程师张建阳从北大力学系毕业之后,曾开发流体力学分析软件,软件缺少测试而产生的问题给她留下了很深的印象。后来去大唐电信做UIM(统一消息管理系统),她发现尽管公司为了鼓励员工找bug采取了很多奖励方法,但还是很少人愿意去做系统测试。而张建阳却从那时查阅翻译了很多国内外的资料,对软件测试产生了浓厚的兴趣。
像张建阳这样在工作中自己定位在软件测试领域的开发人员并不多见,因为程序员更愿意去做开发而不是测试,从大环境上,测试人员收入水平低也是原因之一。而在微软,测试人员和开发人员的工资水平是相同的。
如何改变这种现状呢?有人说可以可以派人去先进的国外软件企业学习,但这种方式因为牵涉到商业秘密,可操作性不大。陈宏刚博士认为更好的方法是引进人才,把在国外大型软件公司工作过、有经验的人才引进来,甚至要高薪聘请。他表示,这不仅仅是一个人的问题,关键是能够把整个软件测试的水准提高一个层次。
引进人才只是开始,更重要的是培养一批软件测试人才。软件开发的教育培训都是比较正规的,各个学校也都设有专业,但软件测试还没有正规的专业毕业生,而且没有评判的标准。陈宏刚博士给很多软件学院建议,开设四方面的软件测试专业基础课:软件测试基础、软件测试开发、高级软件测试案例和行业软件特色测试方法。国内现在已经有了一些软件测试基础的教材,但其他的教材还没有。高级软件测试案例主要是大型软件测试案例,大型软件出现的问题具有很强的代表性。而行业特色软件测试的课程可以开阔学生的视野。陈博士介绍说,在国外,也是极少的高等院校开设测试专业,但可以借鉴民间的培训机构课程。在有一批专业的测试人才出现之后,人们会认识到他们的重要性。
如果你已经开始从事软件测试工作,千万不要认为软件测试没有什么发展的潜力和前途。刘忠从1995年接下IBM的OS2汉化版本的测试开始到现在,他一直工作在软件测试领域,并升到了公司高级副总裁的位置。和腾软件也培养了一批测试工程师,它们从对测试职业将信将疑到明确自己的测试方面的职业目标。刘忠介绍说:“很多人开始做测试执行工作时会说很麻烦、很枯燥,只是一味的埋怨,而不是主动的去学习,他没有看到软件测试背后所隐藏的知识。因为学习可以做这些工作,不学习也可以做这些工作,但质量是不同的。有些人自学和请教了很多测试技术和管理方面的知识,公司自然就会在下个项目中去培养他。”
因此对于一个新手,要在各方面培养自己的能力。首先是要理解各种测试流程,并在理解的基础上转化为自己的知识,以后遇到相似的问题能自己去解决。在测试技能上,要知道测试有那些手段,比如压力测试有哪些方法,哪些工具可以辅助做测试。从专业技能上,面向不同的技术方向,像操作系统、网络、通信等都要从专业上深入了解。这三方面要同步去成长。
软件测试工程师未来的发展
从事软件测试有没有前途,未来的职业发展方向怎样呢?
陈宏刚博士表示,软件测试工程师在微软的发展有几种途径:一种走技术路线,成长为高级软件测试工程师,这时他能够独立测试很多软件,再向上可以成为软件测试架构设计师。第二种就是向管理方向发展,从测试工程师到组长(Lead),再到项目经理(Manager),到更高的职位。第三种可以换职业,做项目管理,做开发人员都可以,很多测试工具软件开发工程师在写测试软件的过程中,因为开发方面积累了经验,同时对软件产品本身产生了自己的看法,很容易转去做产品编程。
陈宏刚博士现在还带着一个测试小组,两个清华软件学院的学生,一个南开的专门做软件测试的博士生,一个北邮的学生,他们负责总部一个产品的测试。陈博士表示,在自己简单的讲讲思路,共同探讨之后,他们一星期就找出了70多个Bug,也感觉学了很多知识,并表示以后专注于软件测试专业,因为他们感觉软件测试真的是一门很深的学科,有很多可以研究的课题。其实微软的测试人员很多也都是硕士、博士,他们同样在做创造性的工作,保证着程序质量,推动着软件的进步。
软件测试是正在快速发展,充满挑战的领域。尽管现在单机版桌面软件的测试已经成熟了很多,但对于网络时代的到临,包括微软在内的公司对基于网络的测试也没有一套完整的体系,也是处于探索中,网络中被攻击的可能性太大,这就是为什么黑客在网络上能兴风作浪的原因。网络测试是一个新环境,而且是很大的挑战。
软件测试未来的发展空间很大,软件测试工程师的职业之路同样充满希望。
浏览量:2
下载量:0
时间:
在求职的时候,言行一致是成功的开始。那关于软件测试工程师的求职范文简历有哪些呢?下面是读文网小编为你整理的软件测试工程师求职简历范文,希望你喜欢。
基本资料:
姓 名: 性 别: 男 出生年月: 1983.01
婚姻状况:未婚 最高学历:本科 工作经验:4年
手 机: E-mail: 当前所在地:
工作经验:
×××公司 2006.6——至今
测试员—>测试工程师—>高级测试工程师
2008年度先进工作者(监控测试组内唯一)
主要工作与职责:
参与监控项目评审会议,设计编写测试计划、方案、用例、报告等相关文档;
监控测试环境的搭建及功能测试、性能测试的执行,测试驱动程序的设计;
参与完成软件测试部门监控实验室规划建设与维护更新;
测试组内成员工作中遇到的技术或业务问题的指导,测试中遇到的疑难问题分析解决,对市场软件使用的技术支持;
负责视频监控项目的基线版本管理、测试过程管理等工作。
项目经验:
2009/10~2010/03 网络视频监控系统
项目描述:该系统属于安防监控类软件,系统主要包括客户端接入服务、存储服务、分发服务及客户端等十一个部分,提供用户管理、设备管理、视频浏览、设备控制、语音对讲、告警信息处理、重要信息存储等分类业务处理功能,用户以C/S方式访问系统。
开发环境:C++语言、VS2005、SQL server2005
运行环境:服务端Windows 2003,客户端Windows XP
配置管理工具:SVN、CQ
担任职务:测试经理
测试组人数:4人
责任描述:1、测试计划、测试方案及部分测试用例(调度服务、分发服务、前端接入服务)编写;2、环境搭建、执行测试;3、项目的基线版本管理、程序编译、测试过程管理、测试问题沟通等工作;4、测试报告编写及评审,产品发布会。
测试方法:黑盒手工测试为主,辅助使用工具LR、QTP,边界值、场景法、等价类法设计测试用例;测试策略:单元测试、集成测试、系统测试(稳定可靠性、负载压力、系统容量、用户界面、用户手册等),系统性能举例:单台分发服务并发转发视频路数、单台存储服务并发录像路数。
心得体会:提高了自己协调沟通及领导能力,加深了自己对测试管理的认识。
2008/03~2009/12 监控SDK2.X
项目描述:该软件为公司DVS及IPC硬件产品对应的软件开发包,以DLL动态库形式提供给第三方用户。主要包括三部分:网络SDK、播放SDK及录像SDK。
开发环境:VC++6.0、DirectX 9.0
运行环境:Windows 2003、Windows XP
配置管理工具:SVN、Future
担任职务:测试经理
责任描述:1、测试计划、方案、所有测试用例编写;2、80%以上测试驱动程序编写设计及测试的执行;3、项目的基线版本管理、程序编译、测试过程管理、测试问题沟通等工作;4、测试报告编写、评审及产品化。
测试方法:灰盒测试,以程序向外提供的接口为直接测试对象,边界值、等价类法设计测试用例,设计驱动程序对接口进行单元测试。程序可靠性及性能主要通过集成到公司其他软件系统中进行。
心得体会:提高了自己对C++程序代码读写能力、分析问题解决问题能力,认识到白盒测试可以查出黑盒很难测出的bug,认识到测试过程对改善优化研发流程发挥的作用性。
2009/07~2009/09 linux流媒体网关
项目描述:实现手机对监控视频的实时浏览和控制;系统主要包括WEB子系统、RTMP子系统、前端接入子系统。
总体技术:FLASH播放+视频转码FFMGEG+PHP+开发平台 debian 5.0
运行环境:redhat(5.0以上版本)+ Apache+ Mysql 5.0+ Adobe-Flash Lite3.0+手机(操作系
统 S60、Windows Mobile)+ IE6.0以上版本
担任职务:测试经理
测试工具:SVN、CQ、LR
责任描述:1、测试计划、方案、部分测试用例(RTMP子系统、前端接入子系统)编写;2、环境搭建、测试执行(利用LR测试web子系统并发登陆用户数);3、项目的基线版本管理、测试过程管理、测试问题沟通等工作;4、测试报告编写、评审及产品化。
心得体会:学习到linux、Apache 、Mysql方面的新知识,对LR性能测试工具有了进一步认识。
专业技能:
熟悉软件研发流程、测试流程,能熟练设计编写测试计划、方案、用例等测试相关文档,熟悉版本管理工具SVN、缺陷管理工具CQ;
熟悉SQL语言,熟悉MS SQL server数据库,了解oracle、mysql数据库;
较熟悉C++语言,能够设计驱动执行白盒测试,走读C++/C源代码;
网络基本知识,常用网络环境搭建,有linux系统使用经验;
有LR、QTP测试工具使用经验,了解shell、python脚本。
自我评价:
有比较丰富的测试经验,热爱计算机等技术;
细心、耐心、责任心,领导评价:任务交给我很放心。
教育背景:
2002.9-2006.6 ×××大学 计算机科学与技术专业 本科
英语水平:
CET4,听、说、读、写能力一般
其他:
2004年 国家二等奖学金,学院400人仅有的两人之一;
2004年 十佳大学生,学院400人仅有的十人之一。
浏览量:2
下载量:0
时间:
程序员和软件测试工作哪个比较累?这个问题是很多刚今日软件相关行业的新人们比较关注的问题,那么到底程序员和软件测试工作哪个比较累呢?小编觉得要解决这个问题,首先要分别了解一下它们各自的工作内容,然后再做出比较。
程序员是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员,系统架构师,测试工程师五大类。
计算机科学发展到今天(21世纪初期),程序员从事的人群很多,分工也不相同,从大的方面可以分为以下几类:asp程序员、jsp程序员、delphi程序员、php程序员、powerbuilder程序员、C程序员、linux程序员、net程序员、vb程序员、java程序员、javascript程序员、C++程序员、Python程序员、android程序员、iOS程序员。
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对程序员小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
一般的程序员都有四年的在专业领域的学习,需要一个在程序领域的学士学位获得者,不论是数学方面的还是工程方面的都是可以的。
大约有20%的人在这一领域的计算机科学和工程学拥有更高的学位。还有很小一部分程序员是自学的,尽管一些专业性的学校或者综合大学可以提供,但是也需要一些别的途径来提供相关的人才。尽管学历是比较重要的,但是公司经常把重点放在应聘者的工作经验上,很多刚从大学毕业的大学生虽然有引人注目的学位证书,但是他们找不到工作是因为他们缺乏经验。一个程序员虽然没有正规的学历,但是如果一个人拥有程序设计的深厚知识背景或者丰富的工作经验的话,那么他的机会要比有学历的应届毕业生大得多。所以要尽量抓住有用的工作和实习机会,这样的话在毕业后你就会发现,多实习让你有更多的经验,在找工作的时候就有更多的机会。
对于职业程序员,另外一个重要的方面就是,程序员需要不断提升自己的业务技术,他的技术必须一直保持在一个较高的水平,并且要不断发展,程序员也要寻找贸易的机会,要参加研讨会,在周刊上发表文章和接受职业教育,这些使程序员在自己的领域中分级或者不断并排前进。
熟练开发工具
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
熟知数据库
为什么数据库是如此重要?作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等。
了解操作系统
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习的平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。懂得网络协议TCP/IP。
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
明白DCOM/CORBA/XML/WEBServices存在的意义
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。
不要将软件工程与CMM分开
大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
模块化思维能力
作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
从经济学的层面上来看,软件人才也是劳动力商品中的一种,是由价值规律决定的,有需求才会有市场,才会有人愿意为他们支付更高的工资。当前,包括中国在内,全球都在争夺IT人才,当IT人才的社会总需求大于总供给时,不可避免就会出现人才升值的现象。
确认通过审查方案的目标,输入数据,分析师,监事,和客户的输出要求的项目要求。
安排项目要求在编程序列分析要求;准备工作流程图和使用计算机知识的能力,题材,编程语言和逻辑图。
编码工作流程的信息转换成计算机语言的项目要求。
通过输入编码信息的计算机程序。
确认程序操作进行测试,修改程序序列和/或代码。
准备写操作指令供用户参考。
保持历史记录,通过记录方案的制定和修订。
维护客户的信心和保护保密的业务。
技能/资格:一般的编程技巧,分析信息,解决问题,软件算法设计,软件性能优化,注重细节,软件设计,软件调试,软件开发基础,软件文档,软件测试。程序员其实分为很多种,大家开发的语言可能不尽相同,但是都是有他们的共同点。
#p#副标题#e#
软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。
软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
测试过程
第一步:对要执行测试的产品/项目进行分析,确定测试策略,制定测试计划。该计划被审核批准后转向第二步。测试工作启动前一定要确定正确的测试策略和指导方针,这些是后期开展工作的基础。只有将本次的测试目标和要求分析清楚,才能决定测试资源的投入。
第二步:设计测试用例。设计测试用例要根据测试需求和测试策略来进行,进度压力不大时,应该设计的详细,如果进度、成本压力较大,则应该保证测试用例覆盖到关键性的测试需求。该用例被批准后转向第三步。
第三步:如果满足“启动准则”(EntryCriteria),那么执行测试。执行测试主要是搭建测试环境,执行测试用例。执行测试时要进行进度控制、项目协调等工作。
第四步:提交缺陷。这里要进行缺陷审核和验证等工作。
第五步:消除软件缺陷。通常情况下,开发经理需要审核缺陷,并进行缺陷分配。程序员修改自己负责的缺陷。在程序员修改完成后,进入到回归测试阶段。如果满足“完成准则”(ExitCriteria),那么正常结束测试。
第六步:撰写测试报告。对测试进行分析,总结本次的经验教训,在下一次的工作中改。
软件测试过程管理,主要包括软件测试是什么样的过程,如何评价一个软件测试过程,如何进行配置管理和测试风险分析以及测试成本的管理。
熟悉软件测试流程,有智能产品/网络应用经验者优先考虑;
熟悉软件测试理论和方法,能够熟练应用多种测试工具;
熟悉 C/C++/C#/Java编程, 有网络协议测试经验;
有较强的逻辑分析能力和学习能力,具备较强的总结能力;
热爱软件测试工作,可以胜任重复性工作。
编写用例
软件测试员是指根据测试计划和测试方案进行软件测试;能够针对软件需求开发测试模型,制定测试方案,安排测试计划,并对测试项目进行管理的专业人员。每一阶段的测试都是为了减少软件的bug和提升软件的功能需求,所以测试人员必须具备良好的编程功底。
就业竞争小
人才供不应求让软件测试人员的就业竞争压力明显小于同类其它职业,有利于从业者的身心健康。另外,由于软件测试在我国起步较晚,独立设置测试部门、对测试人员有强烈需求的多为独具慧眼的大中型IT企业。软件测试人才不需要在小企业积累经验就能获得知名企业的入门通行证,工作起点高于同类其它职业。
高薪
刚入行的软件测试人员,起步的月薪就在3000-5000元左右,远高于同龄人2000元的薪资水平,随着工作经验的丰富以及能力的提升,这份薪水将一路看涨。
就业质量高
与其他IT职位相比,软件测试人员最大的优势就是发展方向太多了。由于工作的特殊性,测试人员不但需要对软件的质量进行检测,而且对于软件项目的立项、管理、售前、售后等领域都要涉及。在此过程中,测试人员不仅提升了专业的软件测试技能,还能接触到各行各业,从而为自己的多元化发展奠定了基础。
无性别歧视
如果把软件开发领域比作“男子单打”,那么,软件测试领域就是“混合双打”。由于工作的特殊性,软件测试人员更要具有认真、耐心、细致、敏感等个性元素,而这在一定程度上与女性的个性气质相吻合。据了解,很多IT企业中软件测试人员的比例更趋向男女平衡,甚至出现女性员工成主流的情况。
浏览量:2
下载量:0
时间:
英文简历是使用英文写的简历。英文简历(resume)并无固定不变的单一形式,应聘者完全可以根据个人的具体情况来确定采用何种形式,灵活设计。
name: xxx sex: male
ethnic: chinese political features: members
academic qualifications (degree): bachelor of professional: industrial electric automation
tel :0755-12345678 mobile: 13900000000 email address: quduwen@sohu.com; quduwen@163.com
educational background
graduate institutions: beijing industrial university 1993.9 - 1997.7 industrial electric automation
majors: the principle of self-control, power drag, electronics, automatic test systems, computer organization and structure, and computer hardware and interface circuit design, assembly language programming, c.c + + programming, software engineering principles of computer networks, etc.
other: other training
* microsoft certified systems engineer training courses: windows nt technology, windows nt enterprise, networking with tcp / ip on windows nt, Ⅱ s4.0 windowsnt
* national levels through the examination in english, reading and translation ability on several occasions for the machinery industry press translation of computer books, and has been published.
work experience
* may 1998 --- the company has xx
network systems engineer
● cisco, ibm technical support for networking products
network system (lan and wan) design and planning, to answer user queries, according to user needs the best solution; cisco, ibm networking products on-site debugging and system maintenance
● customer technical training, and internal and technological exchanges and training
the basic principles of network and technology: lan, wan, tcp / ip, atm, as well as cisco, ibm network equipment debugging process; on ibm aix basic systems management and senior management, netview,
nfs, hacmp, etc.
● have taken part in the project
design, installation, commissioning, "jilin 97 projects" - integrated management system in jilin province atm telecommunications network and the host system, changsha cigarette factory, jinzhou cooperative banks, people's education publishing house information systems; the design of the yunnan provincial post and telecommunications office information integration system, radio, film and television in jinan atm broadband integrated services network, cable broadband network in shaanxi province.
september 1996 * march 1998 --- xx company
system administrator / engineer
● chinagbn internet network information center, systems management
proficiency in unix (sun solaris) operating systems, network management and to participate in the formation of a chinagbn internet network center (including network design, installation system, the fbi, maintenance, network programming)
● chinagbn jingqiao six cities network web site building
internet web site to participate in the center and its overall planning and construction of the backbone network and satellite connectivity, satellite network to the backbone, x.25 packet switching, frame relay, isdn and ddn and related equipment to understand
● chinagbn internet network center web system administrator
profile
with extensive work experience, practical responsibility seriously, and have excellent communication skills, has presided over many of the users and technical briefings and training, access to users and companies alike. ministry of electronics industry in the "three gold projects show exhibition style" to the guests on the user group chinagbn green solution.
i character
moderate, modest, self-discipline, self-confidence (based on the person's circumstances).
浏览量:2
下载量:0
时间:
英文简历是使用英文写的简历。英文简历(resume)并无固定不变的单一形式,应聘者完全可以根据个人的具体情况来确定采用何种形式,灵活设计。
Name :YJBYS YJBYSGender :
Registered residence : Nationality :
Wedlock : Age :
Nowaday location : Stature :
Card type :
Career Will
School : Hainan Normal University
Major/Curriculum : Politics
Start working : Within 1 week
Target job position : System Testing QA Project Managaer Reliability Engeneer
Desired salary : 8000~9000Yuan/Month
Target location : Shenzhen Guangdong Dongguan Guangdong
Work experience : 5 years ,10 months Work Experiences
Profession experience :
Language level : English:CET-4
Computer skills : Excellent
Vocational skill/specialty : 1. 6 years experiences on reliability test area for products as Phone,Notebook,Netbook,Pad and All In One computer product.
2. Can draft test specifications,test criterion,training test operator and manage lab.
Self assessment : 1. Confident,Sincerity and Humorous, have good communication and coordination skills,
2. Have a wide interest, such as sporting,reading,music poetry and so on…
Education/Training
Time School Major/Curriculum Education/Training
2002-9To2006-7 Hainan Normal University Politics Bachelor Degree
>>Work Experience So far service for 2 companies 5 years ,10 months Work Experiences
(the company name has been screened) (2011-6 To Present)
Company nature : Taiwan-funded Enterprise
Company profession : Manufacturing
Position name : Reliability Engineer
Monthly salary : Secrecy
Work description : 1. Know well on Motorola mobile phone projects reliability test.
Mechanical section: vibration test, drop test, dust test, loading test, squeeze test, purse test, red dye test, cocktail test, oleic acid test, RCA test, pencil hardness testing, ball drop test, flip life test, keyboard life test,keyboard tactility test,interface life test.etc.
Environmental section: thermal shock test, temperature and humidity test, salt spray test, solar test and so on.
Electronic section: Signal testing, SQE test, EMI testing, Bluetooth test, GPS test, Parametric test, ESD test, Camera test and etc…
Material section: Use microscope and X-ray machine for the Metal and Plastic parts’ film thickness analysis and size section analysis.
2. Hold a new project kick off meeting, to discuss hidden problems with RD in the design stage. Review the problems by weekly,and require RD provide final solutions.Forecast the follow up reliability test possible issues, and keep tracing countermeasures from RD.
3. Prepare test related files,specification and test fixtures. Confirm test samples’ quantity, and test schedule.When testing ongoing,updates test status and schedule to customer regularly. Issue accured,report detailed symptoms and errors to customer in time and hold issue tracing meeting with RD until it was resolved.
4. Summarized issue happend history and final solutions for RD/PE department’s reference, avoid similar problems occurred again.
Reason for quit : Factory Transfer to North of China
(the company name has been screened) (2006-8 To 2011-5)
Company nature : Taiwan-funded Enterprise
Company profession : Computers(Hardware、Network Device)
Position name : Reliability Engineer
Monthly salary : Secrecy
Work description : 1. Acted as HP Notebook/Vodafone Pad/NEC AlO PC Project Manager,leading reliability test for new project from design stage to mass production stage.
2. Familiar with Notebook/Netbook/Pad/AIO PC reliability test principle and test process. according customers’ requirements and control plan, decides test items,test samples,and test schedule.supervises testers reliability testing whether correctly,make a judgment to the test result, review the test report and reply to customers in time.
浏览量:2
下载量:0
时间:
2008/03—2008/08:武汉易维:软件测试工程师
2004/04—2008/03:武汉福星:工控开发软件测试
另2007/04—2007/09软件测试培训
批注:需要详细描述你的工作职称,职位和取得的成绩。
浏览量:1
下载量:0
时间:
导语:软件工程师一般指从事软件开发职业的人。
一个优秀的测试工程师必须具备的素质如下:
1、很强的责任心
2、良好的沟通能力
3、团队合作精神
4、耐心、细心、信心
5、时时保持怀疑态度,并且有缺陷防护意识
6、具备一定的编程经验
浏览量:2
下载量:0
时间:
勤奋,负责,品德良好做事认真,学习能力较强,敢于承担责任,待人接物有分寸
浏览量:3
下载量:0
时间:
面试题质量的好坏直接影响面试的水平,下面是由读文网小编分享的华为软件测试面试题,希望对你有用。
一、判断题
1.软件测试的目的是尽可能多的找出软件的缺陷。(Y)
2.Beta 测试是验收测试的一种。(Y)
3.验收测试是由最终用户来实施的。(N)
4.项目立项前测试人员不需要提交任何工件。(Y)
5.单元测试能发现约80%的软件缺陷。(Y)
6.代码评审是检查源代码是否达到模块设计的要求。(N)
7.自底向上集成需要测试员编写驱动程序。(Y)
8.负载测试是验证要检验的系统的能力最高能达到什么程度。(N)
9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(N)
10.代码评审员一般由测试员担任。(N)
11.我们可以人为的使得软件不存在配置问题。(N)
12.集成测试计划在需求分析阶段末提交。(N)
二、选择
1.软件验收测试的合格通过准则是:(ABCD)
A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
B. 所有测试项没有残余一级、二级和三级错误。
C. 立项审批表、需求分析文档、设计文档和编码实现一致。
D. 验收测试工件齐全。
2.软件测试计划评审会需要哪些人员参加?(ABCD)
A.项目经理
B.SQA 负责人
C.配置负责人
D.测试组
3.下列关于alpha 测试的描述中正确的是:(AD)
A.alpha 测试需要用户代表参加
B.alpha 测试不需要用户代表参加
C.alpha 测试是系统测试的一种
D.alpha 测试是验收测试的一种
4.测试设计员的职责有:(BC)
A.制定测试计划
B.设计测试用例
C.设计测试过程、脚本
D.评估测试活动
5.软件实施活动的进入准则是:(ABC)
A.需求工件已经被基线化
B.详细设计工件已经被基线化
C.构架工件已经被基线化
D.项目阶段成果已经被基线化
三、添空
1.软件验收测试包括: 正式验收测试,alpha测试,beta测试。
2.系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以合在一起,分开写只要写出15就满分哦)
3.设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。
4.对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。
四、简答(资料是搜集整理的,感谢前辈的解题)无
1.区别阶段评审的与同行评审
同行评审目的:发现小规模工作产品的错误,只要是找错误;
同行评审人数:3-7人人员必须经过同行评审会议的培训,由SQA指导 同行评审内容:内容小一般文档 < 40页, 代码 < 500行
同行评审时间:一小部分工作产品完成
阶段评审目的:评审模块阶段作品的正确性 可行性 及完整性
阶段评审人数:5人左右评审人必须是专家 具有系统评审资格
阶段评审内容: 内容多,主要看重点
阶段评审时间: 通常是设置在关键路径的时间点上!
2.什么是软件测试
为了发现程序中的错误而执行程序的过程
3简述集成测试的过程
系统集成测试主要包括以下过程:
1. 构建的确认过程。2. 补丁的确认过程。3. 系统集成测试测试组提交过程。4. 测试用例设计过程。5. 测试代码编写过程。6. Bug的报告过程。7. 每周/每两周的构建过程。8. 点对点的测试过程。9. 组内培训过程。
4 怎么做好文档测试
1.仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。2,。检查文档的编写是否满足文档编写的目的3.内容是否齐全,正确4.内容是否完善 5.标记是否正确
5 白盒测试有几种方法
总体上分为静态方法和动态方法两大类。
静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义 动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
6系统测试计划是否需要同行审批,为什么
需要,系统测试计划属于项目阶段性关键文档,因此需要评审。
7 Alpha测试与beta的区别
Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。
Beta测试当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。
8比较负载测试,容量测试和强度测试的区别
负载测试:在一定的工作负荷下,系统的负荷及响应时间。
强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。
9测试结束的标准是什么?
用例全部测试。 覆盖率达到标准。 缺陷率达到标准。 其他指标达到质量标准
10描述软件测试活动的生命周期?
测试周期分为计划、设计、实现、执行、总结。其中:
计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等;
设计:完成测试方案,从技术层面上对测试进行规划;
实现:进行测试用例和测试规程设计;
执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。 总结:记录测试结果,进行测试分析,完成测试报告。
11软件的缺陷等级应如何划分?
A类—严重错误,包括以下各种错误: 1. 由于程序所引起的死机,非法退出 2. 死循环 3. 数据库发生死锁 4.因错误操作导致的程序中断 5. 功能错误 6. 与数据库连接错误 7. 数据通讯错误
B类—较严重错误,包括以下各种错误: 1. 程序错误 2. 程序接口错误 3.数据库的表、业务规则、缺省值未加完整性等约束条件
C类—一般性错误,包括以下各种错误: 1. 操作界面错误(包括数据窗口内列名定义、含义是否一致) 2. 打印内容、格式错误 3. 简单的输入限制未放在前台进行控制 4. 删除操作未给出提示 5. 数据库表中有过多的空字段
D类—较小错误,包括以下各种错误: 1. 界面不规范 2. 辅助说明描述不清楚 3. 输入输出不规范 4.长操作未给用户提示 5. 提示窗口文字未采用行业术语 6. 可输入区域和只读区域没有明显的区分标志
E类—测试建议四、简答题(共37分)
5. 白盒测试有那几种方法?(6 分)
1代码检查法2静态结构分析法。3静态质量试题法。4逻辑覆盖法
以上是由小编分享的华为软件测试面试题的全部内容,希望对大家的面试有帮助!
看过“华为软件测试面试题”
浏览量:2
下载量:0
时间:
简历是优秀网络工程师招聘者对未曾谋面的求职者的第一印象,写好个人简历很重要。下面是由读文网小编分享的优秀网络工程师简历范文,希望对你有用。
姓名: quduwen
性别: 女
民族: 汉族
出生日期: ****年**月**日
户口: 湖北省
学历: 本科
技术职称: 中级
毕业院校: 南京理工大学
所学专业: 计算机科学与技术
外语水平: 英语 (pets-4)
工作年限: 1年
联系方式: ******
工作类型: 全职
单位性质: 不限
期望职位: 信息安全工程师、售前/售后支持工程师、系统集成工程师、系统管理员、网络工程师
工作地点: 杭州市
期望月薪: 不限/面议
教育经历
2004/09 -- 2008/06:南京理工大学 | 计算机科学与技术 | 本科
培训经历
2006/07 -- 2006/08:南京niit培训
培训课程:ccna
所获证书:信息技术荣誉证书
培训描述:使用可用的配置工具完成设备初始化配置;根据新需求,能够通过增删改等方式实现新功能;
使用命令行界面确定网络性能和状态;
根据给定的需求,实现接入层交换机配置;
使用命令行,实现vlan、vtp、ieeee802.1q、isl配置;
叙述静态和动态路由协议(rip、ospf、igrp、eigrp)的功能和操作;
使用show、debug命令确定路由协议的异常;
能够配置标准和扩展的访问列表;
使用命令行接口配置串行接口(ppp)
工作经验
2008/03 -- 2009/07: 南京索亚有限公司 网络工程师
(1)维护oa办公自动化系统,负责对办公区的所有网络设备进行综合管理和分配。
(2)对员工在操作电脑时出现的各种问题给予技术支持。并指导其操作方法和操作要点。减少因电脑故障而影响工作效率。
(3)负责及时维护服务器,并对出现的各种问题及时采取保护措施。确保网络通信传输畅通。
(4)掌控服务器的配置情况及配置参数变更情况,备份各个服务器的配置文档。
(5)对运行关键业务网络的主干设备配备相应的备份设备,并配置为热后备设备;对关键数据库进行实时备份,避免因外界原因和内部原因导致关键数据的丢失。
(6)负责完成网络布线配线架的管理,确保配线的合理有序;
(7)对企业内部的监控设施进行日常维护和监控。
(8)掌控用户端设备接入网络的情况,以便发现问题时可迅速定位;
(9)采取具体技术措施,对网络内经常出现的用户需要变更位置和部门的情况进行管理;
(10)实时监控整个局域网的运转和网络通信流量情况;禁止员工浏览非法网站及恶意网页运行。破坏整个电脑系统的正常运行。
(11)定制、发布网络基础设施使用管理办法并监督执行情况。通告因计算机软硬件设备出现的故障而无法正常工作的相关信息。
2009.8---2009.9 杭州恒远办公设备有限公司 电子商务
(1)维护公司局域网,保证公司内部能正常上网
(2)维护公司网站,添加、修改、删除公司及公司产品信息
(3)注册淘宝商务
专业技能
熟悉windows系列、linux操作系统,熟练使用microsoft office系列办公软件;
精通pc机和服务器的硬件架构及故障处理;
精通代理、视频、论坛的架设和维护;
熟练掌握局域网搭建和网络设备的基本维护,对osi/rm和tcp/ip模型有深入的研究;
精通cisco路由交换及防火墙设备,熟悉vlan、vtp、pst、ppp、ospf、等配置命令;
精通erp(enterprise resource planning)的操作
浏览量:3
下载量:0
时间:
在求职面试过程中,要做好知识、技能和从业态度等方面的必备工作,下面是读文网小编为大家带来的程序员面试题,相信对你会有帮助的。
求一个论坛的在线人数,假设有一个论坛,其注册ID有两亿个,每个ID从登陆到退出会向一个日志文件中记下登陆时间和退出时间,要求写一个算法统计一天中论坛的用户在线分布,取样粒度为秒。
一天总共有 3600*24 = 86400秒。
定义一个长度为86400的整数数组int delta[86400],每个整数对应这一秒的人数变化值,可能为正也可能为负。开始时将数组元素都初始化为0。
然后依次读入每个用户的登录时间和退出时间,将与登录时间对应的整数值加1,将与退出时间对应的整数值减1。
这样处理一遍后数组中存储了每秒中的人数变化情况。
定义另外一个长度为86400的整数数组int online_num[86400],每个整数对应这一秒的论坛在线人数。
假设一天开始时论坛在线人数为0,则第1秒的人数online_num[0] = delta[0]。第n+1秒的人数online_num[n] = online_num[n-1] + delta[n]。
这样我们就获得了一天中任意时间的在线人数。
浏览量:3
下载量:0
时间:
回答面试题是java程序员个人求职者在求职面试过程中必须完成的环节。下面是读文网小编为大家带来的2017java程序员面试题,相信对你会有帮助的。
一、基本数据结构
1. 队列和栈的区别和常用操作
2. 队列的实现方式(单向链表、双向链表)
3. 基于队列的算法(主要是排序算法:归并排序,二分法插入排序可以做重点(这两个排序通常会被用来做动态有序队列的维护)。至于快速排序,基本上都用现成的程序库,不需要掌握)
4. 图的基本概念 (有向图,无向图)
5. 图的基本表达方法(邻接矩阵,链接表)
6. 图的基本算法
a) 最短路径Dijstra
b) 最小生成树 Prim
7. 树的基本概念(二叉树,平衡树,森林)
8. 树的基本表达方法
9. 树的相关算法
a) 遍历算法(深度优先、广度优先)构
b) 平衡树(B树)
c) 其他算法(Haffman树)
数据库:资料下载
点击下页还有更多>>>2017java程序员面试知识点
#p#副标题#e#
二、基本概念
1. 数据库、表、视图、Sequence、Index
2. 数据类型的区别(Char 和 varchar的区别)
3. 关系 (外键、主键。1:1, 1:n,n:n关系在数据库中的实现)
4. 范式
三、应用
1. 基本Sql语言
2. Outer join (left, right, full)和 inner join
3. Transaction概念
4. Transaction和Connection的关系
四、高级应用
1. DAO模型
2. Connection Pool
3. OR Mapping Tools (Hibernate)
五、基本概念
1. 语言基本概念
a) Abstract,static,和final修饰符
2. 各种不同类型的类型
a) Normal Class
b) Abstract Class
c) Interface
3. 特殊类型
a) Exception (unchecked 和 checked)
b) System
c) Classloader
d) Thread + Runnable
e) Serializable
f) Comparable
g) Cloneable
h) Object
HashCode ()
Equals ()
Clone ()
ToString ()
4. 基本Pattern的实现
a) Singleton
b) Utility class
5. 对象的基本概念
a) Create a object
b) Lifecycle of object
c) Object reference 和Object的关系
存储位置(Heap和Stack)
对象赋值和修改
二、中级概念
1. String的基本操作方法
2. Java. collections中的基本对象
a) Collection
b) List
c) Set
d) Map
e) 两个Utils类:Collections和Arrays
3. Concurrency的基本概念
a) synchronized
b) Thread 和 runnable的基本概念
c) Concurrency (JDK 1.5)的基本使用方法
ReadWriteLock
Thread pool
d) Dead lock的原因和诊断方法
4. 第三方Utils库的使用方法
a) Log4j
b) Commons-xxx
5. Heap和Garbage Collection
a) Object reuse (Object pool, 对基本类型对象,使用Value Of代替new)
b) Memory leak的原因和诊断方法
六、高级概念
1. J2EE/EJB
a) Stateless / Stateful Session Bean
b) Servlet/MVC/struts
c) Webservice (WSDL/SOAP/AXIS/X Fire)
2. Spring framework
a) 基本概念(IoC, AOP)
3. Hibernate
看过“2017java程序员面试题”
浏览量:2
下载量:0
时间:
高级软件工程师面试的时候,会被问到哪些问题呢?下面是读文网小编为大家带来的高级软件工程师面试题,相信对你会有帮助的。
什么是中间件?
中间件就是程序中可织入的,可重用的,与业务逻辑无关的各种组件。
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
分类:数据访问中间件,远程调用中间件,消息中间件,交易中间件,对象中间件。 举例:
1,RMI(Remote Method Invocations, 远程调用)
2,Load Balancing(负载均衡,将访问负荷分散到各个服务器中)
3,Transparent Fail-over(透明的故障切换)
4,Clustering(集群,用多个小的服务器代替大型机)
5,Back-end-Integration(后端集成,用现有的、新开发的系统如何去集成遗留的系统) 6,Transaction事务(全局/局部)全局事务(分布式事务)局部事务(在同一数据库联接内的事务)
7,Dynamic Redeployment(动态重新部署,在不停止原系统的情况下,部署新的系统) 8,System Management(系统管理)
9,Threading(多线程处理)
10,Message-oriented Middleware面向消息的中间件(异步的调用编程)
11,Component Life Cycle(组件的生命周期管理)
12,Resource pooling(资源池)
13,Security(安全)
14,Caching(缓存)
看过“高级软件工程师面试题”
浏览量:2
下载量:0
时间:
面试题是面试官为了考查你的成绩而出的试题。下面是读文网小编为大家带来的2016 java面试题,相信对你会有帮助的。
一、Java基础
第01题:
作用域public,private,protected,以及不写时的区别
第02题:
Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)
第03题:
Static Nested Class 和 Inner Class的不同
第04题:
&和&&的区别
第05题:
Collection 和 Collections的区别
第06题:
什么时候用assert
第07题:
String s = new String("xyz");创建了几个String Object
第08题:
Math.round(11.5)等於多少? Math.round(-11.5)等於多少
第09题:
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错
第10题:
Java有没有goto
第11题:
数组有没有length()这个方法? String有没有length()这个方法
第12题:
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
第13题:
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别
第14题:
给我一个你最常见到的runtime exception
第15题:
error和exception有什么区别
第16题:
List, Set, Map是否继承自Collection接口
第17题:
abstract class和interface有什么区别
第18题:
abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized
第19题:
接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)
第20题:
构造器Constructor是否可被override
第21题:
是否可以继承String类
第22题:
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后
第23题:
用最有效率的方法算出2乘以8等於几
第24题:
两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对
第25题:
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
第26题:
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
第27题:
ArrayList和Vector的区别,HashMap和Hashtable的区别
第28题:
char型变量中能不能存贮一个中文汉字?为什么?
第29题:
GC是什么? 为什么要有GC
第30题:
float型float f=3.4是否正确?
第31题:
介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)?
第32题:
抽象类与接口?
第33题:
STRING与STRINGBUFFER的区别。
第34题:
谈谈final, finally, finalize的区别
第35题:
面向对象的特征有哪些方面
第36题:
String是最基本的数据类型吗
第37题:
int 和 Integer 有什么区别
第38题:
运行时异常与一般异常有何异同
第39题:
说出ArrayList,Vector, LinkedList的存储性能和特性
第40题:
HashMap和Hashtable的区别
第41题:
heap和stack有什么区别
第42题:
Java的接口和C++的虚类的相同和不同处
第43题:
Java中的异常处理机制的简单原理和应用
第44题:
垃圾回收的优点和原理。并考虑2种回收机制
第45题:
你所知道的集合类都有哪些?主要方法?
第46题:
描述一下JVM加载class文件的原理机制?
第47题:
排序都有哪几种方法?请列举
第48题:
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
第49题:
一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
第50题:
java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
第51题:
java中会存在内存泄漏吗,请简单描述。
第52题:
java中实现多态的机制是什么?
第53题:
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收
第54题:
静态变量和实例变量的区别?
第55题:
什么是java序列化,如何实现java序列化?
第56题:
是否可以从一个static方法内部发出对非static方法的调用?
第57题:
写clone()方法时,通常都有一行代码,是什么?
第58题:
在JAVA中,如何跳出当前的多重嵌套循环?
第59题:
List、Map、Set三个接口,存取元素时,各有什么特点?
第60题:
说出一些常用的类,包,接口,请各举5个
第61题:
写一个Singleton出来。
第62题:
启动一个线程是用run()还是start()?
第63题:
java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
第64题:
sleep() 和 wait() 有什么区别?
第65题:
同步和异步有何异同,在什么情况下分别使用他们?举例说明。
第66题:
当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
第67题:
请说出你所知道的线程同步的方法。
第68题:
多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
第69题:
线程的基本概念、线程的基本状态以及状态之间的关系
第70题:
简述synchronized和java.util.concurrent.locks.Lock的异同 ?
第71题:
java中会存在内存泄漏吗,请简单描述
第72题:
Object的方法
第73题:
文件系统的几个类:FileInputStream、FileOutputStream、FileReader、FileWriter的区别
第74题:
什么是进程和线程?两者的区别是什么?
第75题:
CORBA是什么?用途是什么?
第76题:
描述一下JVM加载class文件的原理机制?
第77题:
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后
第78题:
写一个方法,将Date类型转为String类型/将String类型转为Date类型
第79题:
写一个排序方法,任意/快速查找
第80题:
写一个方法将excel中的数据导入到程序中
第81题:
String s = new String("xyz");创建了几个String Object?
第82题:
用最有效率的方法算出2乘以8等于几?
第83题:
有a,b两个变量,不用第三个变量,交换a,b的值
第84题:
描述一下JVM 加载class 文件的原理机制?
第85题:
char 型变量中能不能存贮一个中文汉字?为什么?
#p#副标题#e#
二、JavaWeb
第01题:
forward 和redirect的区别
第02题:
jsp有哪些内置对象?作用分别是什么?
第03题:
jsp有哪些动作?作用分别是什么?
第04题:
JSP中动态INCLUDE与静态INCLUDE的区别?
第05题:
两种跳转方式分别是什么?有什么区别?
第06题:
说一说Servlet的生命周期?
第07题:
Servlet的基本架构
第08题:
什么情况下调用doGet()和doPost()?
第09题:
页面间对象传递的方法
第10题:
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
第11题:
Request对象的主要方法
第12题:
我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
第13题:
Servlet执行时一般实现哪几个方法?
第14题:
Struts1.x 中 DispatchAction 怎么用?有Action 有哪些区别?
第15题:
MVC的各个部分都有那些技术来实现?如何实现
第16题:
开发中都用到了那些设计模式?用在什么场合
第17题
请你谈谈SSH整合
第18题:
Hibernate外键关联,做多表链接查询出的字段如果没有实体bean与之相对应,该如何解决?
第19题:
Hibernate的sessionfactory和session的区别是什么?如何处理session线程不安全问题?
第20题:
Hibernate如何实现动态查询?DetachedCriteria与Criteria的区别是什么?
第21题:
写一段Jdbc连Oracle的程序,并实现数据查询.
第22题:
Struts优点与缺点
第23题:
Struts提供了几个标签库?都是什么标签库?
第24题:
Tiles框架是什么?
第25题:
Hibernate中的Session. load()和Session.get()的区别
第26题:
Spring和Struts的区别?
第27题:
什么是aop,aop的作用是什么?
第28题:
aop中的关键名词有些那些,相互关系是什么?
第29题:
依赖注入的方式有几种,各是什么?
第30题:
Hibernate中的update()和saveOrUpdate()的区别
第31题:
Spring对多种ORM框架提供了很好的支持,简单描述在Spring中使用Hibernate的方法,并结合事务管理
第32题:
使用Spring的好处是什么
第33题:
Hibernate是如何延迟加载?
第34题:
说下Hibernate的缓存机制
第35题:
Hibernate的查询方式
第36题:
如何优化Hibernate?
第37题:
HttpSession session = request.getSession()
与HttpSession session = request.getSession(true)的区别?
第38题:
Class.forName的作用?为什么要用?
第39题:
Jdo是什么?
第40题:
说出数据连接池的工作机制是什么?列举几个常用的数据连接池。
第41题:
JDBC如何调用数据连接池
第42题:
xml有哪些解析技术?区别是什么?
第43题:
你在项目中用到了xml技术的哪些方面?如何实现的?
第44题:
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
第45题:
请用编程语言写一个排列组合的算法。可以实现一个简单的算法:存在N个数组,输出在每个数组取一个元素的排列组合结果。假设:
数组A=[X,Y,Z],数组B=[1,2]
组合的结果:
X1,X2,Y1,Y2,Z1,Z2
排列组合的结果:
X1,X2,Y1,Y2,Z1,Z2,1X,1Y,1Z,2X,2Y,2Z
要求程序可以适应N为任意数和每个数组长度不同的情况(假设内存足够大,程序可以不考虑效率)。
第46题:
请描述HTTP交互中Session和Cookies的关系以及二者的区别
第47题:
请用流程图或文字描述Servlet的开发和部署过程,包括从java类的编码到可以通过IE访问
第48题:
多人访问网站,如何减轻服务器压力(程序实现,考虑Hibernet中的方法)
第49题:
多个人访问数据序,一个对数据序进行了修改,而另一个人已在修改前查询到页面,当点击打印时,该怎样做,才能能到修改后的最新数据。
第50题:
MVC是什么?
第51题:
CVS是什么?
第52题:
Struts2和Spring集成的时候,是否可以把Action设置成singleton模式,请简述理由
第53题:
简要叙述Hibernate一级缓存和二级缓存的作用
第54题:
什么是singleton模式和DAO模式?
第55题:
简述Spring中DI、IoC和AOP的含义。
第56题:
请比较Struts1.x和Struts2在多模块开发方面的差异
#p#副标题#e#
三、JavaScrpt和Css
第01题:
编写函数,用于过滤一个数组内重复的元素,并用这些元素重构一个新数组,新数组内也不能有重复元素。
第02题:
javascript是不是面向对象的语言?如果是,怎么实现继承?
第03题:
如何获取表单
第04题:
在JavaScript 中定时调用函数foo()如何写?
第05题:
var a=”10” ; var b=”20”; var c=”10”; var d=10 ;alert(a=b) ; alert(a==b); alert(c==d); alert(a===b);结果是?
第06题:
Var obj =new Object();obj.a=”001”;obj.b=”002”;obj.c=”003”;obj.d=”004”;................... 写一个function遍历obj 对象中的所有的属性对应的值
第07题:
form中的input有哪些类型?各是做什么处理使用的
第08题:
table标签中border,cellpadding;td标签中colspan,rowspan分别起什么作用
第09题:
form中的input可以设置readonly和disable,请问这两项属性有什么区别
第10题:
JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么
第11题:
当点击按钮时,如何实现两个td的值互换?
用javascript实现此功能
第12题:
编写一个方法 求一个字符串的字节长度
第13题:
如何控制alert中的换行
第14题:
解释document.getElementById("ElementID").style.fontSize="1.5em"
第15题:
求y和z 的值是多少?
第16题:
javascript怎样选中一个checkbox,怎样设置它无效?
第17题:
在css中:以下语句各代表什么意思? td{width100%} .td{width100%} #td{width100%}
四、数据库
第01题:
假设tableA为某学校的花名册:a1——学号;a2——姓名;a3——性别;
tableB为各班级花名册:b1——班级号;b2——座位号;b3——姓名;b4——性别; 有同样结构的4张表B1,B2,B3,B4分别代表01,02,03,04级。 1、SQL语句:
请用最简单的操作,使4张表的记录汇总到tableA中。(注:学号=年级号+班级号+座位号)
2、存储过程: 写一个存储根据传入的年级号计算该年级的男女生各自的人数(男女生的参数作为传出参数) 3、函数 新增一个学生时,选择年级和班级号后,自动获取学号(只操作tableA) 4、函数 检查日期的正确性(注意大小月及闰年)
看过“2016 java面试题”
浏览量:3
下载量:0
时间:
个人求职自我介绍是应届生程序员个人求职者求职过程中必经的环节,下面是读文网小编整理的程序员应届生个人求职自我介绍范文,以供大家阅读。
我叫quduwen,是南开大学计算机系的一名本科大学生,即将面临毕业。怀着对贵公司强烈的渴望和满怀的激情,我十分希望成为贵公司的一份子!恳请贵公司给我这个机会!我也会向贵公司证明我的能力!
4年多以来,在老师的教育及个人的努力下,我具备了扎实的专业基础知识,系统地掌握了c++语言、汇编语言、单片机原理、电子电路、计算机组成原理、数据结构、数据库等有关理论,以及嵌入式系统开发的一些理论,同时也拥有一定的分析和设计能力。通过在校期间的试验实习和课程设计的训练我具备了较强的动手能力。
除了对计算机热爱,在大学四年里我还不断的学习英语知识,我深切的感受到当今社会以及计算机行业,没有过硬的英语能力是不行的,并且将会成为我们事业前进的瓶颈。我在大二上学期就通过了全国大学生英语四级考试。此外,我还积极参加校内的各种活动以及校外的各种社会活动,抓住每一个机会,锻炼自己的能力。
我通过各种渠道大致了解了贵公司的情况,知道贵公司是个很有发展前途的具有现代潮流的公司,具有很大的活力,而我也非常希望能加入这样的企业,尽自己最大努力为公司的发展奉献自己的微薄之力。
我十分热爱贵单位所从事的事业,殷切地期望能够在您的领导下,为贵公司添砖加瓦;同时也在您的领导下发挥出我的实力与才能,在实践中不断学习、进步,在能力和素质方面进一步完善自我,为贵公司做出更大的贡献。
浏览量:2
下载量:0
时间:
面试是很多用人单位遴选求职者的重要方式,当然也是高级java工程师求职者的求职必经环节。下面是读文网小编为大家带来的高级java工程师面试题,相信对你会有帮助的。
尊敬的领导:
您好!我叫xxx,是南京信息工程大学20xx届计算机系软件开发专业的。并获计算机学士学位。从考入大学那天起我一直努力学习,在大学生活中培养了良好的学习习惯,所学的课程包括了从计算机的基础知识到运用等许多方面。
通过对这些知识的学习,我对这个领域的相关知识有了一定程度的理解和掌握。并做了大量的实践,进一步加深了对计算机的认识软件开发人员求职信范文软件开发人员求职信范文。在学好基础知识的同时还注重多方面全面发展,多次参加了学校的各种活动,在实习过程中将理论与实践结合起来,深受学校老师和同学的欢迎。
20XX年初参加了微软认证系统工程师培训,培训科目:WindowsNTTechnology,WindowsNTEnterprise,NetworkingwithTCP/IPonWindowsNT,ⅡS4.WindowsNT。
具备丰富的工作经验,认真踏实负责,且具备优秀的表达能力,曾多次主持对用户和内部的技术讲解和培训,获得用户和公司的一致好评。曾在电子工业部“三金工程展风采展示会”上向来宾讲解CHINAGBN专线集团用户解决方案。
在激烈的人才竞争中,虽然我只是名刚毕业的大学生,也许没有工作经验,但我有颗真挚的心和拼搏进取的精神,愿为贵公司贡献出一分自己的力量,为了更好的掌握知识理论,也为更好地服务贵公司,我现在正努力自学一些更深的理论书,虽然我刚从大学毕业,没有实际的工作经验,但我相信像贵公司那样重能力,重水平,重开拓,有远见的公司,一定把能力,水平与经验同等同视,给新人一个显身手的机会,希望贵公司给我一个机会,能考虑我,我迫切希望早日成为贵公司一员软件开发人员。
浏览量:2
下载量:0
时间:
逻辑算法题是程序员面试的时候,必考的题型之一。下面是读文网小编为大家带来的程序员逻辑算法面试题及参考答案,相信对你会有帮助的。
【1】假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。
由满6向空5倒,剩1升,把这1升倒5里,然后6剩满,倒5里面,由于5里面有1升水,因此6只能向5倒4升水,然后将6剩余的2升,倒入空的5里面,再灌满6向5里倒3升,剩余3升。
【2】周雯的妈妈是豫林水泥厂的化验员。一天,周雯来到化验室做作业。做完后想出去玩。"等等,妈妈还要考你一个题目,"她接着说,"你看这6只做化验用的玻璃杯,前面3只盛满了水,后面3只是空的。你能只移动1只玻璃杯,就便盛满水的杯子和空杯子间隔起来吗?"爱动脑筋的周雯,是学校里有名的"小机灵",她只想了一会儿就做到了。请你想想看,"小机灵"是怎样做的? 设杯子编号为ABCDEF,ABC为满,DEF为空,把B中的水倒进E中即可。
【3】三个小伙子同时爱上了一个姑娘,为了决定他们谁能娶这个姑娘,他们决定用手枪进行一次决斗。小李的命中率是30%,小黄比他好些,命中率是50%,最出色的枪手是小林,他从不失误,命中率是100%。由于这个显而易见的事实,为公平起见,他们决定按这样的顺序:小李先开枪,小黄第二,小林最后。然后这样循环,直到他们只剩下一个人。那么这三个人中谁活下来的机会最大呢?他们都应该采取什么样的策略?
小林在轮到自己且小黄没死的条件下必杀黄,再跟菜鸟李单挑。
所以黄在林没死的情况下必打林,否则自己必死。
小李经过计算比较(过程略),会决定自己先打小林。
于是经计算,小李有873/2600≈33.6%的生机;
小黄有109/260≈41.9%的生机;
小林有24.5%的生机。
哦,这样,那小李的第一枪会朝天开,以后当然是打敌人,谁活着打谁; 小黄一如既往先打林,小林还是先干掉黄,冤家路窄啊!
最后李,黄,林存活率约38:27:35;
菜鸟活下来抱得美人归的几率大。
李先放一空枪(如果合伙干中林,自己最吃亏)黄会选林打一枪(如不打林,自己肯定先玩完了)林会选黄打一枪(毕竟它命中率高)李黄对决0.3:0.280.4可能性李林对决0.3:0.60.6可能性成功率0.73
李和黄打林李黄对决0.3:0.40.7*0.4可能性李林对决
0.3:0.7*0.6*0.70.7*0.6可能性成功率0.64
【4】一间囚房里关押着两个犯人。每天监狱都会为这间囚房提供一罐汤,让这两个犯人自己来分。起初,这两个人经常会发生争执,因为他们总是有人认为对方的汤比自己的多。后来他们找到了一个两全其美的办法:一个人分汤,让另一个人先选。于是争端就这么解决了。可是,现在这间囚房里又加进来一个新犯人,现在是三个人来分汤。必须寻找一个新的方法来维持他们之间的和平。该怎么办呢?按:心理问题,不是逻辑问题
是让甲分汤,分好后由乙和丙按任意顺序给自己挑汤,剩余一碗留给甲。这样乙和丙两人的总和肯定是他们两人可拿到的最大。然后将他们两人的汤混合之后再按两人的方法再次分汤。
【5】在一张长方形的桌面上放了n个一样大小的圆形硬币。这些硬币中可能有一些不完全在桌面内,也可能有一些彼此重叠;当再多放一个硬币而它的圆心
在桌面内时,新放的硬币便必定与原先某些硬币重叠。请证明整个桌面可以用4n个硬币完全覆盖。
要想让新放的硬币不与原先的硬币重叠,两个硬币的圆心距必须大于直径。也就是说,对于桌面上任意一点,到最近的圆心的距离都小于2,所以,整个桌面可以用n个半径为2的硬币覆盖。
把桌面和硬币的尺度都缩小一倍,那么,长、宽各是原桌面一半的小桌面,就可以用n个半径为1的硬币覆盖。那么,把原来的桌子分割成相等的4块小桌子,那么每块小桌子都可以用n个半径为1的硬币覆盖,因此,整个桌面就可以用4n个半径为1的硬币覆盖。
【6】一个球、一把长度大约是球的直径2/3长度的直尺.你怎样测出球的半径?方法很多,看看谁的比较巧妙
【7】五个大小相同的一元人民币硬币。要求两两相接触,应该怎么摆? 底下放一个1,然后2 3放在1上面,另外的4 5竖起来放在1的上面。
【8】猜牌问题S先生、P先生、Q先生他们知道桌子的抽屉里有16张扑克牌:红桃A、Q、4黑桃J、8、4、2、7、3草花K、Q、5、4、6方块A、5。约翰教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉P先生,把这张牌的花色告诉Q先生。这时,约翰教授问P先生和Q先生:你们能从已知的点数或花色中推知这张牌是什么牌吗?于是,S先生听到如下的对话:P先生:我不知道这张牌。Q先生:我知道你不知道这张牌。P先生:现在我知道这张牌了。Q先生:我也知道了。听罢以上的对话,S先生想了一想之后,就正确地推出这张牌是什么牌。请问:这张牌是什么牌? 方块5
看过“程序员逻辑算法面试题及参考答案”
浏览量:3
下载量:0
时间:
程序员想跳槽,有什么需要注意的吗?下面是由读文网小编分享的2016程序员跳槽攻略,希望对你有用。
项目成功,是靠大家的努力才能换来的。 但,项目的失败,或许是由于个别人的人脉太差,或者管理水平太次。
浏览量:2
下载量:0
时间: