欢迎来到天天文库
浏览记录
ID:23625330
大小:617.50 KB
页数:41页
时间:2018-11-09
《软件测试详解》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第五章软件测试一、复习要求1.了解软件测试的目的和原则。2.了解软件错误的分类。3.了解软件测试的过程和策略。4.了解软件测试用例设计的方法,掌握逻辑覆盖、基本路径测试、因果图等测试用例设计方法。5.了解程序静态测试的方法。6.了解程序调试的概念。7.掌握软件测试中的可靠性分析方法二、内容提要1.软件测试基础(1)什么是软件测试软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测
2、试用例去运行程序,以发现程序错误的过程。软件测试在软件生存期中横跨两个阶段:通常在编写出每一个模块之后就对它做必要的测试(称为单元测试)。模块的编写者与测试者是同一个人。编码与单元测试属于软件生存期中的同一个阶段。在这个阶段结束之后,对软件系统还要进行各种综合测试,这是软件生存期的另一个独立的阶段,即测试阶段,通常由专门的测试人员承担这项工作。(2)软件测试的目的和原则GrenfordJ.Myers就软件测试目的提出以下观点:§测试是程序的执行过程,目的在于发现错误;§一个好的测试用例在于能发现
3、至今未发现的错误;§一个成功的测试是发现了至今未发现的错误的测试。设计测试的目标是想以最少的时间和人力系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。此外,实施测试收集到的测试结果数据为可靠性分析提供了依据。测试不能表明软件中不存在错误,它只能说明软件中存在错误。软件测试的原则:①应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。不应把软件测试仅仅看作是软件开发的一个独立阶段,而应当把
4、它贯穿到软件开发的各个阶段中。坚持在软件开发的各个阶段的技术评审,这样才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期,杜绝某些发生错误的隐患。②测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。测试以前应当根据测试的要求选择测试用例(Testcase41),用来检验程序员编制的程序,因此不但需要测试的输入数据,而且需要针对这些输入数据的预期输出结果。③程序员应避免检查自己的程序。程序员应尽可能避免测试自己编写的程序,程序开发小组也应尽可能避免测试本小组开发的程序。如果条件
5、允许,最好建立独立的软件测试小组或测试机构。这点不能与程序的调试(debuging)相混淆。调试由程序员自己来做可能更有效。④在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。合理的输入条件是指能验证程序正确的输入条件,不合理的输入条件是指异常的,临界的,可能引起问题异变的输入条件。软件系统处理非法命令的能力必须在测试时受到检验。用不合理的输入条件测试程序时,往往比用合理的输入条件进行测试能发现更多的错误。⑤充分注意测试中的群集现象。在被测程序段中,若发现错误数目多,则残存错误数目也比
6、较多。这种错误群集性现象,已为许多程序的测试实践所证实。根据这个规律,应当对错误群集的程序段进行重点测试,以提高测试投资的效益。⑥严格执行测试计划,排除测试的随意性。测试之前应仔细考虑测试的项目,对每一项测试做出周密的计划,包括被测程序的功能、输入和输出、测试内容、进度安排、资源要求、测试用例的选择、测试的控制方式和过程等,还要包括系统的组装方式、跟踪规程、调试规程,回归测试的规定,以及评价标准等。对于测试计划,要明确规定,不要随意解释。⑦应当对每一个测试结果做全面检查。有些错误的征兆在输出实测
7、结果时已经明显地出现了,但是如果不仔细地全面地检查测试结果,就会使这些错误被遗漏掉。所以必须对预期的输出结果明确定义,对实测的结果仔细分析检查,抓住征侯,暴露错误。⑧妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。(3)确认和验证的关系确认(Validation)是一系列的活动和过程,其目的是想证实在一个给定的外部环境中软件的逻辑正确性。它包括需求规格说明的确认和程序的确认,而程序的确认又分为静态确认与动态确认。静态确认一般不在计算机上实际执行程序,而是通过人工分析或者程序正
8、确性证明来确认程序的正确性;动态确认主要通过动态分析和程序测试来检查程序的执行状态,以确认程序是否有问题。验证(Verification),则试图证明在软件生存期各个阶段,以及阶段间的逻辑协调性、完备性和正确性。确认与验证工作都属于软件测试。在对需求理解与表达的正确性、设计与表达的正确性、实现的正确性以及运行的正确性的验证中,任何一个环节上发生了问题都可能在软件测试中表现出来。(4)测试信息流测试信息流如图5.1所示。测试过程需要三类输入:§软件配置:包括软件需求规格说明、软件设计规格说明、源代
此文档下载收益归作者所有