[著作权申明]本文著作权归沈雪芳(qq:10294424)所有。任何大幅引用和刊用务必征得作者同意。
软件测试团队建设 整合测试与质量的关系
软件测试团队建设 整合测试与质量的关系
(沈雪芳)
质量,作为一门学科产生了许多混乱,因为他实际上把许多按传统的智慧经营的部分结合在一起了。这样一来,当经理们试图去安排质量时就有了沮丧的体验。他们被迫相信:质量管理、质量保证、质量控制全都是一回事儿。其实,远不是这样。
质量管理(QM),是一种哲学,是建立组织的管理风格与政策的概念的集合。这也是从精神上和物质上支持每一件事情的“善之诚信”。一旦经理们按照“质量管理”的概念去行动和工作时,则组织便能够使有用的“系统”产生效果。
质量保证(QA),是一种工作纪律,是那些设定人们去做事的程序文件的集合。他的目的是组织信息,以获得建立一种工作追溯方式的方式。
ISO9000/Mil-Q-9858i;鲍德里奇奖准则,以及TQM都是这种信息的实例。
不幸的是,许多领导都受到误导,他们认为实施“质量保证”系统,就是认证对待质量。这就好比拥有驾驶证就能成为一名
安全驾驶者一样。
质量控制(
QC),是一种科学的衡量过程,是通过对工作流程的抽验以评估其一致性的统计信息的集合。他的目的是让操作者持续地衡量他们的工作过程,从而避免产生不符合的输出。统计质量控制告诉你的是一些你并不想知道的事情;他的根基是从不想把事情做对。
就拿一部汽车来说吧,质量控制(QC)就是所有那些告诉你汽车当前运动状态的仪器仪表;质量保证(QA),包括ISO标准,是告诉你所有部件工作原理的用户手册;而质量管理(QM)则告诉你如何操控汽车,你驾驶的好坏,是否按要求更换了机油等等。
组织的经营管理靠的是管理哲学,而不是手册。
1 如何建立测试团队
既然测试团队是这么的重要,那么我们就要建立起一个高效的测试团队。我们可以从以下几个方面着手建立测试团队。
1. 招募测试人员
创建一个有效的测试团队是一项艰苦的任务,但是他对测试团队的成功是必不可少的。而在建立测试团队过程中,第一步,就是要招募测试人员,招募好的测试人员,从好的树苗开始。好的测试人员,不是指必须具备多么丰富测试经验、
开发经验的测试人员。而是指好素质的人才,这些好素质的人才可能不具备所有需要的技能,但是至少应该愿意去学习,热爱自己的工作,为人正直。
测试团队负责人应该谨慎把其他团队拒绝的人吸收到测试团队中。当然,有些没有在其他团队中干出成绩的人在测试团队中做出很大成绩,但是这样的人不多。测试团队接受的失败者越多,整个团队就会背上“失败者”的名声。
2. 制度建设
创建测试团队的第二步,就是搭建测试团队的制度。一个运作良好的部门,需要有完备的制度支撑。没有规矩,不成方圆。一颗好的树苗,如果没有外界的干涉、约束,任其发展,可能到长到后面树干就长歪了。测试团队的制度,可以包括以下几方面:
n 汇报制度
n 工作总结、计划制度
n 奖惩制度
n 测试件审核制度
n 会议制度
n ……
3.
测试过程建设
创建测试团队的第三步,就是进行测试过程的建设,培养测试团队正确的工作方法。有了好的树苗,如果灌溉方法不正确,可能因为浇水过度或者浇水不足而导致树苗死亡。
通常,测试过程可以包括以下几方面:
通过在项目中的实施,建立测试过程。对于测试工作比较完善的公司,可以引进
测试外包的机制,该测试外包,指测试团队独立于项目组运作,项目组将测试任务外包给测试团队进行。这样做的目的,可以充分测试团队成员的时间。因为在一般公司中,测试团队成员的工作任务很多,工作压力很大,此时,如果进行测试外包,可以对测试人员进行重用。
4. 部门团队分工、明确工作职责
创建测试团队的第四步,就是进行测试团队的分工,明确工作职责。有了好的树苗,好的灌溉方法,然后就要明确不同树苗的用处,例如,有的树苗是小树,适合用来做人行道的护栏;有的树苗是大树,适合用来作为乘凉用;有的树苗适合做盆景等。各种不同的用处,就需要对不同的树苗进行不同的照料。部门团队的建设同理,需要对不同能力的人员进行不同的分工,以求能最大程度的发挥不同人员的特长。
另外,对测试团队的职责进行界定,可以避免公司其他人员对测试人员进行滥用。有时别人不能善待测试员,或者让测试员做其他严重超出职责的事情。如果测试测试团队负责人发现测试员遇到这样的困难或这样的对待时,应该为员工提供精神支持,告诉员工如果应对这类问题,并解决各种不公正、公平待遇。
l 测试团队的职责描述的例子如下:
n
系统测试组织
如:测试工作量的估计;项目测试组的组建;测试任务分配。
n 制定
测试计划,进行测试设计/开发/执行工作
如:按照测试要求、测试
需求,与各个干系人沟通后,制定《测试计划》;依据《测试计划》、客户需求,描述系统测试需求;依据《测试需求》,进行测试设计工作
对于需要的内容,开发
测试脚本;根据
测试用例、测试脚本,执行系统的测试工作。
n 编写
软件测试用例、测试记录和分析报告
如:在测试设计过程中,编写《测试用例》;在测试执行
软件开发质量抽检与评定
如:对软件开发的产品的各个里程碑之间的产品质量进行抽检(主要是从代码质量、
单元测试情况、
集成测试情况、系统测试情况、
缺陷处理情况等方面进行抽检);对软件开发质量的抽检结果进行分析,并给出评定报告
l 测试团队的分工如下:
n 测试部经理
n
测试管理员
n 测试设计员
n 测试执行员
n 测试监督与
度量员。
l 每种角色有不同的职责及相应的技能要求。
例如:测试设计员的职责是:
n 测试需求的描述;
n 系统测试
用例设计;
n
性能测试方案/
测试用例设计;
n
测试环境搭建情况的检查;
n
测试工具/方法的引入;
n 测试脚本的审核。
测试设计员的职责是:
n 熟悉测试理论、了解
软件工程;
n 具有测试工具经验;
n 具有一个软件项目的测试经验;
n 至少了解一种
数据库,掌握一种编程语言;
n 文字表达能力强,具有较强的分析能力;
n 沟通能力好、责任心强。
5. 员工能力的提高
创建测试团队的第五步,就是提高员工的能力。有了明确、合理的分工后,需要对这些树苗进行施肥,提高土壤的营养成分。同样的,测试团队负责人需要负起提高员工能力的责任。
员工能力的提高,包括三方面:
n 积累员工的专业领域知识,提高业务能力
随着员工对制约产品设计的外部因素、用户如何使用(或将使用)类似产品、什么样的问题对他们很重要、竞争对手如何解决这些问题、这个行业的背景、这个行业的业务包括什么等了解的更多,他们工作的有效性会显著提高。
可以通过以下方式来积累员工真正的专业领域知识,提高他们的业务能力:
u 阅读该行业的杂志和书籍
u 与公司该行业的业务分析员都交流,尝试从业务的角度去看待系统
u 在客户现场工作。比如,可以参加客户的
验收测试、参与对客户进行的培训等。
u 每周利用几小时的时间,解答公司客户提出的问题。通过这种办法,测试人员最终能够熟练解答问题,并且获得很多的信息,如客户的使用习惯等。
n 积累自己员工相关技术方面的专门知识,提高技术能力
各种不同系统框架的流行,给测试工作带来了新的复杂局面。各平台间的交互增加了出错的可能性,因此,测试牵涉到
服务器与
网络的性能以及建立在多个平台的系统整体的性能和功能。系统软件与产品变得越来越复杂,为了能够适应这种变化,测试人员需要提高自身的技术技能,以便能够跟上技术更新的步伐。
n 各方面能力提高
测试人员不仅仅需要提高自身的测试技能,掌握测试工具、开发工具、
测试方法等,测试人员还需要提高自身各个方面的能力。例如对个人的管理能力、自我控制能力、沟通能力、协调能力、演讲能力、口头表达和文字表达能力。
在这些能力中,写作能力尤为重要。测试人员的工作在很大程度上要撰写报告等以劝说他们做事情。报告写的越好,报告产生的作用越大。测试产生的效用就越大。
由于技术不断变化、市场竞争的日益激烈以及方方面面的产品,提高测试人员的技能变得越来越困难。尽管不容易,但也必须要做这件事情。因为这对提高测试团队在公司的地位,强化测试团队的价值极有帮助。
6. 测试团队文化的建立
创建测试团队的第六步,就是建立测试团队的文化。如果在一个种植园中,个子高的树苗和个子矮的树苗互相笑话,那么整个种植园中,这些树苗就没有了原来的快乐生活,而变成了郁郁生活。测试团队也一样,如果测试团队没有一个很好的团队文化,测试团队就变成了一团散沙。
世界上最伟大的橄榄球教练文斯·隆巴迪在谈起成功球队的特征时说:从基础教起,每个队员职责明确、球艺高超;懂得与别人配合,从整体出发打球,决不能出个人风头,违反纪律;全队拧成一股绳,相互关心,相互热爱,恪尽职守。这就是成功的团队文化。它具备了以下特征:目标明确、职责清晰、团结协作、密切配合、相互关心、有共同的价值观。
我们要建设一个优秀的测试团队,并且要将团队文化的精神渗透到每个人。所以,在建立长期有效的团队同时,也应该注意自己小组的文化!
创建一个有效的测试团队是一项艰苦的任务,它对测试团队的成功是必不可少的。建设和培养一个有效团队需要时间,但这样做是公司能做的最好的投资之一。
2 参考资料
Philip B. Crosby, Quality without puzzlement: Reflections from the World's Foremost Quality Guru, China City Publishing House
Cem Kaner/James Bach/Bret Pettichord, Lessons Learned in Software Testing