耐心
软件开发一般被看做是建设性的活动,而软件测试常常在一定程度上被看成是破坏性的活动。但是软件测试的这种破坏性的活动并不是每次都能“破坏”成功的。在测试过程中经常出现这样的现象:尽管运行了很多的测试用例,但是没有在测试对象中发现任何的失效。这个时候,就要求测试人员具有足够的耐心。开发人员的重要输出是软件产品的代码,软件代码的数量会随着开发的深入持续不断地增长,这将极大地激发开发人员的成就感。但是测试人员不同,测试人员就像猎人一样,要经过漫长的“狩猎”过程才可能发现一个“猎物”。即使测试对象出现了异常行为,也需要测试人员经过耐心地分析和研究,才可能最终确定是否是缺陷。通常来说,测试对象的异常现象经常隐藏在大量的系统正常行为之中。因此,需要测试人员耐心检查各种数据、操作和系统表现行为,才能够发现其中的异常。
沟通技巧
所谓沟通技巧,对软件测试者来说,是具有收集和发送信息的能力,能通过书写、口头与肢体语言的媒介,有效与明确地向他人表达自己的想法、感受与态度,亦能较快、正确地解读他人的信息,从而了解他人的想法、感受与态度。 沟通技能涉及许多方面,如简化运用语言、积极倾听、重视反馈、控制情绪等等。虽然拥有沟通技能并不意味着成为一个有效的软件测试者,但缺乏沟通技能又会使软件测试者遇到许多麻烦和障碍。测试并不是独立存在的,而是软件开生命周期中的重要组成部分。实际的软件项目通常是由各种不同角色的人合作完成的,这样就难免会遇到需要和他人合作完成一项任务的问题,这个时候沟通就很关键。尤其是在当今全球化程度越来越高的情况下,很多项目由位于世界各地的团队共同完成,沟通就更加重要。沟通的方式有很多,可以是面对面的交流、电话或 Email,也可以通过文档和缺陷报告来交流信息。测试人员在整个项目开发过程中可能需要和项目经理、开发人员或用户等多种角色进行交流,良好的沟通能力有利于测试活动的开展。
团队精神
团队精神,在软件开发与测试周期过程中来说就是大局意识、协作精神和服务精神的集中体现。团队精神的基础是尊重个人的兴趣和成就。核心是协同合作,最高境界是全体成员的向心力、凝聚力,反映的是个体利益和整体利益的统一,并进而保证组织的高效率运转。随着社会的发展,社会的分工越来越细化,这同样适用于软件开发和软件测试,软件开发生命周期中的任务通常都需要通过团队来完成。团队并不是一群人的机械组合,真正的团队应该有共同的目标,其成员之间的行为相互依存和影响,并且团队成员之间能够很好地合作,从而追求集体的成功。团队是一个有机整体,团队成员除了具有独立完成工作的能力之外,同时还需要具有与他人合作共同完成工作的能力。团队的绩效源于团队成员个人的贡献,同时永远大于单个团队成员贡献的总和。团队精神是大局意识、协作精神和服务精神的集中体现。团队精神要求团队成员有统一的奋斗目标或价值观,而且需要相互信赖,需要正确而统一的企业文化理念的传递和灌输。团队精神强调的是组织内部成员间的合作态度,为了一个统一的目标,成员自觉地认同肩负的责任并愿意为此目标共同奉献。在测试人员的工作中,团队不仅是指测试人员之间应该有团队意识,作为项目的一分子,测试人员和开发人员也是一个团队。只有整个项目具备了团队精神,项目才能获得最终的成功。
工作热情
测试活动充满了艰辛和挑战。测试人员只有始终保持积极的态度和工作热情,才能够出色地完成各种测试任务和接受各种挑战。没有激情的测试人员,只会满足于完成基本的测试任务;而充满激情的测试人员不仅能够完成基本测试任务,还能够用积极的态度思考测试过程中遇到的各种问题,努力寻找解决方案,创造性地解决这些问题。同时还可以积极地对自己进行反省,不断地寻找团队和自己的不足,从而进行持续的改进。
技术能力
就总体而言,大多数开发人员对那些不懂技术的人有时或许持一种轻视的态度。一旦测试小组的某个成员做出了一个错误的断定,或者在没完全正确理解产品特性的基础上冒失的提出一个错误的软件缺陷,那么测试团队的可信度就会受到开发团队以及项目经理的挑战。测试人员必须既熟悉被测软件系统的原理、流程又要掌握一定的代码能力。既能读懂开发人员写的代码,同时也要能发现代码中存在的问题。
超强记忆力以及自我督促能力
一个优秀的软件测试人员应该具备超强的记忆力。能够把之前遇到过的各种产品缺陷深入理解后,进行分类记忆存储。当在以后的测试中遇到与之前软件缺陷缺陷类似的软件缺陷时,从记忆深处快速挖掘出之前的软件缺陷,相互比较,找到该缺陷的根源。这一能力在测试过程中的价值是无法衡量的。因为许多新出现的问题和我们已经发现的问题相差无几。
同时干测试工作,尤其是经常用手工进行回归测试时,由于该测试已经在各个场景下跑了太多的次数,所以会让测试人员变得索然无味,同时很难调动测试人员的工作积极性,同时容易使你变得懒散。当测试人员是一个具有自我督促能力的人才能够使自己每天正常地工作。认真全面的执行每一条测试。
持续学习能力
学习能力为智力结构中与学习密切相关的那一部分能力,主要包括理解力、记忆力、问题解决能力及评价能力。软件测试人员必须保持不断学习的状态。计算机技术日新月异,无论从理论还是实践,知识更新都非常快。所以测试人员必须不断学习,了解掌握最新的测试理论、测试技术、以及其他领域的计算机技术例如云计算、敏捷开发与测试等。并在测试中,将这些理论知识付诸实践,让测试人员的测试边变得更有效、更高效。
原文转自:http://www.ibm.com/developerworks/cn/rational/1310_lihuan_testerability/