软件测试管理
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

管理是什么?

是艺术?是责任?是科学?是决策?

不同的人,对管理有不同的理解。尽管很多大师对管理进行了各种不同的定义,但是编者认为:无论管理是什么,管理者都必须掌握行业内不同的技术和方法。这些技术和方法的正确应用是成为一名成功管理者的前提,这同样适用于软件测试的管理:

● 当你掌握了FMEA(失效模式和影响分析)的时候,对测试风险的管理将更加轻松。

● 当你了解了TPI、TMM等模型后,对软件测试过程的改进就不会那么头疼。

● 当你阅读完书中不同度量的案例之后,你就不会在面对一堆测试数据时毫无头绪。

● 当你了解了质量成本后,你将更加容易地与其他利益相关者进行测试方面的沟通。

● 当你洞悉了测试过程的所有阶段和活动后,你对软件测试管理将不再迷茫。

本书就是用来解决软件测试管理过程中的技术和方法问题的书籍。书中没有伟大的思想、没有崇高的人生境界,有的是经典实用的技术和方法,有的是编者近10年的软件测试管理实践的经验,以及技术、方法和经验相互结合,提炼得到的一些测试管理问题的解决方案。相信书中介绍的技术、方法和实践经验能够给读者带来对软件测试管理的全新认识。

软件测试发展

时光飞逝,转眼间,我们跨入软件测试领域已经有10年之久了。在这10年里,参与了很多项目的测试,有成功的,也有失败的,其中的酸甜苦辣,也随着编者的不同经验、角色和职责而不断发生变化。

回头看看这10年走过的软件测试之路,可以非常明显地感觉到国内整个软件测试行业的飞速发展:软件测试从编者刚入门时的“打杂”角色,已经变成软件工程领域的重要组成部分。软件测试行业水平低下、测试人员技能水平不高、测试人员待遇差等,是过去经常可以看到的观点和论调。但是时至今日,我们已经完全不赞成这样的观点了。中国的软件测试在过去的10年中取得了飞速的发展,无论是人才的储备、测试技术和测试管理能力,还是软件测试从业人员的地位,都已经获得了极大的提高,总体水平越来越接近于世界一流水平。甚至在过程实施、技术应用方面已经可以和世界水平保持同步。

但是,我们还是应该认识到我们和欧美成熟的软件测试行业之间某些方面的差距,例如,我们在行业发展趋势的把握和推动方面,仍然存在一定的差距。国外的软件测试行业活跃着很多从业超过20年的资深软件测试专家,他们在不断推动整个软件测试行业的进步。

相比之下,国内目前还没有形成这样的氛围。尽管工作年限越多,并不能完全代表能力越强,但是能够专注于一个行业超过20年的人,对行业的理解是深厚的,也是值得我们尊敬和学习的。因此,中国的软件测试行业还有很多路要走,我们也希望国内能有更多的人在软件测试行业投入终身的热情,共同推动软件测试行业的不断发展。

创作的过程

尽管在工作后对软件测试有较大的兴趣,但是系统地学习软件测试管理是在2007年国内第一次举办的国际软件测试认证委员会(ISTQB)高级测试管理认证培训上。那次培训由国际著名软件测试专家Hans Schaefer(挪威软件测试认证委员会主席)主讲。在培训过程中,结识了很多软件测试领域的专家,同时也开始认识到软件测试管理的博大精深。软件测试管理不仅仅依赖于我们平时工作中积累的经验,同时也需要软件测试管理知识体系中提供的技术和方法,不断指引我们做正确的事。

就职于Alcatel的时候,马均飞和我是同一个项目的同事,大家对软件测试都有浓厚的兴趣,也经常在一起讨论一些软件测试的问题。2009年春天,有一次我们在聊天的时候,觉得在软件测试领域呆了近10年了,在测试管理方面都积累了一定的经验,大家是否应该写一本关于软件测试管理方面的书。通过出书的方式,将我们的经验与软件测试管理技术和方法紧密结合,提炼出在测试管理过程中应用的不同解决方案,希望能和更多的人分享这些经验。

确定了写作目标之后,我们就开始收集资料、准备素材、梳理框架结构,然后根据每个人的特长和经验进行分工,接着分头开始写作。由于我们两个以前在测试和测试管理方面交流比较多,开始动笔以后,基本上是各自埋头负责自己的问题。马均飞和我花了将近4个月的业余时间,在2009年10月完成了各自写作的任务。

接下来的工作就是对对方的内容进行Review(评审),由于在写作过程中并没有对中间的输出进行任何Review,因此,各自负责内容的Review工作进行了两轮。前期的 Review 是最辛苦的过程,不仅仅是精力方面付出很多,同时由于大家在某些知识点和经验方面无法说服对方,常常出现针对某个管理点争论几个小时的情况。

直到2009年12月,才完成第一个统稿版本,在这个统稿版本的基础上,我们每个人针对全书继续进行了两轮完整的Review,主要是修改格式、错别字以及其他一些低级的错误。到2010年2月,终于迎来了另一个里程碑:版本的定稿,到这个时候才算是完成了本书的创作,我们对整本书的质量还是比较满意的。

马均飞和我在整个写作和 Review 过程中合作非常默契,不仅在软件测试管理方面有了更深入的理解,同时在写作技巧、沟通和合作方面也有了新的理解,这也将推动我们在以后的合作中不断前行。

本书的结构

本书共8章,以整个软件测试过程作为基础,讲解了测试过程中每个阶段相关的测试管理知识点。读者根据该书的测试管理知识点和对应的解决方案,可以完成其日常的测试管理工作,并能达到基本的测试管理的目标:测试质量、测试进度、测试成本和测试资源之间的平衡。

第1章 介绍了各种不同的软件开发模型,组件测试、集成测试、系统测试和验收测试四个测试级别的特点、目的和测试环境要求等;阐述了两个特定系统:综合系统和安全关键系统;通过具体的案例,说明测度对于测试监控和作出决定的重要指导作用。

第2章 以测试过程为基础,详细阐述了系统化测试过程的组成:测试计划和控制、测试分析和设计、测试实现和执行、评估出口准则和报告,以及测试结束活动;针对测试过程的每个阶段,分别阐述了各个阶段的主要测试活动、输入和输出,以及监控这些测试活动的度量指标等。

第3章 对测试管理过程中的多个方面进行了详细的阐述,包括:测试管理文档、测试估算、测试计划制定、测试过程监控、测试商业价值、测试外包、基于风险的测试、失效模式和影响分析和测试管理难题等。

第4章 介绍了基本的评审过程的主要组成阶段,以及其中的角色和职责;描述了不同评审类型之间的区别,并分析了如何在测试过程中选择合适的评审类型,以及如何才能保证评审获得预期结果。

第5章 介绍为了保证有效而及时地解决测试过程中发现的缺陷,组织如何建立一套完整的过程和规则对缺陷进行跟踪和管理;还介绍了如何通过缺陷的属性对测试过程和测试质量进行度量,以及测试过程中与缺陷相关的问题和解决方法。

第6章 讲解了和测试过程改进相关的标准,以及测试过程改进和优化的过程;通过具体的案例分别阐述了多个软件测试相关的能力模型(TMM、TPI、CTP、STEP和CMMI)在测试过程改进中的作用和步骤,以及注意事项。

第7章 描述了贯穿整个软件测试过程中可能应用的各种测试工具,并介绍了测试工具的成本和收益;通过案例详细讲述了测试工具和自动化策略,以及如何有效地引入测试工具和自动化。

第8章 阐述了测试人员应该具备的各种测试技能和软技能,通过案例描述了如何开展有效的个人技能评估,为招聘合适的测试人员提供合适的准则;同时描述了成功的测试团队应该具备的架构和特点,以及如何有效地对测试团队中的测试人员进行激励和沟通。

推荐的阅读方式

本书融合了中兴、华为、Alcatel、Lucent、IBM 等公司的实践管理经验,以一个贯穿始终的大型项目案例为背景,系统地介绍了软件测试管理知识体系。每个章节都设定了明确的学习目标,有利于读者的理解和学习。学习目标分为4个等级:K1(牢记)、K2(理解)、K3(应用)和K4(分析),详细的介绍见“本书学习目标等级”。书中采用统一的软件测试术语,并随每个章节出现的术语提供了解释。

本书在介绍自身经验的同时,还介绍了大量的业界最佳实践,融合了国内外软件测试领域专家的思想精华。本书直接参考的文献达上百篇,并通过脚注的形式提供给读者,为读者的扩展阅读提供方便。

如果读者希望全面了解软件测试管理知识,建议从头到尾按顺序阅读。如果暂时只对部分章节感兴趣,也可以直接跳到相关章节。本书系统地介绍了软件测试管理知识,读者一口气阅读完是比较困难的,其中涉及很多技术和方法,读者可以在用到的时候再回头来翻阅本书,相信书中的一些内容一定能够对读者的学习和工作起到帮助。

致谢

本书的出版离不开在我们成长过程中给予我们帮助的同学、同事和朋友,尤其要感谢刘琴博士和周震漪老师给我们的帮助,他们的专业知识和敬业精神一直激励着我们不断进步和成长。本书的出版也离不开崔启亮博士和朱少民老师的帮助,他们为此书的出版提出了宝贵的意见。

感谢电子工业出版社孙学瑛编辑和李利健编辑为本书提供的宝贵意见和大力支持,本书才得以在这么短的时间内与大家见面;同时感谢杨绣国编辑和其他博文视点同事,他们的专业素质和敬业精神令我们感动。

最后要感谢我的家人,这本书的写作占用了大量晚上和周末的时间,没有她们的支持和鼓励,本书将很难和大家见面。

由于编者水平和时间的限制,书中难免会出现错误,欢迎读者不吝指正。

郑文强