优秀的测试工程师应该具备哪些素质

  • 人是测试工作中最有价值也是最重要的资源,只有保证测试工程师良好的素质,才能保证测试、产品的质量。然而,在有些公司让那些没有应聘上开发职位的人来做测试,这绝对是错误的,最终会损害企业。
  • 为高质高效地完成测试任务,软件测试工程师应具有很好的素质和能力,包括沟通能力、技术能力、自信心、耐心、怀疑一切的精神,勤奋精神,洞察力,适度的好奇心,反向思维和发散思维能力、记忆力等,甚至需要很好的幽默感,自我学习能力和创新能力。在招聘测试工程师时,着重考察应聘者是否具有这些良好的个人素质,保证所招聘的人符合测试人员的要求。

1. 责任感

测试人员需要高度的责任感,本着对质量一丝不苟的追求,坚持用客户的观点看待问题,不放过任何一个可能存在的疑点,充分关注细节。也只有具有高度的责任感,才能经受得住进度或其他方面来的压力,始终把质量放在第一。只有这样,才能保证测试工作的充分性和可靠性。

2.沟通能力

  • 测试工程师需要同软件开发过程中各种角色进行沟通,具有与技术(开发者)和非技术人员(包括客户、市场人员和培训人员等)的交流能力。既要可以和用户谈得来,又能同开发人员说得上话,但他们之间的沟通语言和方式有很大差别。和用户沟通的重点是系统要实现哪些功能,哪些功能是无关紧要的,尽量不使用专业术语。而和开发者交流时,则关心技术上的实现,常常使用专业术语。而且,也只有深入沟通,才能完整地理解用户的需求和待实现的产品特性,才能真正掌握产品设计和实现的技术细节。
  • 由于测试工作本身是一个重要的任务,就是找出程序、系统中的缺陷,有些开发人员觉得是挑毛病,偶尔感到不高兴,这时和开发人员沟通,更需要技巧,这样才能将与开发人员之间可能发生的冲突和对抗减少到最低程度。测试人员应该把精力集中在查找错误上面,而不在于找出是哪个开发人员引入错误的,即测试的结果是针对产品,而不是针对编程人员,使用一种公正和公平的方式指出具体错误,对于测试工作是有益的。一般来说,武断地对产品进行攻击是错误的,采用一些外交方法就比较好。在遇到狡辩的情况下,一个幽默的批评将是很有帮 助的。

3.技术能力

  • 软件测试归根结底还是技术性工作,归属于研发部门,技术是基础。如果没有技术,就只能进行黑盒的功能测试,有些测试任务就无法实现,某些时候测试效率比较低,个人的发展也会受到限制。有了良好技术,在早期就可以和开发人员一起讨论系统架构设计,验证系统是否具有可测性、发现单点失效、性能瓶颈等设计问题。有了良好技术,可以开发所需要的测试工具、自动化测试框架和自动化测试脚本等。技术能力,不局限于开发经验、编程能力,还应包括操作系统配置和排错(Troubleshooting)能力、网络技术等。

4.自信心

  • 开发人员指责测试人员出了错是常有的事,测试工程师对自己持有的正确观点应有足够 的自信心,对自己所报的 Bug
    应有信心。如果缺乏信心,很容易受开发人员的影响,测试工作缺乏独立性,程序中的漏洞或缺陷容易被忽略过去,导致软件产品质量的降低。
    还有一种情况也是常见的,软件产品设计规格说明书总是或多或少存在一些逻辑问题,编程人员和测试人员对那些有问题的功能存在争议,这时候信心会帮助测试人员发现产品设计中的问题,说服产品设计人员。

5.耐心

  • 有些软件测试工作需要难以置信的耐心。有时需要花费大量的时间去分离,识别一个错误,需要对其中一个测试用例运行几十遍,甚至几百遍,了解错误在什么特别的情况下才发生。测试人员需要保持耐心,尤其是在集中注意力解决困难问题的时候,特别是在测试执行阶段。面对成百上干个测试用例,要一个个去执行,还要在不同的测试环境上重复,耐心是必要的。当然,应尽量让测试工具去完成那些重复性的任务。

6.怀疑精神

  • 可以预料,开发人员会尽自己最大的努力将所有的错误解释过去,测试人员在耐心听每个人解释的时候,还要保持高度警惕,怀疑一切,直到自己分析结果或亲自测试之后,才做出决定。有时,对一些功能的设计和实现自觉就是不对,可以持怀疑态度,看看是否有更好的实现方法,可以和产品设计人员、开发人员进行更深人的讨论。

7.适度的好奇心

  • 在开发测试用例时使用的方法,有点像勘探专家在一个山洞中摸索前进的方法一样。虽然周围可能存在大量的死胡同,但是测试工程师具有适度的好奇心,会促使他们向山洞中的深处探索,探索没有去过的地方,最终可能会有一个大发现。

  • 设计出那些导致系统边界出错的测试用例,往往需要一定的好奇心。测试工程师在审查规格说明书时,可以与开发人员一起讨论各种“假设”的场景,并在大脑中反复演练被测试系统,以找到可能出现的例外或边界问题。测试人员善于从不同的角度来进行探索性测试,包括采用错误猜测法,设计一些试图破坏系统的测试用例。如果测试人员缺乏好奇心,那么只能设计出肤浅的测试用例。

  • 如果测试人员在一个错误上花费太多时间,通过无数的尝试去分析造成这种错误的根本原因,这样做也是不正确的,好奇心需要适度。在及时完成测试执行任务和编写灵活高效的测试用例之间,在进度的压力和探究错误发生根源之间,优秀的测试人员能够取得平衡。怀疑精神和好奇心也有一定的联系,比较相似,也需要适度,不能“杞人忧天”。

8.洞察力

  • 具有适度的怀疑精神和好奇心,如果缺乏洞察力,测试能力还会受到较大的限制。一个好的测试工程师具有一种先天的敏感性,并且能尝试着通过一些巧妙的变化去发现问题。例如,测试人员能够捕获用户使用系统的一些特定场景,发现一些隐藏较深的严重缺陷。如果能够洞察开发人员的弱点或系统的薄弱环节,对更快地发现问题也会有很大帮助。有了良好的调察力,也有助于识别测试的风险,从而降低测试的风险,确保测试项目的成功。

9.反向思维和发散思维能力

  • 测试工程师应想尽办法来考虑产品可能出现失败的各种方式,最大限度地暴露其存在问题,用严格的边界条件来检验它,让系统经受压力测试,或者是强迫它处理“不可能发生错误。所有这样的负面测试,都需要反向思维和良好的发散思维能力。

10.记忆力

  • 如果测试工程人员有能力将以前曾经遇到过的类似的错误从记忆深处挖掘出来,这对以后的测试有很大帮助,因为不少错误是由于开发人员的不良习惯导致的。在测试一个产品的新版本时,如果清楚已发布的各种版本的产品功能,就比较容易了解新版本的功能做了哪些改动,为什么改、怎样改了之后会对其他特性有哪些影响等一系列问题。如果熟悉软件各种老版本所出现的缺陷,有助于对新版本的用例设计和测试执行。

你可能感兴趣的:(测试,测试工具)