2007年春节后,我从美国返回国内,曾在美丽的西子湖畔与作者一叙,其间我们谈到了《全程软件测试》这本书。我高兴地接受了作者的邀请——为本书写推荐序。我和作者共事近7年,结下了深厚的友谊。我们从2000年开始,就合作开发美国网迅公司(WebEx Communications,Inc,纳斯达克上市公司,2007年5月被CISCO以32亿美元收购)互联网通信平台产品第一个基于PHP的网页。那时,我在美国领导着整个Web开发部门,他则在国内负责软件测试。再到后来,我们在产品研发、部署和服务运营等多个领域的合作不断深入。在我管理整个网迅(中国)公司的这段时间里,他作为公司的质量管理总监直接向我汇报工作。当然,这也是我们合作最亲密的一段时间。
话说回来,作者在加盟网迅之前,虽然已是一所重点大学的副研究员、硕士生导师,而且拥有良好的软件开发和项目管理经验,但那时国内软件测试还刚刚起步,他对软件测试也了解甚少,可以说是一个门外汉。
时光如梭,7年的时间一晃而过。同样拥有7年的时光,如果缺乏思考,收获就屈指可数;如果勤于钻研,就会硕果累累。而他不仅勤于思考、善于思考,而且凭着智慧、毅力和坚实的计算机基础,很快就从一个门外汉成为软件测试领域的资深专家,他先后主编了3本有关软件工程领域的高等学校教材。在这7年里,他不断通过自学、努力和追求,帮助网迅(中国)公司从零开始建立和发展软件测试团队,圆满地完成了全线产品的软件测试任务,并向全球的客户提供了高质量的软件产品和服务。目前,他领导着这支近300人的国内一流测试团队,正向下一个目标前进。
软件质量管理在软件研发团队中的作用是显而易见的。其中软件测试人员在保障和改进软件质量工作中发挥着越来越大的作用。但是从整个软件工程周期来看,软件质量其实是在整个开发过程中形成的,或者说软件质量是构造出来的,而不是测出来的。程序代码完成之后,其质量水平就基本确定了,虽然可以通过测试发现大部分缺陷,但是,程序代码中存在的缺陷越多,遗漏的缺陷就会越多,质量很难得到改善。如果缺陷发生在需求阶段或设计阶段,则将带来更大的成本和风险。如果将软件测试贯穿于整个软件开发过程,从项目启动的第一天开始就将软件测试引入进来,情况就完全不一样了。贯穿于软件开发全过程的测试,不仅可以在第一时间内发现缺陷,而且能有效地预防缺陷的产生。缺陷预防,可以大大减少软件缺陷的数量、提高软件质量,更有价值的是,它可以极大地缩短开发周期、降低软件开发的成本。
全过程的软件测试,赋予了软件测试更多的责任和内容,软件测试不再是事后检查,而是缺陷预防和检查的统一。在需求分析时,通过测试团队和开发团队的共同努力,尽可能把用户的需求全部挖掘出来,清除一切模糊的需求描述;在设计阶段,测试人员可以对不合理的设计提出质疑,督促开发人员在设计时充分考虑性能、可靠性和安全性等各个方面的要求,以确定每一个设计项的可测试性;在编程阶段,测试人员参与代码评审、单元测试等。所有这些都是为了告诉人们,测试过程可以看作质量保证的过程,测试不再是产品质量的一个检验环节。这也就是《全程软件测试》书名的由来,将软件测试扩展到软件质量保证的全过程中,作者赋予了软件测试新的含义和新的生命!
全程软件测试的另一层含义就是手把手地教会读者如何做测试,从头到尾,覆盖每一个环节。从项目启动——如何把握项目的背景和需求、如何选定测试组长等开始,逐渐深入测试计划、设计评审、用例设计、测试执行等过程,直至缺陷报告、测试结果分析和测试报告,每一过程都能得到细致的辅导。作者还用了不少笔墨来介绍如何选择测试工具、如何更有效地开展测试自动化的工作。因为测试自动化非常重要,它可以解放测试人员,使测试工作变得非常有趣,又获得很高的技术挑战。测试自动化能够提高测试效率,使测试人员有更多的时间思考,从而可以更好地分析测试范围和设计好测试用例,形成一个良性的循环。
本书不仅阐述了先进的、独特且成熟的软件测试思想和方法,而且呈现了丰富多彩而又实实在在的测试技术和实践。测试的知识、概念是比较容易获得的,但要获得多年通过实践积累下来的体会和经验,却是非常难得的。现在,这些内容就在您的眼前,唾手可得。《全程软件测试》能帮助您获得您所需要的东西、帮您解开心中的疑惑。本书给出的最佳实践,不仅代表着国内的最高水平,而且与美国硅谷的软件测试水平同步。它一定会帮助读者高效地、高质量地完成测试和软件质量保证任务。
最后,希望大家喜欢这本书,进而从中受益。
沈剑(Joss Shen)
Founder and CEO
Dreamcast Systems,Inc.
http://YouMonitor.Us/