软件测试工程师好找工作吗?

2024-12-01 19:08:45
推荐回答(5个)
回答1:

其实我觉得软件测试工程师是个非常有前途的职业.现在软件测试工程师的缺口非常的大.
程序员跟测试员是相互对应的.以前国内认为只要有好的程序员就行了,其实还要有好的测试员.现在国内的软件厂商越来越注重测试员.

软件测试工程师

一提到软件测试工程师,很多人就会想到那些反复使用软件,试图在频繁操作中寻找到错误发生的低层次人员或者软件用户。其实这是一种错误的概念,软件测试早已超越了用户使用来发现Bug的基本测试阶段。

陈宏刚介绍说,微软的软件测试工程师分为三种:测试执行者(Basic Software Tester)、测试工具软件开发工程师(Software Development Engineer in Test)和高级软件测试工程师(Ad_hoc Tester)

测试执行者负责理解产品的功能要求,然后根据测试规范和测试案例对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,属于最低级的执行角色。

测试工具软件开发工程师负责写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。产品开发后的性能测试、提交测试等过程,都有可能要用到开发的测试工具。对技术要求最强的是这些人,因为它们要具备写程序的技术。“因为不同产品的圆谈特性不一样,对测试工具要求也是不同的,就像Windows的测试工具不能用于Office,office的也不能用于SQLserver,微软很多测试工程师就是负责专门为某个产品写测试程序的。”

而Ad_hoc Testet属于比较有经验,自己培贺会找方向并做的很好的测试工程师,这要求具有很强的创造性。刚进入微软时,老板也是只给陈宏刚一个操作流程,每天就按照这个规程去做,几天下来,一个Bug都没有发现。陈宏刚也很沮丧,觉得这样挺对不起公司,后来自己问自己:为什么非要这样做!于是换了其他的方法试试,令他吃惊的是,一下就找到很多严重的Bug,当时也不敢声张。有一天,他找到10多个非常严重的Bug,开发经理一下就惊呆了,怒冲冲的跑到陈宏刚面前问:“你是不是改变了测试方式和测试步骤?”陈宏刚有些吓住,说道:“可能改变了一点。”对方说:“我非常生气,但我不是生你的气,而是因为以前测试人员水平太差,或者以前的测试方面有问题,软件中有些Bug存在了半年甚至一年,但直到现在才发现,现在修补这些错误要困难很多!”后来陈宏刚得到了老板的赞许,配腔派可以按照自己的想法去做测试。对此,陈宏刚感受颇深:“一方面我体会到了微软非常鼓励创造的文化,同时也感到只遵守教条不是好的测试人员,就和用户一样了。做软件测试工程师同样需要开拓和创造性。”

在开发管理上,测试不应该归属于项目管理,也不应该归属开发人员。这三个部门应该是并驾齐驱,相互协作,测试工程师最终决定产品是否能够发布。

软件测试工程师的素质

因为软件测试仍然处在发展阶段,还没有上升到理论层次。对人员的评测,包括微软在内,都还没有一个统一标准,因此评定软件测试工程师只能根据工作实践进行自然淘汰。

软件测试对逻辑思维、学习能力、反应要求很高,是否有严密的思维和逆向思维也非常重要。陈宏刚介绍说,在五六个人的测试小组时,一半以上的Bug都是他找到的。他认为这同自己数学专业的背景关系密切,数学中有逻辑思维的培训,要善于找出来各方面的因素。比如要证明一个定理,各个方面都考虑到,一个条件不满足就无法证明;但如果证明其不成立,最常用的就是找到一个反例,只要有一点证明不成立就可以了,软件测试也是找这一点。

做测试还要考虑到所有出错的可能性,还要做一些不是按常规做的、非常奇怪的事。除了漏洞检测,测试还应该考虑性能问题,也就是要保证软件运行得很好,没有内存泄漏,不会出现运行越来越慢的情况;在不同的使用环境下,考虑软件的兼容性同样重要。软件测试同产品的规模也有很大的关系,因为软件的bug往往出在大型软件的连接处。

做软件测试工程师需要对软件抱有怀疑态度。这是因为开发人员喜欢想当然,总是找一些有利于自己程序执行的数据,有些开发人员甚至认为不利于程序执行的数据是对代码的玷污和亵渎。而软件测试却要策略性的准备各种数据,从每个细节上设计不同的应用场景,不去想当然的假定任何一个数据是可行的。

在职业素质和交际方面方面,并不是测试工程师爱挑别人毛病才好,反而这个工作要求很强的沟通能力。经常的和开发人员进行沟通,说话办事要很得当,不能指责别人,否则会事倍功半。性格随和才能和开发人员顺畅的沟通,对人和对事是完全不同的两个问题。

如何培养优秀的软件测试工程师

朗川软件测试工程师张建阳从北大力学系毕业之后,曾开发流体力学分析软件,软件缺少测试而产生的问题给她留下了很深的印象。后来去大唐电信做UIM(统一消息管理系统),她发现尽管公司为了鼓励员工找bug采取了很多奖励方法,但还是很少人愿意去做系统测试。而张建阳却从那时查阅翻译了很多国内外的资料,对软件测试产生了浓厚的兴趣。

像张建阳这样在工作中自己定位在软件测试领域的开发人员并不多见,因为程序员更愿意去做开发而不是测试,从大环境上,测试人员收入水平低也是原因之一。而在微软,测试人员和开发人员的工资水平是相同的。

如何改变这种现状呢?有人说可以可以派人去先进的国外软件企业学习,但这种方式因为牵涉到商业秘密,可操作性不大。陈宏刚博士认为更好的方法是引进人才,把在国外大型软件公司工作过、有经验的人才引进来,甚至要高薪聘请。他表示,这不仅仅是一个人的问题,关键是能够把整个软件测试的水准提高一个层次。

引进人才只是开始,更重要的是培养一批软件测试人才。软件开发的教育培训都是比较正规的,各个学校也都设有专业,但软件测试还没有正规的专业毕业生,而且没有评判的标准。陈宏刚博士给很多软件学院建议,开设四方面的软件测试专业基础课:软件测试基础、软件测试开发、高级软件测试案例和行业软件特色测试方法。国内现在已经有了一些软件测试基础的教材,但其他的教材还没有。高级软件测试案例主要是大型软件测试案例,大型软件出现的问题具有很强的代表性。而行业特色软件测试的课程可以开阔学生的视野。陈博士介绍说,在国外,也是极少的高等院校开设测试专业,但可以借鉴民间的培训机构课程。在有一批专业的测试人才出现之后,人们会认识到他们的重要性。

如果你已经开始从事软件测试工作,千万不要认为软件测试没有什么发展的潜力和前途。刘忠从1995年接下IBM的OS2汉化版本的测试开始到现在,他一直工作在软件测试领域,并升到了公司高级副总裁的位置。和腾软件也培养了一批测试工程师,它们从对测试职业将信将疑到明确自己的测试方面的职业目标。刘忠介绍说:“很多人开始做测试执行工作时会说很麻烦、很枯燥,只是一味的埋怨,而不是主动的去学习,他没有看到软件测试背后所隐藏的知识。因为学习可以做这些工作,不学习也可以做这些工作,但质量是不同的。有些人自学和请教了很多测试技术和管理方面的知识,公司自然就会在下个项目中去培养他。”

因此对于一个新手,要在各方面培养自己的能力。首先是要理解各种测试流程,并在理解的基础上转化为自己的知识,以后遇到相似的问题能自己去解决。在测试技能上,要知道测试有那些手段,比如压力测试有哪些方法,哪些工具可以辅助做测试。从专业技能上,面向不同的技术方向,像操作系统、网络、通信等都要从专业上深入了解。这三方面要同步去成长。

软件测试工程师未来的发展

从事软件测试有没有前途,未来的职业发展方向怎样呢?

陈宏刚博士表示,软件测试工程师在微软的发展有几种途径:一种走技术路线,成长为高级软件测试工程师,这时他能够独立测试很多软件,再向上可以成为软件测试架构设计师。第二种就是向管理方向发展,从测试工程师到组长(Lead),再到项目经理(Manager),到更高的职位。第三种可以换职业,做项目管理,做开发人员都可以,很多测试工具软件开发工程师在写测试软件的过程中,因为开发方面积累了经验,同时对软件产品本身产生了自己的看法,很容易转去做产品编程。

陈宏刚博士现在还带着一个测试小组,两个清华软件学院的学生,一个南开的专门做软件测试的博士生,一个北邮的学生,他们负责总部一个产品的测试。陈博士表示,在自己简单的讲讲思路,共同探讨之后,他们一星期就找出了70多个Bug,也感觉学了很多知识,并表示以后专注于软件测试专业,因为他们感觉软件测试真的是一门很深的学科,有很多可以研究的课题。其实微软的测试人员很多也都是硕士、博士,他们同样在做创造性的工作,保证着程序质量,推动着软件的进步。

软件测试是正在快速发展,充满挑战的领域。尽管现在单机版桌面软件的测试已经成熟了很多,但对于网络时代的到临,包括微软在内的公司对基于网络的测试也没有一套完整的体系,也是处于探索中,网络中被攻击的可能性太大,这就是为什么黑客在网络上能兴风作浪的原因。网络测试是一个新环境,而且是很大的挑战。

软件测试未来的发展空间很大,软件测试工程师的职业之路同样充满希望。

回答2:

  前景分析:
  软件测试人员的主要职责是对软件产品的整个开发过程进行监督和检验,使之能够达到满足客户的需求,因此对于企业来讲是十分重要的岗位。在国外,一般软件测试人员与软件开发人员的岗位设置比例是1:1,像微软在开发windows2000时候使用的软件开发人员是1700名,而专业的测试工程师首瞎桐有3200名,测试开发人员比例高到1.7:1,由此可见软件测试岗位重要性的不一般。

  软件测试工程师(Software Testing Engineer)指理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),测试软件是否具有稳定性(Robustness),写出相应的测试规范和测试用例的专门工作人员。简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时发现软件问题并及时督促更正,确保产品的正常运作。按其级别和职位的不同,分为三类。
  按其级别和职位的不同,可分为三类:
  高级软件测试工程师,熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估 ;
  中级软件测试工程师,编写软件测试方案、测试文档,与项目组一起制定软件测试阶段的工作计划,能够在项目运行中合理利用测试工具完成测试任务;
  初级软件测试工程师,其工作通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷。

  软件项目开发是个分工明确的系统工程,不同的人员扮演了不同的角色,包括部门经理、产品经理、项目经理、系统分析师、程序员、测试工程师、质量保证人员等。可见,软件测试工程师只是软件项目开发中的一个角色而已。
  测试工程师承担的任务角色决定工作内容和承担的任务。测试工程师的角色应该承担什么任务呢?这没有统一的答案。因为,这与软件公司的规模,软件项目管理制度,公司领导和项目经理的管理风格,以及具体软件项目自身的特点有很大关系。而且,测试工程师也有普通和高级之分。
  笼统的答案列举如下:
  设置软件测试环境,安装必要的软件工具。
  者坦运行软件,发现和报告软件缺陷或错误。尤其需要快速定位软件中的严重的错误。
  对软件整体质量提出评估
  确认软件达到某种具体标准
  以最低的成本,最短的时间,完成高质量的测试任务
  ......
  在这其中,最重要的是要明确,程序员的责任和目标。在执行任何具体测试任务前,都要在项目组内对于责任和目标达成共识,以免带来后续工作的相互推诿。
  提高测试质量的要诀
  另外一个值得注意的方面就是工作效率和质量,或许高级测试工程师与普通测试工程师的主要区别在于高级测试工程师可以更快地发现更多软件中的严重错误。对此,有什么可以借鉴的诀窍吗?请尝试以下方法,保证不会使您失望。
  首先测试程序的核心功能,然后测试辅助功能。
  首先测试功能,然后测试性能。
  首先测试常见情况,然后测试异常情况。
  首先测试经过变更的部分,然后测试没有变更的部分。
  首先测试影响大的问题,然后测试影响小神散的问题。
  首先测试必须测试的部分,然后测试可选或没有要求测试的部分。
  服务员
  需要强调的一点是,无论你是多么高级的测试工程师,都要明白无论测试需要的工具多么复杂,测试步骤多么冗长,测试工程师在软件项目开发中始终都是扮演服务员的角色,这是由测试工作的特点决定的。任何服务都有被服务对象—客户,测试工程师的服务对象有哪些呢?
  最重要的客户是软件的用户。测试工程师需要站在客户的使用和需求角度测试软件,报告问题。
  项目经理也是客户。测试工程师需要报告测试工作进度和发现的问题,尤其是严重的问题。
  程序员是最经常打交道的客户。为了便于程序员重复报告的错误,尽量提供良好的软件问题报告,以便程序员可以更快的修复软件错误。
  技术文档工程师、市场开发人员和技术支持工程师也都是测试工程师的服务对象。
  避免错误
  前文已经指出测试工程师应该明确角色,明确任务和责任。知道哪些是自己分内的事,哪些是不属于自己的事。一定要尽最大努力完成分内的事,不要做不属于自己的事情,以免弄巧成拙。
  为了更好的扮演软件测试工程师的角色,尽量避免犯下面的错误:
  ⒈承诺完成测试的软件没有质量问题
  软件测试只是保证质量的一种方法,软件测试工程师的工作不会直接提高软件质量,因为绝大多数软件错误都需要程序员修复。软件测试只能证明软件存在错误,不能保证软件没有错误,不可能找出全部软件错误。个人的能力和对质量的影响范围很小,软件质量的提高要靠软件项目团队全体成员的共同努力。
  ⒉承担软件的发布权利
  不要因为软件中存在还没有修复的错误,而试图提出更改软件发布的计划。也不要认为已经完成了测试计划,自己决定可以发布软件。因为,改变软件发布计划可能要失去进入市场的良机和很多客户,对此造成的经济和公司市场的损失将不是测试工程师能够承担的。另外,软件发布后,如果用户发现了新的软件错误,公司领导或项目经理可能将过错加在软件测试人员的头上,因为他们同意发布软件。通常软件发布的权利由产品经理、项目经理、测试经理、市场经理共同集体讨论决定。
  ⒊扮演过程改进成员的角色
  软件测试工程师必须报告错误,有时也要分析错误的类型、特征和产生错误的原因。但是,不要主动提出改进软件过程的具体改进措施,更不要直接干涉程序员的工作方式,以免出力不讨好,影响今后的愉快合作。软件过程改进的方法是软件质量控制部门的事情,这是他们的本职工作。

回答3:

说实话工作不难找,但是要找好工作就不容易了。
1、国内现在说重视软件测试,也都是为了项目短期利益服务的,主要是一些行业的甲方或合同中有要求,才加个测试,不是因为发展和质量的高要求。
2、软件测试门槛低,只要会用计算机,就算不专业也可以干,但是软件测试的核心价值是分析能力,软件系统知识越全面,这方面能力越强,干到测试主管还要有更多的能力。
3、地域性也是影响因素,软件行业发达态拍的地区,这方面需求就大,反之需求就小。
4、还有一点,软件测试一定要注重行业积累,有些从业野闭宏务人员转的测试人员,比软件人员转的测试人员价值大也是因为这个,例如运输业、银行业颂册等,如果你不懂行业逻辑,业务模型或术语,一个明显的bug摆在你面前,你也看不出来。
希望这些内容对你有用。

回答4:

  其实学软件测试是很好找工作的,因为一般的高等院校没有专门的软件测试专业,所以大部分人才都是通过培训机构培养的,但是远远赶不上每年的人才需求,因为软件测试的人才缺口很大。另外软件测试分为功能测试、性能测试、接口测试、自动化测试,只要掌握好其中一个方向,就能够找到相关的测试工作。
  大家在找工作的时候可能会不知道应该去大公司还是小公司,针对刚培训出来的初级软件测试人员,建议大家尽量去大公司磨砺几年。因为大公袜或手司的各项规章制度都比较完善,可以很好地学告嫌习工作流程,也会给你时间慢慢成长,愿意花时间去培养你。在大公司里积累了一定经验后,如果觉得升职团斗无望,可以考虑跳槽去中小型公司做管理人员,把大公司的一些好的工作流程和制度沿用到小公司去。
  另外相对于互联网公司来讲,外企IT公司相对来讲工作会轻松一些,比如不用996工作制。工作时间自由,不用打卡,每周可以有一两天在家办公。不太用加班,压力也没有那么大,工作之外可以有自己的生活。还有就是假期多,中国的节日和外国的节日都会过,而且一般来说假期也会长一些。
  唯一不足的可能就是薪资相对来说比互联网公司低一些,因为毕竟不用熬夜加班,如果按工时换算的话,比起互联网公司的996薪资也是值的。建议大家如果不是对这份工作特别热爱的话,还是不要过早地把自己消耗完。

回答5:

软件测试工程师作为IT行业中日益崛起的一个新兴职业,作为软件工程中一个至关重要的环节,受到越来越多的关注。

一、软件测试工程师是指理解客户的需求,熟悉软件产品的各种功能要求,并对产品进行一些必要测试,检查软件开发人员所开发的产品和功能有没有错误,测试软件是否具有稳定性,写出相应的测试规范和测试用例的专门工作人员。

简而言之,测试工程师在一家软件企业中担当的是“质量管理”角色,及时发现软件问题并及时督促更正,确保产品的正常运作,以达到客户的要求。

二、通过分析测试工程师的职业特点,我们将会更好的看清测试工程师就业前景究竟如何。

1.软件测试不像一些人看起来那么简单,需要相当深厚顷和的技术背景。但只要掌握要领,也不像我们一些人所认为的那么困难;

2.测试工程师和开发人员相比,可以有机会要多接触更多的不同行业的项目,是一个大的优势。

3.测试工程师要想成功,更多的是靠平时的积累。不管是项目的积累,还是平时学习,两者都至关重要。

4.测试工程师要充分利用网络资源,与同行们充分交流,在互相帮助和学习的氛围中,可以加快自己成长速度。

测试工程师人才:缺口三四十万,年薪十万。

软件的产业化,主要表现在对软件质量的控制上。随着我国IT行业的发展,产品的质量控制与质量管理将成为企业生存与发展的核心,而能够把质量带动起来的就是软件测试。从软件、硬件到系统集成,几乎每个中大型IT企业的产品在发布前都需要大量的质量控制、测试和文档工作。

另外,人才的紧缺也促使软件测试工程师的薪资逐渐走高,技术优秀的人年薪可高达10万元。从近期的企业人才需求和薪金水平来看,软件测试工程师的雀昌盯年工资还有逐年上升的明显迹象。但是有关职业咨询专家同时也提醒求职者,在行业的选择上,应该看好潜力行业,而不要过分追求当前的热门行业迅纤,尽管IT等行业令人趋之若鹜,但这些行业技术更新快,竞争激烈,从业者具有相当大的压力。

前些年,国内企业对产品的测试工作都不太重视,也很少有人员能够系统地参加过测试的培训课程,因此软件测试工程师或者系统测试工程师严重短缺。据介绍,我国目前软件人才匮乏,有关专家估计缺少软件开发人员高达30多万人,在今后相当长的一段时间内,将缺少更大数量的软件开发人才。而根据有关职位统计资料显示,在国外大多数软件公司,1个软件开发工程师就需要辅有1—2个软件测试工程师。目前,软件测试自动化技术在我国则刚刚被少数业内专家所认知,而这方面的专业技术人员在国内更是凤毛麟角。所以,就业前景就不言而喻,是非常紧缺的。