最近,在与 Microsoft 和其他软件公司的软件工程师和经理交流时,经常听到这样的抱怨:虽然找到真正优秀的软件测试人员一直很困难,但近几年好像尤其困难。
如何成为一名优秀的软件测试人员?要成为优秀的软件测试人员需要具备多种品质,我认为以下八种最重要。
1、对分析和测试工作的热情。对所从事的职业怀有热情是事业成功的关键。与编写应用程序本身相比,优秀的软件测试人员通常更能从编写用于运行软件应用程序的测试自动化程序中获得满足感。提到这种品性,人们通常会联想到接受过大学教育,主修数学、经济学及计算机科学等理科专业的人员。很大程度上,对分析工作的这种热情应该是一种与生俱来的,而不是后天形成的品性。
2、技术技能。优秀的软件测试人员必须具备精湛的编码技能,以了解要测试的系统、与开发人员交流,以及编写测试自动化程序。大多数技术技能可以通过培训或经验获得。对于需要具备什么级别的编码技能才可以成为优秀的测试人员,我的同事之间存在分歧,我认为如果按 10 分制评估(应用程序)开发技能,那么优秀的测试人员至少要达到 7.5 分。
3、先天的聪明才智。优秀的测试人员必须聪明,具有很强的分析和逻辑思维能力。软件开发本质上是一种逻辑活动,只有聪明的软件测试人员,才可以在这个领域取得较大的成就。
4、统筹和组织能力。几乎从事任何工作都需要具备这些素质,但对于软件测试人员尤为重要。软件开发和测试是一种变化性很强的活动;关键变化因素每周、甚至每天都可能发生变动。具备识别、理解和组织这些经常变化的工作环境因素的能力非常重要。
5、适应与学习能力。在软件工程领域,新技术的涌现速度让人难以置信。例如,在 2003 年早期出现的 C# 和 Microsoft .NET Framework 完全变革了软件应用程序开发的历史。优秀的软件测试人员必须时刻学习新知识,利用每周的部分业余时间来提高技能知识。在几年前我做了一项研究,结果表明软件工程师的“技能知识半衰期”大约是 18 个月 — 也就是说如果不显著提高技能,软件工程师在工作中很快就会被淘汰出局。
6、自主工作的能力。这是另一种常见的工作能力,但对于软件测试人员而言,这种素质尤为重要。独立工作能力非常必要 — 能快速认清与软件测试工作相关的技术或业务需求,知道哪些工作不需要经过管理层指示就可以做的能力(以及知道何时需要等待管理层的确认的能力)。
7、沟通能力。优秀的软件测试人员必须具有很强的书面和口头沟通能力。优秀的测试人员必须能够阅读和分析产品文档、起草测试规划、书写清晰的错误报告、撰写要提交给上级的条理分明的状态报告(正式报告和临时电子邮件报告),并可以在交谈会议上批评性地聆听和有条理地发言。
8、了解业务策略的能力。上面列出的优秀软件测试人员素质从本质上说主要属于战术层面。我所要介绍的最后一种能力是了解公司的整体业务策略的宏观方向。如果具备这种能力,优秀软件测试人员将不再仅仅参与软件测试,还可以在更高层面上积极参与公司活动 — 不再仅仅查找和报告具体的错误的优先级和严重程度,还可以发现软件系统在战略上的优势和劣势,从而最终使企业在竞争中处于有利的地位。
软件系统日益复杂,优秀软件测试人员的价值也随之日益重要。