“人生天地之间,若白驹之过隙,忽然而已”,这样开头虽然比较俗,但它的确反映我的真实感受。2007年本书第1版和读者见面了,一晃六年了。欣慰的是,本书深受读者喜欢,在当当网有非常多的评论,总评是五颗星,在京东网也得到五星级的好评,甚至有些公司把这本书作为新员工的培训教材,有些公司的测试工程师人手一本。但随着时间的推移,越来越感觉这本书需要修改,但似乎“笔头懒”,迟迟没有动手修改本书,出版社编辑常常催促,我似乎不为所动,但终究拗不过编辑,趁着节日终于完成其修改,使本书第2版能够与读者见面。
六年来,笔者经常参加一些软件技术大会,和测试同仁有很多交流,阅读了不少测试类图书,也经常上网浏览国外测试大师的博客,自己对软件测试有了更深的理解。每当浏览本书第1版时,总觉得其中太多内容需要修改,本书可能会被改得面目全非,但大幅修改需要很多时间,甚至不如重新写一本书,这也就是迟迟没有修改本书的潜在原因之一。客观地讲,也不能翻天覆地地大改,应该保持其基本面貌,否则就不是本书的第2版了。
幸好,当初本书写作时就认定“软件测试是贯穿整个软件生命周期的活动”,这个观点在今天依旧有效。即使在敏捷开发模式下,“全过程的软件测试”也是大家全力提倡的,可以说本书的主题和敏捷测试不谋而合(虽然在局部或某些具体的实践上有冲突)。本书所介绍的许多实践来自美国硅谷,跟随时代的技术潮流,并且具有很好的普适性,即使若干年后,这些实践中的大部分内容在今天依旧有很好的借鉴作用。
在这次修改中,为了保持本书的风格和一致性,全书结构没有进行大的改动,还是原来的12章,从引子、项目启动到最后的思考与总结,但有几个小节做了较大调整,使全书结构更合理,同时融入了一些敏捷测试实践,包括持续测试、验收测试驱动开发、探索式测试等内容,以适应目前业界的环境。第2版的主要修改如下。
·引子中增加了两小节内容,即“究竟什么是敏捷测试?”“敏捷测试过程”,以达到更好的铺垫效果。
·把第2章中的“团队组建”“培训”两小节移到了第1章中,删除了“测试组长的人选”这一小节,1.2节比较彻底地讨论了测试团队相关的问题。
·将“产品需求评审”移到了第3章,第2章补充了测试需求分析的内容,包括质量要求和测试目标、测试需求的分析方法和技术。测试需求分析不仅是测试设计的基础,也是制订测试计划的基础,第2章命名为“测试需求分析与计划”,就更加自然。先进行测试需求分析,再逐步完成测试计划所要进行的工作,包括测试风险分析、工作量估算。
·第3章的重点放在需求和设计的评审上,完整地介绍了“静态测试”。而且,在这一章增加了“需求的可测试性”和“设计的可测试性”两小节,使需求评审和设计评审更具价值,也为将来的测试设计和执行打下了更坚实的基础。
·第4章不仅增加了“探索式测试之设计”,顺带介绍了基于会话的测试管理(SBTM),而且重新组织了黑盒测试的具体方法,让读者更有效地运用测试方法,如将等价类划分方法和边界值分析法结合在一起来应用。pair-wise方法使用起来方便,所以也添加进来了。
·第5章进行了简化,把具体工具的介绍和对比删除了。因为工具的变化很快,所以尽量删减工具的一般介绍性内容。同时,增加了自动化测试策略,包括整体策略和功能测试自动化策略。
·第7章增加了“敏捷测试的执行”一节,该节包含两个小节:“策略与实践”和“探索式测试的执行”。第1章已讨论了“培训”,该章删除了原来的“培训和知识传递”,并简化了测试环境爆炸性组合的优化方法。
·第9章的章名改为“系统非功能性测试”,所以原来“安装测试”一节的内容整改为“部署测试”,移到第10章中。删除原9.1节讨论的非功能性测试内容,部分内容和第2章、第3章进行了合并。
·第10章删除了“文档测试”一节,少量有价值内容并入“验收测试”一节中,而且增加了敏捷流程的“验收测试”,以和传统的“验收测试”加以区分。最后,把α测试和β测试整合为在线测试。
·将第12章中的一节移到第11章中,整合为“测试自动化的管理准则”,第11章对测试自动化的框架做了较大修改,更准确地定义了自动化测试框架的概念。对“软件缺陷清除率”“测试管理思想和策略”两小节也做了较多修改,测试用例的管理也从原来的三小节整合为两小节。
·第12章的改动也比较大,测试原则由原来的10条增加到12条,而改动更大的两节是“软件测试之辩证统一” “持续改进”。同时增加了“基于脚本测试和探索式测试”“TMMi和TPI Next分析”,而且对相应的内容做了删减。另外“软件测试的多维空间”“软件测试的优秀实践”两节也有一些修改。
·附录删除了“完整的项目检查表”和“完整的测试工具列表”,因为前者和测试关系不是十分密切,而删除后者则是因为在第5章已将主要的测试工具做了介绍,有那么多工具已足够读者使用了。如果还需要其他工具,可以借助网络搜索引擎来查找。而增加了“用例设计模板”“缺陷报告模板”“测试相关的国家标准”三个附录,“软件测试计划模板”也换了最新的国家标准定义的模板。
·第6章、第8章没有大的改动,只进行了少量文字修改。
看起来,第2版做了比较大的改动,但自己也不是十分满意,可能是第1版的基础还不够扎实,总觉得有些内容还可以不断改下去,但时间又不允许。另外,在敏捷时代追求完美也是不合情理的,虽然不能做到持续交付、快速交付,但缩短迭代时间还是可以的,如1~2年本书出一个版本还是可以的,也是比较好的。
希望经过修改后,本书更能满足当今软件测试的知识传递和技能培养的需求,可以给读者带来更多的收益,更希望读者不吝赐教,我将继续努力提升本书,继续更好、更多地为测试人服务。
朱少民
2013年国庆节于上海