【1+X】测试人员的职业素养

想看更多内容请移步专栏

转载:【1+X】软件测试技术 - 测试人员的职业素养 - 蓝桥云课 (lanqiao.cn)

测试人员的职业素养

知识点

  • 软件测试人员的必备技能
  • 软件测试人员那的职业素养
  • 软件测试工程师应遵守的道德规范
  • 软件测试人员的团队协作
  • 测试部门的组织架构
  • 软件测试人员的考核
  • 软件测试人员的职业发展

简介

通过前面章节的学习我们知道,软件测试工作绝对不是入门级的工作,也不是其他工作的垫脚石,而是一个专业技术学科,它要求富有经验的专门技术人员来完成。在复杂的测试工作环境中,测试人员除了必备的专业知识和测试技能,还需要具备一定的职业素养,才能做好软件测试工作。

本章主要介绍软件测试人员的必备技能和职业素养,测试部门的组织架构、管理,以及团队沟通技巧。

软件测试人员的必备技能和职业素养

软件测试作为产品上线前必不可少的质量控制环节,贯穿整个研发周期,处于非常重要的位置。要做好这项工作,对测试人员的要求就很严格,只有高能力、高素质的人才能把好关,最后给客户一个满意的交代。那么,测试人员都需要具备哪些职业技能和职业素养呢?

软件测试人员的必备技能

需要掌握软件测试的基础知识

软件测试的基础知识也就是软件测试的入门技能,是做所有测试岗位的技能基础,不管将来从事的是软件测试的哪个发展方向都需要掌握。要了解软件测试的相关专业术语和各流程阶段(单元测试、集成测试、系统测试、验收测试等各阶段)所使用的测试方法;要掌握文档的编写方法、测试用例的设计方法、测试策略的选择、缺陷的提交等;要了解软件工程中常见的质量管理体系,如 CMMI 和 ISO 9000;要掌握各种测试工具的使用,如自动化测试工具 QTP 和 Selenium,Bug 管理工具 QC 和 BugFree,项目管理工具禅道,配置管理工具 VSS 和 SVN,性能测试工具 LoadRunner 等。

这些内容在本书中都有详细的介绍,属于软件测试的入门知识,是在软件测试领域从业人员的一个立足之本,是与项目成员交流沟通的基础。

需要掌握计算机相关的基础知识

软件测试人员要想深入全面地做好软件测试工作,还需要掌握计算机相关的基础知识,重点包括:

  • 操作系统知识。大多数人熟悉的操作系统是 Windows 系列操作系统,除了一般的服务管理、网络配置、注册表编辑、命令行操作,还要掌握一些服务的搭建,如 FTP(File Transport Protocol)的安装,活动目录 AD(Active Directory)的安装,POP3 和 SMTP 服务的安装,MySQL 数据库的安装,IIS 环境的搭建等。现在的服务器大都采用 Linux 系统,所以,除了熟悉的 Windows 操作系统,还需要掌握 Linux、UNIX 内核的操作系统,而且要掌握的不仅仅是简单的操作方法。因为,这些都是搭建软件测试环境的前提知识。
  • 数据库知识。作为软件测试人员,不一定需要具备 DBA 那样专业级操作数据库的能力,但是基本的数据库操作,如增、删、改、查、多表联查、子查询等必须掌握,视图、索引、存储过程是什么得有一定的了解。不管是 Oracle、DB2、MySQL 还是 SQL Server,至少应该能熟练使用其中的一到两个。
  • 计算机硬件知识。计算机硬件性能是软件性能测试中一个非常重要的指标,硬件知识如 CPU、内存、IO、带宽等都需要掌握。如果是做硬件测试的话,那么交换机、路由器、防火墙等也都需要有所了解。例如,复制一个程序安装包到空间足够的 U 盘,但却无法成功,懂硬件的人可能很快定位到 U 盘格式的问题,直接将其格式化成 NTFS 即可。
  • 网络协议知识。身处网络繁荣发展的时代,大多信息都是通过网络传输的,具备网络相关知识势在必行,如 ISO 网络协议,Cookie 和 Session 的区别,TCP 和 UDP 有什么不一样,HTTP 数据传输方式都有哪些,等等。
  • 代码编写能力。虽然不会编写代码也能做软件测试工作,但是如果想在软件测试方面深入发展的话,那么代码编写能力就是必须掌握的,因为高级测试工程师的部分工作就是编写测试工具,或者做一些白盒测试以提高测试效率,而且很多软件测试工具也需要代码的支持。当然了,虽然软件测试需要编写代码,但并不需要像开发人员那样精通一门语言,而是需要了解很多种开发语言。举一个简单的例子,你现在参与的项目可能采用的 Java 语言,懂 Java 语言基础就可以了;但两年后你可能换工作了,新公司的开发语言是 C++或 VB,那么你就还要懂 C++或 VB 语言知识,所以,软件测试人员需要的是了解开发语言的广度。

行业知识

一个专业测试工程师可能会认为深入地了解行业知识并不难,但是,如果软件面向的行业非常复杂,情况就没那么简单了。在工作中需要行业专家与开发人员紧密协作来分析需求,彻底地了解某些问题(如税法、劳动合同和物理学)可能需要花费几年的时间。而且,不同行业领域的业务逻辑也是不同的,如金融业务规则、医疗业务规则、通信业务规则、航天业务规则、拍卖业务规则等。行业知识是需要通过工作经验来积累的,不是看几本书就能知道的,有些知识在书本上是学不到的。由于行业知识的特殊性,如果频繁更换工作,是很难学到深入的行业知识的。经验的积累需要通过实践来沉淀,所以常常会在招聘需求上看到“有 ×× 行业测试经验者优先”这样的字样。

美学观

测试人员除了需要掌握软件测试知识、技术知识、行业知识,还要具备一定的美学观。这里的美学观除了美学、审美,还有完美。由于软件存在潜在缺陷,包括功能、性能、易用性、界面、安全等方面,所以对美的追求有助于提高对软件产品的要求,测试过程中容易发现更多细小的瑕疵。特别是面向用户的产品,如 Web、客户端、App 等,它们的界面布局、话术、导航条、提示信息等如果不合理,在拥有较高审美要求的人眼中更容易被发现和察觉。在软件工程中,不管是开发活动还是测试活动,最后的目标都是将产品推向市场并获得用户的认可。所以,如果产品在软件界面上就无法引人入胜,那么就算测试开发工作做得再好,这个项目也一样会失败。

软件测试人员的职业素养

前面介绍了那么多技能或者需要掌握的技术,但是,如果没有一颗发现缺陷之美的心,没有一颗以提高质量为前提投入工作的心,那么就算其他方面做得再好,也不过是众多软件测试从业人员中的普通一员。要想成为一名优秀的软件测试工程师,测试人员除了前述必备技能外,还要具备很高的个人素养,也就是说对个人的综合能力有较高的要求。真正优秀的测试工程师都具有如下秉性:

工作热情

测试活动充满了艰辛和挑战。测试人员只有始终保持积极的工作态度和热情,才能出色地完成各种测试任务和接受各种挑战。没有激情的测试人员,只会满足于完成基本的测试任务;而充满激情的测试人员不仅能够完成基本的测试任务,还能够用积极的态度思考测试过程中遇到的各种问题,努力寻找更好的解决方案,创造性地解决这些问题。同时,还可以积极地进行自我反省,不断地寻找团队和自身的不足,从而持续地进行改进。

怀疑精神

发现缺陷是测试过程的主要目的之一,因此,测试人员对被测产品要有怀疑精神,也就是怀疑测试对象存在缺陷或者无法正常工作。很难想象,缺乏怀疑精神的测试人员能够有效地发现软件产品中的缺陷,更不用说达到尽量多地发现缺陷的目标了。不抱有怀疑的态度,一般很难成为合格的测试人员。因为软件产品用户用起产品来是各式各样的,有些用户的水平和对产品的理解比专业人员还要深,所以一定要用逆向思维认真地测试每一个功能点,以怀疑的态度去分析和评估需求规格说明。同时,对于测试团队设计的测试用例,也不能盲目相信它们不会存在错误和缺陷。这都需要测试人员具有怀疑精神。

“三心二意”的精神

“三心二意”的精神是指:耐心、细心、责任心,团队合作的意识和缺陷预防的意识。

  • 耐心。对于测试人员来说,每天面对大量的程序功能和代码,需要做大量重复性的工作。在测试过程中经常出现这样的现象:尽管运行了很多的测试用例,但是却没有发现任何缺陷,而且即使测试对象出现了异常行为,也需要测试人员经过耐心的分析和研究,才可能最终确定是否是缺陷。通常来说,测试对象的异常经常隐藏在大量的系统正常行为之中。因此,需要测试人员耐心检查各种数据、操作和系统表现行为,才能发现其中的异常。如果缺乏足够的耐心,测试人员也许根本坐不住,无法静心思考用户可能的操作行为以及可能存在哪些问题。
  • 细心。光有耐心是不够的,因为并不是所有的缺陷都可以很容易地被找出来。如果不细心,就会忽视一些小的错误,而这些小错误以后可能成为软件的“死穴”。“细节决定成败”,这句话特别适用于软件测试人员。
  • 责任心。没有责任心,就不能做测试。要主动想着“我就是要破坏这个东西,我知道有错误而且要找出错误,这就是我的工作”。不能想着按照测试用例执行完毕就结束了,而是要有保证产品质量的强烈责任心。
  • 团队合作的意识。团队精神是大局意识、协作精神和服务精神的集中体现。软件开发生命周期中的任务都是团队合作完成的,团队并不是一群人的机械组合,而是一个有机整体——离开了谁,产品的质量都将无法保证。没有任何一个项目可以让你做孤胆英雄。团队精神要求团队成员有统一的奋斗目标和价值观,而且需要相互信赖,需要正确而统一的企业文化理念的传递和灌输。
  • 缺陷预防的意识。要想着尽早介入软件项目,尽早发现软件缺陷,利用自己的专业技能尽量把大量缺陷扼杀在萌芽状态。

良好的沟通和表达能力

沟通技巧对软件测试人员来说,是指具有收集和发送信息的能力,能通过文字、口头与肢体语言等媒介,有效与明确地向他人表达自己的想法、感受与态度,亦能较快、正确地解读他人的信息,从而了解他人的想法、感受与态度。懂得沟通技巧并不意味着就会成为一名有效的软件测试人员,但缺乏沟通技巧必然会遇到许多麻烦和障碍。表达能力不好的话,将无法让开发人员快速理解测试人员的意图。

测试人员的大部分工作都是在沟通中完成的,包括与产品人员沟通需求,与开发人员沟通逻辑实现,与项目经理开会汇报测试进度,有时候还需要与客服打交道。所以,对测试人员来说,准确得体的表达能力非常重要。

良好的文档编写能力

在从事软件测试工作的过程中,需要测试人员编写很多文档,如软件测试计划、软件测试用例、软件缺陷报告、软件测试报告,所以需要良好的文档编写能力,这是做好软件测试工作的基本功。而且,测试中有文档测试和界面测试,如果连自己的文档都不能保证内容正确、界面干净整洁、方便阅读,缺乏基本的美感的话,又怎么测试别人的作品呢?

持续学习的能力

学习能力是智力结构中与学习密切相关的那部分能力,主要包括理解力、记忆力、问题解决能力以及评价能力。计算机技术发展日新月异,无论理论还是实践,知识更新都非常快,所以测试人员必须不断学习,了解和掌握最新的测试理论、测试技术以及其他领域的计算机技术,如云计算、敏捷开发与测试等,并在测试中将这些理论知识付诸实践,让测试人员的测试工作变得更有效、更高效。很多起点相同的人,在毕业一到三年后会出现明显差距,就跟学习能力有很大的关系。

用户心理学

软件测试人员应该始终站在用户、使用者的角度考虑问题,而不应该站在开发人员、实现者的角度考虑问题。因此,要求测试人员必须掌握用户的心理模型、操作习惯等。

如果缺乏这些方面的知识,或者思维方式出现偏离,则很难发现用户体验、界面交互、易用性、可用性方面的问题。而这类在某些人看来很小的 Bug,却是用户非常关注的问题,甚至是决定一个产品是否成功的关键问题。

用户心理学一般应用在界面交互设计的测试、用户体验测试等方面。

软件测试工程师应遵守的道德规范

软件测试并不仅仅是技术问题,更是职业道德问题。所以,软件测试人员一定要遵守相应的道德规范和职业素养。此处借鉴和引用 IEEE 对软件测试工程师道德规范的如下表述:

  • 公共:合格的软件测试工程师的行为应与公共利益保持一致。
  • 客户和雇主:合格的软件测试工程师在保证公共利益的前提下,应最大限度地保证客户和雇主的利益。
  • 产品:合格的软件测试工程师应保证他们发布的(在测产品和系统中的)版本最大限度地符合专业标准。
  • 判断:合格的软件测试工程师应在其提供的专业判断中保持公正性和独立性。
  • 管理:软件测试管理人员和测试领导者应统一提供合乎道德要求的测试管理。
  • 专业:合格的软件测试工程师应致力于提高职业的公正性和信誉并与公共利益保持一致。
  • 同事:合格的软件测试工程师应在工作中热切地支持他们的同事并促进与软件开发人员的合作。
  • 自身:合格的软件测试工程师应终身学习并不断促进职业实践的提升。

软件测试人员的团队协作

互联网项目中有三大团队:产品团队、开发团队、测试团队。这三者之间存在微妙的关系。2019 年 8 月,有一段办公室打架的视频在互联网上流传开来,据称是某互联网公司产品经理提了个需求,要 App 开发人员实现该需求,由于开发人员认为该需求不合理,然后就出现了矛盾并激化,可见合作和沟通的重要性。在合作过程中,测试人员与其他团队的沟通“事故”也常有发生,特别是当测试人员只作为缺陷消息的传递者时,是不太受欢迎的。所以,如何与各团队良好地协作也是测试人员需要学习的一个课题。

在工作过程中,测试人员面对最多的人就是开发人员,所以,如何与开发人员进行沟通是每个测试人员需要面对的重要问题。

如下图所示是测试人员和开发人员沟通时开发人员可能常说的一些话。鉴于前面章节的学习,读者可以自行“脑补”开发人员说这些话的场景。当这些场景发生的时候,作为测试人员,你该如何处理呢?

由于测试人员的角色就是“挑刺”,所以常常“不受欢迎”。在一个团队里,总有测试工程师被“喜欢”和被“讨厌”,但是“喜欢”和“讨厌”不能作为衡量测试人员工作能力的标准。一般来说,能够帮助开发人员定位问题并可以很好地进行换位思考的测试人员,是最容易被开发人员认可的。

其实,作为测试人员和开发人员来说,两方类似于建筑方和质检方,一个建筑高楼大厦,另一个针对质量问题进行严格的检查。所以,两方有矛盾是再正常不过的事情。此处提供一些参考建议——六“要”,四“不要”。软件测试人员在换位思考的情况下多去理解开发人员的情况,很多问题就可以化为无形。

六“要”

要耐心和细心

耐心和细心是软件测试人员的基本素质之一。测试工程师是对质量负责的人,涉及质量问题就不能含糊,因此一定要细心:细心对待每一个可能的 Bug,细心对待每一段被检查的代码,细心对待每一份撰写的 Bug 报告,细心对待发出的每一封邮件。细心是一种态度,软件测试人员的态度迟早会感染与其合作的开发人员,而这往往是愉快合作的基础。

至于说到耐心,在实际工作中,不厌其烦地向开发人员解释一个 Bug,让他认识到 Bug 的重要性是经常的事情。其实想想这也很正常,对任何人来说,被人指出自己的缺点和不足都不是件让人舒服的事情,因此,稍微有点不耐烦的情绪就可能引起对方很大的反感,给自己的工作带来不必要的麻烦。

要懂得尊重对方

开发是一件需要全面和综合考虑的工作,由于各种原因导致程序中出现问题是正常现象。作为测试工程师,发现这些问题并不值得夸耀,也不能说明你比开发工程师更聪明。一个好的测试工程师一定是懂得尊重开发工程师的人,尊重对方的技术水平,尊重对方的代码,对他们最大的尊重就是承认其专业水平,认可他们的代码。对开发人员来说,代码就像自己的孩子一样。因此,可以在合适的时候表达你的尊重,赞扬其代码的精妙之处。

要能设身处地为对方着想

开发工程师一般都处在较大的工作压力之下,往往忙于赶进度,对测试工程师报上来的 Bug 可能会拖延解决甚至推脱,给测试工程师的感觉就是“很不合作”。那么在这个时候,就需要设身处地地为对方着想,每个人都会为自己的工作排定优先级,如果对方认为解决发现的 Bug 不是重要的事情,那么最大的可能就是没有向他解释清楚这个 Bug 的严重程度。遇到这种情况,心平气和地讨论一下 Bug 的严重程度,有助于提升开发工程师的配合程度。

要有原则

不要忘记,测试工程师需要对产品的质量负责,在这一点上一定要有原则。测试工程师可以和开发工程师建立良好的个人关系,但在具体的事情上,一定要按照公司的相关流程来处理。当然,在坚持原则的同时,可以采用一些委婉的表达方式,在允许的情况下尽量体谅开发工程师。但请记住,一个有原则的测试工程师才能真正帮助开发工程师,才能赢得他们的尊重。

要主动承担

如果开发工程师要求你承担不属于你的任务,例如,定位你发现的 Bug 到具体代码中,或者帮助他编写部分文档和代码(不要怀疑,真有这样的事情,比如让你写一个输入域的正则表达式),那么你会怎么做呢?建议尽量多承担,这样将有助于你个人的成长。这一点属于编者的个人意见,仅供参考。

要客观

使用建设性的沟通方式,以合作而不是争斗的方式开始项目。提醒项目每位成员“共同目标是追求高质量的产品”,对产品中发现的问题以中性的、以事实为依据的方式来沟通,不要指责开发人员,要明白出现 Bug 是整个生命周期中的一个正常现象,而不是这个开发人员本身有问题。要客观而实际地编写缺陷报告和评审发现的问题。

四“不要”

不要嘲笑

不要嘲笑你所发现的 Bug,即使是非常愚蠢的错误也绝对不要嘲笑,说不定那个错误是因为开发工程师连续加班 24 小时犯下的。对别人的工作始终应该保持尊重。如果你觉得有必要提醒他不要再犯一些经常犯的错误,建议采用这样的方式:编写一份测试过程中发现的开发工程师常犯错误的文档(记住:千万不要写上谁犯了这些错误),适当地用轻松的口气“调侃”一下,发送给开发人员,这种方法一般都能很快接受。

不要在背后评论开发工程师

永远不要在背后评论开发工程师的技术能力,这个绝对是非常忌讳的事情。一时的口舌之快或许会使你永远不能再同他良好地开展合作。要知道,开发工程师最在意的就是别人对他技术能力的评价。其实这个不仅仅是作为测试工程师的准则,也应该是做人的准则。

不要动辄用上司来压制对方

在和对方出现意见有分歧的时候,应该采用什么方式说服对方呢?直接向上司求助当然是一个办法,但这种办法带来的负面影响也是很明显的。首先是上司的处理结果可能不一定符合你的愿望,其次是动辄拿上层来压制对方只能给他人留下无用的印象,所以,在出现分歧时应尽量尝试通过沟通解决。

与开发人员的沟通中不要只有 Bug

除了 Bug,还有很多话题可以和开发工程师进行沟通,例如,午餐或集体活动时多和对方聊聊天,一方面可以增进彼此的感情,“混个脸熟”,方便以后开展合作;另一方面,从他那里了解业务知识以及他负责模块的方方面面,对自己也是提升的机会。编者就非常喜欢与开发工程师沟通,开发工程师其实一般都是比较健谈的,尤其是对他们程序的精妙之处。

综上所述,其实关键的就是两点:首先是多从别人的角度去思考问题,即所谓“换位思考”,多尊重对方就一定能得到对方的尊重与配合;其次是加强与开发工程师的沟通,让他清楚地认识到你的工作对他的价值,以及你发现的每一个 Bug 的重要性。

一个优秀的测试工程师一定是在公司里被所有人尊重的快乐分子,而不应该是一个“铁面判官”,要经常提醒自己、尊重对方。

项目中,只有大家团结协作、齐心协力,产品的质量才会越来越好。使用建设性的态度对发现的缺陷或问题进行沟通,可以避免测试人员、分析人员、设计人员以及开发人员之间的矛盾和不愉快。这个道理不仅适用于文档的评审过程,也适用于测试的过程。

软件测试部门组织架构和考核

测试部门的组织架构

一个软件公司里软件测试部门的组织架构,可能会决定测试人员未来的成长空间,同时也决定了工作模式。通常测试部门的组织架构分成两种:一种叫作金字塔式管理模式;另一种叫作矩阵化管理模式。

金字塔式管理模式

金字塔式管理模式主要出现在公司里有单独的测试部门的情况下,测试部门可能由上而下地有测试总监、测试经理,中间可能还会有测试组长、测试主管,最后是底层的基础测试人员。金字塔式管理模式还会分成两种发展模式。

第一种发展模式:以产品线来构造。

如下图所示是以产品线来构造的组织架构。在一个测试总监下包含多个产品线;每一个产品线有自己的测试经理,其中有不同的分组;每一个测试经理下方有多个测试组长;每一个测试组长下面有多个测试人员。这样的管理模式,每个级别都是一对多的关系,底层测试人员除外。这种模式下对测试人员的管理更加清晰。

第二种:以测试专业方向来构造。

金字塔式管理模式还有一种发展模式,就是一个测试总监下分为不同功能的测试团队,可能分为自动化测试团队、性能测试团队、安全测试团队等,如下图所示。一些大型公司常常按这个体系划分,这样的划分模式对于测试人员的专业度和发展方向上有更明确的定义和指向。擅长做自动化就可以去自动化测试组,擅长做一些安全方面的工作就去安全测试组。如果喜欢性能、喜欢压测、喜欢大并发、喜欢大数据,可以选择去性能测试组。

以上两种团队组织发展模式都是金字塔式管理模式。对于一些大型公司和一些专业性的公司,采用金字塔式管理模式的多一些。但是对于一些中小型公司来说,这样的管理会比较复杂,因为有时候测试总监并不知道各个产品线上到底需要什么样的人员、需要什么样的配置、需要什么样的策略,或者一人身兼多个测试专业技能,团队人数比较少,没必要再分各个功能组。这时候可能就使用现在比较流行的矩阵化管理模式会更好一些。

矩阵化管理模式

所谓矩阵化管理模式,就是每个人员都由两种角色的领导来管理:一种是项目层级的领导,一种是业务领域或者专业领域方面的领导。

各个不同的项目会有自己的项目经理,项目经理关注的是项目上的事情,如项目上的测试进度、现在测试的一些缺陷等。而对于职能部门的研发经理和测试经理来说,更加关注下属人员的未来发展和职业技能培训等。如下图所示是一个矩阵化管理模式。

在这种模式下,测试人员工作的表现更多地是由项目经理来评定的,而测试方向上的发展则更多地由专业方向上的管理人员来进行管理。但是有时候会有一些模糊的地方。在这种模式下,更多的时候是以项目优先,要先去处理项目上的一些工作,在自己的其他时间,包括在不那么忙的时候,去完成专业领域上的一些晋升,这才是矩阵化管理模式的优势。

在未来职场中,不管面临哪种管理模式,目标一定要清晰,要明确自己职业发展方向上的规划。不管未来是想向技术领域发展,还是想向管理领域发展,都必须清晰自己的目标和晋升模式,这样才能够让个人发展最大化。

对于正规化的大公司,以上两种管理模式都比较常见,但还有其他不同的组织架构,尤其是小型开发团队(少于 10 人),常常是测试团队向开发管理人员汇报工作,开发管理人员同时管理开发团队和测试团队的工作。这有可能引起大的问题,就是测试小组的影响比较小,开发人员常常把测试人员的缺陷报告当作建议而不重视。有时候测试人员甚至还会被拖入调试或编码中去,很难保持一个单独的测试小组。

一个好的测试团队,一定是一个学习型的团队。学习型组织是有生命力的,测试人员可以不断地学习到更多的测试理论和技能。

软件测试人员的考核

对测试人员的考核不是度量软件测试人员的目的,而是通过考核测试人员的工作表现来促使测试人员意识到自己的不足,从而改进自己的工作,提高工作效率。对测试人员的考核指标通常分为硬指标和软指标。

硬指标

缺陷逃逸率

缺陷逃逸率是硬指标之一。缺陷逃逸是指有些缺陷本来应该在测试阶段发现的,由于测试人员的漏测而逃逸到用户的手中,用户在使用过程中发现了缺陷。

按照软件测试的 Pareto 法则,80%的 Bug 在分析、设计、评审阶段都能被发现和修正,剩下 20%的缺陷中的 80%需要由系统的软件测试来发现,最后剩下 4%左右的 Bug 只有在用户长时间的使用过程中才能暴露出来。因此,统计缺陷逃逸率有助于敦促测试人员在测试阶段尽量多地发现 Bug。

0.5%是一个缺陷逃逸率的经验参考数值,应该按照具体项目的质量要求和对测试的要求来定义一个合理的缺陷逃逸率。缺陷逃逸率的考核公式如下:

缺陷逃逸率=用户发现的缺陷个数 ÷ 总共出现的缺陷个数 ×100%

当然,还可以进一步细化这个公式,将缺陷分级别统计,例如,严重级别的缺陷逃逸率不能超过多少,中等级别的缺陷逃逸率不能超过多少,轻微级别的缺陷逃逸率不能超过多少。

但缺陷逃逸率的考核始终是一种事后检查,对造成的损失于事无补。如果要防患于未然,还应该考虑更多基于过程的考核方法。

测试效率

测试效率是另一个硬指标。如果测试用例设计比较完善,可以按照测试用例执行测试,还可以用它来衡量测试人员的测试效率。测试效率的考核公式如下:

测试效率=执行的测试用例个数 ÷ 测试执行的工作日

统计测试效率需要注意测试人员的工作日计算,如果测试人员除了执行测试用例外,还有其他的工作要做,应该统计真正用于测试执行的工作时间。

软指标

除了一些可以统计的硬指标被用于考核测试人员之外,还可以综合其他的软指标来衡量测试人员的工作质量。例如,评价一个测试人员的 Bug 报告和测试报告。通过这些报告,可以看出一个测试人员有没有用心去做好测试工作。常见的软指标包括:

  • 如果一个测试人员录入的 Bug 经常被 Rejected(拒绝接受),可能就要问一下这个测试人员是否存在一些需求上的误解或者与开发人员的分歧。
  • 如果某个测试人员录入的 Bug 偏向单一的类型,例如,绝大部分是界面上的问题,那么就要看这个测试人员是否存在测试思维上的某些局限,需要进一步地突破和提高。
  • 一个测试人员只有真正认真地投入到测试工作中,才能写出出色的测试报告,写出来的报告应该有各类数据来充分地说明某些问题,应该包含很多总结出来的经验教训,能给其他测试人员学习和借鉴,甚至对程序员有很好的指导意义。
  • 其他软指标包括相关人员对其的评价,可参考每个角色对其的评价来综合评估测试人员的工作,也就是通常所说的 360° 评价。例如:

可参考测试经理对其在任务执行、工作效率等方面的评价; 可参考项目经理对其在提高产品质量方面的评价; 可参考其他测试人员对其在团队建设、知识共享等方面的评价; 可参考开发人员对其在 Bug 报告、协助调试、沟通等方面的评价; 可参考 QA 对其在文档编写、流程遵循、质量改进等方面的评价。

考核表

综合前面的一些度量方法和评估指标,测试部门可以制定相应的符合自己公司实际情况的考核表。如下表所示是某公司软件测试部门的测试人员考核表,供读者参考,以便对自己需要提升的地方给予更多的关注。

姓名:日期:
            
1测试进度15--
1.1单元任务测试进度符合程度5
1.2阶段任务测试进度符合程度5
1.3总体任务测试进度符合程度5
2测试质量15--
2.1集成测试质量情况5
2.2集合测试质量情况5
2.3阶段测试质量情况5
3合作情况20--
3.1和上司沟通情况5
3.2和同事沟通情况5
3.3工作报告情况5
3.4和客户沟通情况5
4需求跟踪情况10--
4.1需求分析评审满足情况3
4.2测试与需求符合情况3
4.3需求跟踪达标情况2
4.4客户需求跟踪反馈情况2
5实施情况10--
5.1实施计划执行情况5
5.2实施达标情况5
6服从项目经理情况10--
6.1项目经理交代任务完成情况5
6.2任务汇报情况5
7工作态度10--
7.1对客户热情,客户非常满意5
7.2及时响应客户需求5
人事评分:
8人事考评10-
8.1公司考勤制度执行情况10
9总分/**得分**100-

软件测试人员的职业发展

对于大学生来说,应尽早在校园阶段就开始做好职业规划。因为毕业后的第一份工作,会影响接下来 5 ~ 10 年的发展轨迹,甚至会对一生产生影响。所以,选择一个合适的起点,是必须在校园内思考清楚的问题。

校园阶段的规划

可以在毕业前的 1 ~ 1.5 年就开始。要结合自己的专业教育背景、个人能力、兴趣爱好、长期目标等,做出理性的决策。主要是选择一个大的入门方向,也可以定一个长期目标,但没必要规划过细,因为在没有入行前一切都是未知的,把握好路线即可。软件测试,特别是黑盒测试,入门起点比较低,上手比较快,而且发展空间也比较大,对于很多大学生而言,作为进入 IT 行业的初级岗位是非常合适的。

入门阶段

入行后的 3 个月到 1 年之间属于入门阶段。对于刚入行的新人,这是最能学到新知识,也是最有热情和动力的时期。建议借这股“冲劲”,了解所在领域的全貌以及各个主要分支,根据当前的工作环境,并结合个人匹配程度和兴趣爱好,调整个人职业规划。

测试方面的专业技术发展一般包括黑盒测试、白盒测试、自动化测试、性能测试、测试工具开发等几类,测试管理方面的发展一般有测试管理、质量管理、项目管理等。这些方向的内涵是大家可以都了解的,然后确定其中的 1 ~ 2 个作为自己中长期的主攻方向。这个标准达到了,基本就算实现了测试入门,至于能否进入更高业务层级、达到更高业务水平,就要看个人的后期努力了。

提高阶段

入门后的 3 ~ 5 年属于提高阶段。这个阶段的人有了一定的工作经验,可以胜任本职工作。家庭、娱乐方面开始占据生活的主流,也是最容易懈怠的阶段。这个时期大多数人往往不超过 30 岁,此时懈怠是非常可怕的。所以,有规划地提高核心竞争力,在这个时候特别关键。这个时期可以考虑细化自己的中期规划。根据选定的方向,制订一个自我提升计划。不要急功近利,要稳扎稳打,忌做“万金油”,要让自己有一技之长。

对于入门后选择管理方向还是选择技术方向,关键要看自己的长期定位。选择技术的人,要熟悉所选技术方向的大多数细节;选择管理的人,可以介入管理,但不要全面进入管理。管理更多地是一种思维和做事的方式,是一门很深的学问。可以选择带有技术含量的管理岗位,如高级软件测试工程师、测试组长等,这个时候的你应该能够胜任。

这个阶段的目标达成后,就可以跻身于“老手”行列了,甚至不会为找工作而犯愁,猎头也可能会时不时地“骚扰”你一下。

升华阶段

成为“老手”后的 5 ~ 10 年属于升华阶段。这时大多数人已经步入中年了,无论是做技术工作还是搞管理,都面临着家庭和社会的双重压力,可以考虑一个长远的发展规划。因为有前期的背景,所以需要提升自己的宏观把控能力。也可以考虑适当地转型管理,技术做得越好,管理的时候越容易切中要害。当然,纯管理和技术性管理还是有区别的。管理做得好的人,也可以做好其他方面的管理。不管管理的对象是什么,毕竟管理理念是相通的。而技术型管理的人主要是带好技术团队。

根据职业生涯规划双通道理论,一些大企业把团队的发展方向分成技术通道和管理通道两种。在软件测试人员的职业生涯规划双通道中,技术型偏向于测试设计和架构方面,而管理型则偏向于测试组织和协调方面,如下图所示。

测试人员的发展双通道,一个是往管理方向发展,另一个是往技术方向发展,两个方向都给予了同等的重视程度,让测试人员可以选择自己喜欢而且适合自己发展的路线。在发展的初级阶段,两条路线要经历的阶段是一样的,都是从实习测试员开始,先做好测试员的工作,成为正式的测试工程师后再往测试设计工程师晋升,然后再考虑往不同的方向发展。

高效的测试团队应该由具备专门技术的成员组成(如具备行业知识、专业技能、测试技术等方面知识的人员);同时也应该由具备各种经验等级的成员组成(如测试新手和测试专家,以及了解应用程序功能细节的行业专家),他们在测试团队中起着重要的作用。

在微软公司,开发人员与测试人员之间经常互相转换,因为测试与开发都受到同等的重视。比尔·盖茨曾经说过:“微软不是一个软件开发公司,而是一个软件测试公司。”在微软公司,很多测试人员都有很强的开发能力,而很多开发人员也会希望在测试领域锻炼自己。

小结

为了让读者全面了解软件测试岗位,本章介绍了软件测试人员软技能,包括必备技能、职业素养、道德规范以及团队协作。可以在工作中提醒自己的不足,鞭策自己不断地学习。新入门的测试人员进入一个管理不那么规范的公司时,往往会感到困惑。所以本章同时介绍了测试团队的组织架构、测试人员的考核指标以及职业发展规划,这些知识有利于软件测试新人在实际工作中迅速找准定位和发展方向。

软件测试的目的概括来说就是寻找软件的缺陷,它要求软件测试人员时时要求完美,时时有发现问题的眼睛,越是优秀的测试人员就越喜欢追求完美,越喜欢发现问题。在此需要提醒一点的是,谨防“职业病”——我们不能因为前台姑娘在微笑时 8 颗牙齿没有全露出来就说不符合 UI 标准;不能因为在吃菜的时候发现了一只苍蝇,就怀疑可能还有蚊子、笤帚枝、小飞虫和头发丝并发誓全都要找出来;也不能因为你觉得小王的男朋友说爱她一生一世的用例测试难度较大就建议人家换个爱她时间在一年以内的;更不能因为地铁车门被东西挡在中间关不上,你就突然想测试下车门会持续开多长时间;有人找你问路,你不需要覆盖 12 种走法……不过,如果在街上看见两个人吵架,你倒是可以过去劝一劝,本着以和为贵的精神告诉他们:“不要争了,看看 UI 就明白了。”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值