您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 软件测试第1章 软件测试 概述
AFreesamplebackgroundfrom章软件测试概述本章教学目标正确理解软件测试的背景、软件缺陷和故障的概念正确理解软件测试的意义正确理解软件开发过程与软件测试的关系正确理解软件质量的概念及质量保证体系了解软件测试职业与素质的要求AFreesamplebackgroundfrom软件可靠性问题因软件设计故障与因计算机硬件设计故障而引发的系统失效的比例大约是:10:1运行软件的驻留故障密度(每千行代码的故障数目):——要求很高的关键财务或财产软件为:每千行代码1~10个故障——关键的生命软件为:每千行代码0.01~1个故障IEEE将软件可靠性定义为:系统在特定环境下,在给定的时间内无故障运行的概率。软件可靠性是对软件在设计、开发以及所预定的环境下具有能力的置信度的一个度量,是衡量软件质量的主要参数之一。而软件测试则是保证软件质量、提高软件可靠性的最重要手段。AFreesamplebackgroundfrom、软件缺陷和软件故障案例案例1美国迪斯尼公司的狮子王游戏软件bug兼容性问题案例2美国航天局火星登陆事故系统测试衔接问题案例3跨世纪“千年虫”问题案例4爱国者导弹防御系统炸死自家人系统时钟误差积累案例5Windows2000中文输入法漏洞案例6金山词霸bug上述所有实例中的软件问题在软件工程或软件测试中都被称为软件缺陷或软件故障。AFreesamplebackgroundfrom章软件测试概述软件缺陷与故障(续)2、软件缺陷的定义(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指明的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。举例:计算器内的嵌入式软件AFreesamplebackgroundfrom章软件测试概述软件缺陷与故障(续)3、软件缺陷的特征“看不到”——软件的特殊性决定了缺陷不易看到“看到但是抓不到”——发现了缺陷,但不易找到问题发生的原因所在AFreesamplebackgroundfrom软件产品说明书(需求)56%编写代码7%设计27%ReturnAFreesamplebackgroundfrom、软件测试的定义软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。通常对软件测试的定义有两种描述:定义1:软件测试是为了发现错误而执行程序的过程。定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。AFreesamplebackgroundfrom章软件测试概述软件测试的定义(续)测试:所谓测试的含义,首先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价。测试活动有两种结果:找出缺陷和故障,或显示软件执行正确。测试是一个或多个测试用例的集合。测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。测试步骤:测试步骤详细规定了如何设置、执行、评估特定的测试用例。AFreesamplebackgroundfrom章软件测试概述软件测试的定义(续)2、软件测试的基本问题软件生命周期:一个软件生命周期包括制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等8个阶段。软件测试的对象:——软件测试不等于程序测试。——软件测试贯串于软件定义和开发的整个过程。——软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。AFreesamplebackgroundfrom章软件测试概述软件测试的定义(续)2、软件测试的基本问题(续)软件测试在软件生命周期中横跨两个阶段:第一个阶段:单元测试阶段,即在每个模块编写出以后所做的必要测试。第二个阶段:综合测试阶段,即在完成单元测试后进行的测试,如集成测试、系统测试、验收测试。软件测试涉及的关键问题包括四个方面:(1)测试由谁来执行。(2)测试什么。(3)什么时候进行测试。(4)怎样进行测试。AFreesamplebackgroundfrom、软件测试的目的(1)测试是程序的执行过程,目的在于发现错误;不能证明程序的正确性,除非仅处理有限种情况。(2)检查系统是否满足需求也是测试的期望目标。(3)一个好的测试用例在于发现了还未曾发现的错误;一次成功的测试则是发现了错误的测试。注意:测试无法说明错误不存在,只能说明软件错误已出现。AFreesamplebackgroundfrom章软件测试概述软件测试的基本理论(续)2、软件测试的原则(1)尽早地和及时地测试;(2)测试用例应当由测试数据和与之对应的预期结果这两部分组成;(3)在程序提交测试后,应当由专门的测试人员进行测试;(4)测试用例应包括合理的输入条件和不合理的输入条件;(5)严格执行测试计划,排除测试的随意性;(6)充分注意测试当中的群体现象;(7)应对每一个测试结果做全面的检查;(8)保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料。AFreesamplebackgroundfrom章软件测试概述软件测试的基本理论(续)3、软件测试的分类软件测试按照不同的划分方法,有不同的分类:按照软件测试用例的设计方法而论,软件测试可以分为白盒测试法和黑盒测试法。按照软件测试的策略和过程来分类,软件测试可分为单元测试、集成测试、系统测试、验证测试和确认测试。AFreesamplebackgroundfrom章软件测试概述软件测试的基本理论(续)4、测试信息流程测试信息流程如图1-2所示。测试过程中需要三类输入:软件配置、测试配置和测试工具。软件配置测试配置测试工具测试结果分析改正错误可靠性分析回归测试错误测试结果修正的软件测试结果预测的可靠性预期结果图1-2测试信息流程AFreesamplebackgroundfrom章软件测试概述软件测试的基本理论(续)5、软件测试的周期性软件测试的周期性是“测试-改错-再测试-再改错”这样一个循环过程,如下图1-3所示。测试周期开发/改错改错测试周期改错串行方式开发者:…...开发者:并行方式测试者:开发/改错开发/改错最终回归测试回归测试1测试周期1……功能冻结代码冻结测试周期2图1-3软件测试的周期性AFreesamplebackgroundfrom章软件测试概述软件测试的基本理论(续)6、测试停止的依据(标准)第一类标准:测试超过了预定时间,则停止测试。第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础。第四类标准:正面指出停止测试的具体要求,即停止测试的标准可定义为查出某一预订数目的故障。第五类标准:根据单位时间内查出故障的数量决定是否停止测试。AFreesamplebackgroundfrom软件测试和缺陷修复的代价软件在从需求、设计、编码、测试一直到交付用户公开使用后的过程中,都有可能产生和发现缺陷。随着整个开发过程的时间推移,更正缺陷或修复问题的费用呈几何级数增长。图1-4软件缺陷在不同阶段发现时修复的费用示意图020406080100编制说明书设计阶段编写代码测试发布AFreesamplebackgroundfrom软件测试技术概要软件测试的策略:就是测试将按照什么样的思路和方式进行。通常,软件测试要经过单元测试、集成测试、确认测试、系统测试以及验收测试。软件测试技术:(1)白盒测试和黑盒测试(2)静态测试和动态测试(3)传统测试方法和面向对象测试的方法(4)特定环境及应用的测试AFreesamplebackgroundfrom章软件测试概述软件测试技术概要(续)软件测试技术的发展趋势:(1)软件验证技术(2)静态测试分析技术(3)测试数据的选择——主要对测试用例进行选择通常从下面几个方面评价测试用例的质量:检测软件缺陷的有效性、测试用例的可重用性、测试用例的经济性、测试用例的可维护性(4)集成化测试——研究如何实现软件测试的自动化过程以及相关的一系列内容。ReturnAFreesamplebackgroundfrom、软件产品需要各种开发
本文标题:软件测试第1章 软件测试 概述
链接地址:https://www.777doc.com/doc-3261845 .html