第007页_1788968461833.txt

第1章引论
对于软件来讲,总会存在或多或少的问题。在需求定义中会出现问题,在软件设计和编程
中同样会存在问题。软件系统在构造过程中,不论采用什么技术和什么方法,软件问题仍然不
可避免。采用成熟的编程语言、先进的开发方式、完善的开发过程,可以减少错误的引人,但是
不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测
试来进行评估。
软件测试是软件质量保证的关键步骤,测试作为一种“预防和评估成本”的投入,从而降低
缺陷造成的劣质成本(即失效成本),如图1-3所示。美国质量保证研究所对软件测试的研究
结果表明:越早发现软件中存在的问题,开发费用就越低;在编码后修改软件缺陷的成本是
编码前的10倍,在产品交付后修改软件缺陷的成本是交付前的10倍;软件质量越高,软件发
布后的维护费用越低。
总成本
高成本
预防与评估成本


最佳平衡点
失效成本
(COPQ)


低成本
完美质量
劣质(低质量)
图1-3
测试投入成本和缺陷造成的质成本
自有程序设计的那天起,测试就一直伴随着软件开发过程。测试是所有工程学科的基本
组成单元,自然也是软件开发的重要组成部分。软件测试在产品开发中占据着相当重要的位
置,也是软件行业几十年的实践所证明的一个道理,其中也包含从大量的质量事故教训中所获
得的教训和经验。以微软公司为例,最初对测试不重视,其研发的产品(如Windows95和
Windows98)时时会发生崩溃、死机等现象,而之后的产品(如Windows7和WindowsXP)则
比之前的产品功能要强大得多,稳定性不仅没有下降,反而有显著改善。为什么呢?这是因为
微软公司重视测试工作,在测试上投人比较大,微软公司当时拥有一万多名专业的测试人员。
其次,测试人员越来越有经验,测试流程也越来越规范,测试工作也就越来越有效。正是由于


1.3
什么是软件测试
在购买商品时,会发现商品上贴有一个“QC”标签,这就是质量检验(QualityControl)。
软件测试,就好比制造工厂的质量检验,是对软件产品和阶段性工作成果进行质量检验,力求
发现其中的各种缺陷,并督促缺陷得到修正,从而控制软件产品的质量。所以,软件测试是软
件公司致力于提高软件产品质量的重要手段之一。但要给软件测试下个定义,可能不是一件
容易的事情。必须了解软件测试学科形成的过程,理解软件测试的正反两个方面的含义,分析
软件测试的不同观点,最终给出软件测试一个完整的定义。
下载此文件