- 1、本文档共97页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 软件测试 内容提要 7.1 软件测试概述 7.2 软件测试用例的设计 7.3 软件测试的实施 7.4 软件测试的面向对象方法简述 7.5 本章小结 软件测试 软件系统的开发体现了人们智力劳动的成果。在软件开发过程中,由于人的主观认知能力的局限性和所开发软件的复杂性,尽管人们利用了许多旨在改进、保证软件质量的方法去分析、设计和实现软件,在软件生命周期的每个阶段还是不可避免地会产生错误。因此,在软件正式投入运行之前,必须通过严格的测试,来发现并纠正软件中的错误,从而保证软件的质量。大量的实践证明,测试是一项很艰苦的工作,据统计,软件测试的工作量往往占软件开发总工作量的40%以上。目前,程序的正确性证明在技术上尚未得到根本的解决,软件测试仍然是发现软件中错误和缺陷的主要手段。因此,必须高度重视软件测试工作。 软件测试 软件测试是软件质量保证的关键步骤,它包括分析、设计和编码的最终检查。软件测试的结果也是分析软件可靠性的重要依据。本章着重讨论软件测试的概念、传统软件和面向对象软件的测试问题。 7.1 软件测试概述 软件测试概述 7.1.1 软件测试的目标及原则 测试是对软件分析、设计、编码进行查错和纠错的活动。正确理解软件测试的概念和目标,对保证软件测试的成功实施起着极其重要的作用。从表面上来看,软件测试是具有“破坏”性质的,因为在测试阶段,测试人员努力设计出一系列测试方案,竭力发现和证明程序中错误的存在。而软件工程的其他阶段都是“建设性”的,软件工程师力图从抽象的概念出发,逐步设计出软件蓝图,再经过编码而实现软件产品。当然,这种反常仅仅是表面的或是心理上的,暴露问题并不是软件测试的最终目的,发现问题是为了改进软件设计或纠正程序的错误。测试阶段的根本目标是尽可能多地发现并排除软件中潜在的错误,最终把一个高质量的软件系统交给用户使用。 软件测试概述 以下三点可以看作是测试的目标: 1.测试是为了发现程序中的错误而执行程序的过程。 2.好的测试方案是尽可能发现至今为止尚未被发现的错误的测试方案。 3.成功的测试是发现了至今为止尚未被发现的错误的测试。由此可以看出,测试的正确含义是“为了发现程序中的错误而执行程序的过程”。这和某些人想像的“测试是为了证明程序是正确的”,“成功的测试是没有发现错误的测试”等是完全相反的。明确测试的目的是一件非常重要的事情,因为在实际工作中对测试工作存在着许多模糊或错误的看法,这些看法严重影响着测试工作的顺利进行。测试的目标决定了测试方案的设计,如果为了表明程序是正确的,就会设计一些不易暴露错误的测试方案。相反,如果测试是为了发现程序中的错误,就会力求设计出最容易暴露错误的测试方案。 软件测试概述 基于以上的叙述,在设计软件测试方案前,软件开发者必须理解软件测试的基本原则。这些测试原则是: (1)坚持“尽早地和不断地进行软件测试”的原则。 不应把软件测试仅仅看作是软件开发的一个独立阶段,而应当把它贯穿到软件开发的各个阶段中。坚持软件开发的各个阶段的技术评审,这样才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期,杜绝某些错误发生的隐患。 软件测试概述 (2)测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。 测试以前应当根据测试的要求选择测试用例,用来检验程序员编制的程序,因此不但需要测试的输入数据,而且需要针对这些输入数据的预期输出结果。 (3)程序员应避免测试自己的程序。 由于思维定势和心理因素的影响,程序员并不是测试的最佳人选。这不能与程序的调试相混淆,调试由程序员自己来做可能更有效。而程序员以及程序开发小组应尽可能避免测试自己编写的程序。为了达到最佳效果,最好建立独立的软件测试小组或测试机构。 (4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。 软件测试概述 (5)充分注意测试中的群集现象。 软件测试的实践表明:测试后模块中残存的错误数目与该模块的错误检出率成正比,即错误群集。根据这个规律,应当对发现错误较多的模块进行重点测试,以提高测试效率。 (6)严格执行测试计划,排除测试的随意性。 (7)应当对每个测试结果做全面检查。 有些错误的征兆在输出测试结果时已经明显地出现了,但是如果不仔细地、全面地检查测试结果,就会使这些错误被遗漏掉。所以必须对预期的输出结果明确定义,对测试的结果仔细分析检查,暴露错误。 (8)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。 软件测试概述 7.1.2 软件错误产生的原因及分类 软件开发是一项极其复杂的智力活动,由于主观认知能力的局限性和
文档评论(0)