软件测试(第2版)
上QQ阅读APP看书,第一时间看更新

1.5 软件测试人员的基本素质

软件测试是一项非常严谨、复杂、艰苦的和具有挑战性的工作。如今软件规模不断增大、复杂性日益增加,软件公司已经把软件测试作为技术工程的专业岗位。随着软件技术的发展,对专业化、高效率软件测试的需求越来越迫切,对软件测试人员的基本技能和素质的要求也越来越高。概括地说,软件测试人员应具备下列基本技能和素质。

1. 技能要求

测试人员的技能要求不同于开发人员,开发人员可以仅仅要求具备某种编程语言或开发工具的使用能力即可胜任开发的工作.但是测试人员却要求了解更多的东西,知识范围更广。测试人员的技能要求可分为4大类:

(1)业务知识:指测试人员所测试软件涉及的的行业领域知识,例如很多IT企业从事石油、电信、银行、电子政务、电子商务等行业领域的产品开发。行业知识即业务知识,是测试人员做好测试工作的又一个前提条件,只有深入地了解了产品的业务流程,才可以判断出开发人员实现的产品功能是否正确。测试人员对所测试软件涉及的业务知识了解得越多,测试就越贴近用户实际需求。并且测试发现的缺陷也是用户非常关注的缺陷。相反,如果缺乏对产品所涉及的业务领域的理解,则有可能测试出来的缺陷只是停留在功能操作的正确性层面,可能会因为对某些业务知识存在误解,导致误测。

(2)计算机专业知识

计算机领域的专业是测试工程师应该必备的一项素质,是做好测试工作的前提条件。一名要想获得更大发展空间或者持久竞争力的测试工程师,则计算机专业技能是必不可少的。计算机专业技能主要包含:

● 软件编程知识

“软件编程知识实际应该是测试人员的必备知识之一,在微软,很多测试人员都拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有能编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。

● 网络、操作系统、数据库、中间件等知识

由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等知识。

(3)测试专业知识

测试专业知识很多,测试专业知识涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。

(4)用户知识

测试应该始终站在用户、使用者的角度考虑问题,而不应该站在开发人员、实现者的角度考虑问题。因此,要求测试人员必须掌握用户的心理模型,用户的操作习惯等。如果缺乏了这方面的知识或者是思维方式的偏离,则很难发现用户体验、界面交互、易用性、可用性方面的问题,而这类看似很小的Bug,却是用户非常关注的问题,甚至是决定一个产品是否成功的关键问题。

2. 素质要求

作为一名优秀的测试工程师,除了具有前面的专业技能和相关知识外,测试人员应该具有一些基本的个人素养。

(1)具有较强的责任心、自信心及工作要专心、细心、耐心。

● 责任心:责任心是做好工作必备的素质之一,测试工程师更应该将其发扬光大。如果测试中没有尽到责任,甚至敷衍了事,这将会把测试工作交给用户来完成,很可能引起非常严重的后果。

● 自信心:自信心是现在多数测试工程师都缺少的一项素质,尤其在面对需要编写测试代码等工作的时候,往往认为自己做不到。要想获得更好的职业发展,测试工程师们应该努力学习,建立能“解决一切测试问题”的信心。

● 专心:主要指测试人员在执行测试任务的时候要专心,不可一心二用。经验表明,高度集中精神不但能够提高效率,还能发现更多的软件缺陷,业绩最棒的往往是团队中做事精力最集中的那些成员。

● 细心:主要指执行测试工作时候要细心,认真执行测试,不可以忽略一些细节。某些缺陷如果不细心很难发现,例如一些界面的样式、文字等。

● 耐心:很多测试工作有时候显得非常枯燥,需要很大的耐心才可以做好。如果比较浮躁,就不会做到“专心”和“细心”,很难敏锐地发现那些深藏不露的软件缺陷。

(2)具有很强的沟通和交流能力。测试人员在测试工作中要和各类人打交道,因此,必须能够同测试涉及到的所有人进行沟通,具有与技术(开发者)和非技术人员(客户、管理人员等)的交流能力。既要可以和用户谈得来,又能同开发人员很好地沟通,当与软件开发人员研究故障报告和问题时,软件测试人员应善于表达自己的观点,沉着、老练地与可能缺乏冷静的软件开发人员进行合作。当发现的软件缺陷有时被软件开发人员认为不重要、不用修复时,测试人员应耐心地说明软件缺陷为何必须修复,尽量通过实际演示清晰地表达观点。具备了这种能力,测试人员可以将冲突和对抗减少到最低程度。

(3)团队合作精神。在软件工程各种开发模型和处理方式的背后,极为重要的一个环节便是人员的合作,团队协作精神能否很好地在工作中贯彻,在根本上决定了一个项目能否开发成功。软件测试人员应与软件开发人员密切合作,共同努力才能保证项目的顺利完成。即使在目前稍具规模的软件项目中,测试工作都需要不止一个测试人员参加,单凭一己之力是无法完成复杂的测试工作的,这就要求所有测试人员精诚合作,共同努力。如果缺少团队合作精神,测试工作不可能顺利进行。