翻阅少民的这部新作时,不禁让我想起一位好朋友前几天提到的《叙事谣曲》中“只弯一次腰”的故事:有一次,耶稣带着他的门徒彼得出门远行,在路上发现了一块破烂的马蹄铁,耶稣就让彼得拣起来,不料彼得懒得弯腰,假装没有听见。耶稣没说什么,自己弯腰拣起马蹄铁,用它在铁匠那里换了几文钱,并用这些钱买了十几颗樱桃。出了城,两人继续向前走,沿途都是茫茫的荒野,看不到人烟,也找不到水源。耶稣猜到彼得渴得厉害,就让藏在袖子里的樱桃悄悄掉出一颗。彼得一见,赶紧捡起来吃掉。耶稣边走边掉,彼得也就狼狈地弯了十七八次腰。于是耶稣对他说:“要是你刚才弯一次腰,就不会在后来没完没了地弯腰了。小事不干,就将在更多的小事上操劳。”
这个故事,不同的人有不同的感悟。作为一个软件行业的多年从业者,我很自然就联想到了软件开发过程。软件测试(具体到每一个测**例的实施)正是在庞大复杂的软件产品开发过程中确保软件产品质量的“小事”。软件测试工作繁杂、琐碎又耗时,甚至有时吃力不讨好,这使得许多软件从业者对其不够重视;好多技术人员热衷于编码而不愿从事测试工作这样的“小事”;有些公司认为开发能出成果而测试可有可无,因而非常重视开发但不重视测试;许多国内软件企业存在着漠视测试过程、测试时间不充分、测试计划不细致、测试软硬件资源不足等问题,从而在软件质量控制上存在相当大的问题,以致项目延迟甚至失败。
在软件产业发展的几十年中,软件测试已逐步渗透到各个领域,成为越来越不可或缺的技术成分。例如,以前被认为距离软件技术比较远的汽车工业,现在已把**车制造费用的20%~25%投入到电子设备与软件系统上。由此看来,软件的品质已成为人们日益关注的重中之重。如何找到一种全面的分析方法,来检测软件开发过程中不同阶段的结果,以便尽可能早地系统地保证或提高软件产品的质量和可靠性,从而减少后期“弯腰”的必要性与次数,已成为影响软件企业生产力与生产效率的关键问题。
可喜的是,越来越多的软件公司和管理技术人员在工作中将更多的时间和资源投向了测试方面。很多**企业中开发与测试的人员比例达到了3:1或2:1,许多**的技术人员在从事质量控制和软件测试工作。而国内这几年软件测试人员的短缺和招聘难度的提高从反面证明了软件测试正越来越得到重视。
近年来,软件产业发展正从产品模式向服务模式(Software as a Service,SaaS)转变。 在过去的多年中,WebEx公司一直处于这一浪潮的领导地位。WebEx提供的网络会议服务(Web Conference)被称为改变人们工作方式的技术革命。朱少民先生与他带领的团队非常自豪而荣幸地参与了WebEx产品开发的整个过程,在这个过程中他们夯实了软件测试的理论基础,���积累了丰富的实战经验。
少民从事高校教育及软件开发测试工作多年,并且在美国硅谷工作两年,其经历是很好的理论与实践相结合的典范。与少民共事多年,了解他在软件测试领域的积累,从开始时采用简单、初级的测试方法,一步步发展到今天系统、科学的软件质量管理体系;从手工测试向自动化测试过渡;从几个人的测试小组到几百名测试工程师的大规模团队。现在,是到了将过去的经验教训作一番总结,以其亲身经历为业界同仁指点软件测试的规律与介绍成功实践经验的时候了。
这部《全程软件测试》是少民与其工作团队多年来的经验积累,其中一些观点与见解已经成为WebEx公司的基本工作准则,对软件研发领域有着重要的实质性贡献。本书通过实例全面描述了软件测试的整个过程,覆盖了测试管理的各个重要方面。对测试管理的各个层次和环节做了系统的介绍,包括测试策略制定、风险控制、缺陷跟踪和分析、测试管理系统的应用等,并且更进一步对如何执行本地化测试和国际化测试进行了阐述。作者**聚焦在实践性上,从软件测试项目启动、测试计划开始,深入到测**例设计、测试工具选择、脚本开发,以及功能测试和系统测试等各个步骤,并对它们都做了详细阐述。
让人印象深刻的是本书对软件测试工作中几个看似简单,实际上非常关键的问题做了详细的说明。例如就开发团队模式,作者介绍了以开发为核心、以项目经理为核心,以及“三国鼎立”(以项目经理、开发组长、测试组长为核心)的模式。而“三国鼎立”的测试团队具有独立、权威性地位的概念也是工作经验的总结。相信读者会从实战中体会到作者的深刻用意。
在探索**软件测试与软件开发的过程中,本书覆盖了全面的理论分析和详细的实战阐述,对任何从事软件测试的人员和软件开发人员,以及软件工程相关专业的高校师生,都具有重要的参考价值。希望书中的一些真知灼见对广大读者有所裨益。
李钦敏(Jim Li)
WebEx总部工程技术及中国研发**总监
2007年6月于美国硅谷
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/