西安工业大学《软件工程》第七章测试ppt课件.ppt

上传人:牧羊曲112 文档编号:1431812 上传时间:2022-11-23 格式:PPT 页数:27 大小:128KB
返回 下载 相关 举报
西安工业大学《软件工程》第七章测试ppt课件.ppt_第1页
第1页 / 共27页
西安工业大学《软件工程》第七章测试ppt课件.ppt_第2页
第2页 / 共27页
西安工业大学《软件工程》第七章测试ppt课件.ppt_第3页
第3页 / 共27页
西安工业大学《软件工程》第七章测试ppt课件.ppt_第4页
第4页 / 共27页
西安工业大学《软件工程》第七章测试ppt课件.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《西安工业大学《软件工程》第七章测试ppt课件.ppt》由会员分享,可在线阅读,更多相关《西安工业大学《软件工程》第七章测试ppt课件.ppt(27页珍藏版)》请在三一办公上搜索。

1、第七章 测 试,无论采用何种开发模型开发出来的大型软件系统,由于客观系统的复杂性,人的主观认识的狭隘性,不可能对要开发的系统具有完美的认识。虽然在软件开发的每一阶段都进行了技术审查和管理复审,也不可能把设计中所有潜在的错误检查出来并进行纠正,而且在编码阶段也会引入新的错误,软件设计环节的错误,如果不进行纠正,在使用阶段可能造成的损失会很大。所以软件在交付使用之前必须进行严格的测试,通过测试找出软件在需求分析、设计和编码阶段隐藏的错误,并加以改正。,计算机科学与工程学院,软件工程(Software Engineer),7.1测试的基本概念和原则,1 测试的必要性 在测试理论形成的早期,一些软件开

2、发公司由于忽视软件的测试,造成了巨大的经济损失。所以测试对提高软件的质量具有很大的重要性。虽然在软件生命周期的各个阶段都有严格的技术审查和管理复审,但是经验表明,审查不能发现所有的差错;在编码过程中,程序员的编程水平对软件的影响很大,但是不管经验多丰富的程序员在编程中都会引入一些错误。如果这些错误在软件交付前没有被测试出来,投入使用后往往带来严重后果。,计算机科学与工程学院,软件工程(Software Engineer),2 测试的概念 1) 软件测试 软件测试是对软件计划、软件设计和软件编码进行查错和纠错的活动,这个过程包括了代码执行活动和人工活动。2) 程序测试 程序测试是对编码阶段出现的

3、语法错、语义错、运行错进行查找的编码执行过程。3) 动态测试 动态测试包括白盒测试和黑盒测试。黑盒测试是根据软件的功能而设计测试用例而进行测试的过程,白盒测试是根据测试的内部结构而设计测试数据,发现程序的错误。4) 静态测试 静态测试包括代码审查和静态分析。,计算机科学与工程学院,软件工程(Software Engineer),3软件测试的目的 G.Myers关于软件测试目的的观点是:(1) 测试是为了发现程序中的错误而执行程序的过程;(2) 好的测试方案是极有可能发现迄今尚未发现的尽可能多的错误的测试;(3) 成功的测试是发现了迄今尚未发现的错误的测试。,计算机科学与工程学院,软件工程(So

4、ftware Engineer),测试复杂性 在理论上看,不论采用哪种测试,只要对每一种可能的情况都进行测试,就可以得到完全正确的程序。我们称包含所有可能的测试称为穷尽测试。而在实际中,穷尽测试是不可能做到的。图8.1 黑盒测试复杂性例子 无论采用黑盒法还是白盒法,要做到穷尽测试,在时间上和代价上都不可能,只能选择部分测试用例尽可能多地行测试,找到尽可能多的错误,也即是进行有穷测试。,计算机科学与工程学院,软件工程(Software Engineer),5 测试的基本原则 (1) 测试前要认定被测试的软件有错,不要认为被测试的程序是正确的;(2) 要确定测试软件的预先测试结果;(3) 尽量避免

5、测试自己编写的程序;(4) 测试时要考虑合理的输入和不合理的输入数据;(5) 测试时应以软件需求规格说明书中的需求为标准;(6) 要确定找到的新错与已找到的旧错成正比;(7) 所使用的测试用例应该纪录下来,以后测试时再用,以供后来的测试和维护使用。,计算机科学与工程学院,软件工程(Software Engineer),7.2测试步骤,1测试过程,计算机科学与工程学院,软件工程(Software Engineer),2 测试的步骤 测试时,首先进行单元测试,再进行组装测试,最后进行确认测试。,计算机科学与工程学院,软件工程(Software Engineer),7.3设计测试方案,1白盒法测试的

6、基本技术 在工程实践中,白盒法的基本测试思想:分析被测试程序的逻辑结构,选择逻辑执行路径子集设计测试方案。用尽可能少的测试用例子集确定被测试程序的实际执行状态与预期的状态是否一致,期望发现尽可能多的错误。在工程实践中提出了以下几种选择逻辑路径子集的覆盖标准。,计算机科学与工程学院,软件工程(Software Engineer),语句覆盖:执行足够的测试用例,使得被测试程序中每个可执行语句至少被执行一次。判定覆盖:判定覆盖又称为分支覆盖,它的基本思想是:执行足够的测试用例,使得被测试程序中每个语句至少执行一次,并且每个判定分支也至少执行一次 .条件覆盖 :执行足够的测试用例,使判定条件中的每个条

7、件至少获得一次可能取值的机会。判定/条件覆盖:执行足够的测试用例,使得被测试程序中每个判定分支至少获得一次通过,同时各判定中每个条件至少获得一次可能取值的机会。条件组合覆盖:执行足够的测试用例,使得被测试程序中每个判定条件的各种组合至少获得一次为真和假的机会。点覆盖 边覆盖 路径覆盖:执行足够的测试用例,使得被测试程序中的每条可能路径至少执行一次,计算机科学与工程学院,软件工程(Software Engineer),2 黑盒法测试的基本技术 1) 等价分类法 将程序模块的所有可能输入数据(有效与无效的)划分为若干等价类,在指定等价类中任取一组数据作为一个测试用例,作为该等价类的代表,并且假定:

8、如果该组数据可以检查出程序的错误,则该等价类中其他组数据也可以产生同样的错误,相反,如果该组数据没有查出错误,则使用该等价类中其他数据组执行程序也是正确的。,计算机科学与工程学院,软件工程(Software Engineer),) 边界值分析:程序在处理边界情况时最容易发生错误,许多程序错误出现在下标、数据结构和循环等等的边界附近。3) 错误推测法 在很大程度上该方法靠直觉和经验进行。它的基本思想是:列举出程序中可能有的错误和容易发生错误的特殊情况,并且根据它们选择测试方案。,计算机科学与工程学院,软件工程(Software Engineer),7.4单元测试,1 单元测试的内容 1)模块接口

9、测试 通过测试模块接口的数据流是否可以通畅地流入出模块,如果数据不能正常地进出,则其他测试都不能进行。 2)局部数据结构 测试模块内部数据是否完整,内容、形式、相关关系是否正确。 3)逻辑覆盖(执行路径)问题 不可能对模块内部的所有逻辑执行路径进行测试,所以选择最有可能发现错误的执行路径进行测试是至关重要的。 4) 出错处理问题 一个好的模块应该能够分析出错的原因、报告出错和提供很好的处理错误,保证程序能正常的运行。因此应该详细测试错误处理的通路。,计算机科学与工程学院,软件工程(Software Engineer),2 单元测试步骤 单元测试按照如下的步骤进行:1)配置测试环境,设计所需要的

10、辅助模块 2)设计测试用例根据逻辑覆盖标准和单元测试所需要解决的测试问题,设计合适的测试用例。3)多个单元并行测试为每一个模块设计相应的测试环境和测试用例,可以同时对多个模块进行测试。,计算机科学与工程学院,软件工程(Software Engineer),7.5集成测试,1 非增式组装测试 这种方法将单元测试后的所有模块按照总体的结构图一次性的组装起来,然后对组装的整体进行测试,得到最终要求的目标系统。一般采用黑盒法设计测试用例进行测试。,计算机科学与工程学院,软件工程(Software Engineer),2 增式组装测试 所谓增式组装测试是按照结构图自顶向下或自底向上逐渐把模块组装成一个系

11、统,即安装一个模块测试一个模块。 增式组装测试根据把待测试模块加入系统的方式可以分为两种方法: 1) 自顶向下增式组装测试 2) 自底向上增式组装测试 3)两者相结合的组装测试,计算机科学与工程学院,软件工程(Software Engineer),7.6确认测试,对软件进行组装测试后,软件系统已成为完整的软件包,消除了接口的错误,可以进行系统的确认测试,验证系统是否满足需求规格说明书中规定的要求。确认测试所采用的技术以黑盒法为主。 确认测试主要由使用用户参加测试,测试的目的是向用户表明软件系统的有效性。根据软件需求说明书中的描述,使用户能够确认软件的功能与性能同他们期望的一样。,计算机科学与工

12、程学院,软件工程(Software Engineer),1测试内容:(1) 系统功能测试:按照需求说明书的要求,测试系统是否具有用户所要求的功能;(2) 强度测试:加载所有负荷的情况下,运行系统,验证系统的负荷能力;(3) 性能测试;系统在实际运行环境中,是否具有需求说明书上所要求的系统性能;(4) 背景测试:系统在实际负荷情况下,测试系统运行多道程序、多道作业的能力;(5) 配置测试:在指定的逻辑组合或物理设备下,检查用户手册、操作手册、设计说明、源程序、测试说明的完整性、可理解性、可用性与实际运行系统的一致性;(6) 恢复测试:测试系统在软件或硬件故障下,恢复原先控制数据的能力;(7) 安

13、全测试:测试系统的安全性,测试系统能否使不合法用户不能进入系统。,计算机科学与工程学院,软件工程(Software Engineer),2 测试步骤(1)在模拟的环境中,首先进行强度测试(即压力测试),系统是否满足要求;(2)在计划的时间内,运行用户可见的软件功能,验证是否与用户的要求相符;(3)测试系统的配置、性能、背景、恢复能力、安全性是否满足要求,同时对软件的可移植性、兼容性、可维护性做出评价;(4)测试过程中,详细记录不符合用户要求的内容及系统的缺陷;(5)测试结束,分析测试结果,找出产生错误的原因;(6)书写确认测试分析报告;(7)根据测试分析报告,明确表示软件的功能及各种性能能否达

14、到软件需求说明书的要求。(8)确认测试结束,如果验收通过,书写整个项目的开发总结报告。,计算机科学与工程学院,软件工程(Software Engineer),7.7软件调试,一般有如下几种方法:1)输出内存和寄存器的内容2)设置程序断点,插入打印语句3)使用自动调试工具,计算机科学与工程学院,软件工程(Software Engineer),2常用调试策略 1) 跟踪法:在错误的征兆附近进行追踪,或是正向跟踪或是反向跟踪。2)演绎法:从测试数据中分析可能出错的原因,排除不会发生的错误原因。 3)归纳法:归纳法纠错是由测试取得错误数据的个别数据,其过程是收集有关数据、组织数据、寻找假设、证明假设、

15、排除假设的错误的过程。,计算机科学与工程学院,软件工程(Software Engineer),4)试探法:针对错误不复杂,而程序又比较简单的程序,根据错误征兆,猜想出故障的大致位置,选取一种纠错方法,找到有关的出错信息,借此逐渐确定原来的分析,渐渐找出错误的原因与位置,然后纠错。5)回溯法纠错修改设计(或代码)的相应错误之后,必须重复执行先前测试集的过程称回溯测试,又叫回归测试,目的在于进一步验证纠错的正确性。6)对分查找法如果已经知道每个变量在程序内若干个关键点的正确值,则用赋值语句或输入语句在程序中的关键点附近输入这些变量的正确值,然后检查程序的输出值。,计算机科学与工程学院,软件工程(S

16、oftware Engineer),7.8自动测试工具,1 测试数据生成程序 2 静态生成程序 3 动态分析程序 4 文件比较程序,计算机科学与工程学院,软件工程(Software Engineer),7.9软件可靠性,1基本概念 1)软件可靠性其定义为程序在给定的时间间隔内,按照规格说明书的规定能成功运行的概率。 2)软件可用性其定义为程序在给定的时刻,按照规格说明书的规定,能成功运行的概率。3)MTTF和MTTR2 估算MTTF的方法,计算机科学与工程学院,软件工程(Software Engineer),7.10 实例,1 测试计划 2 测试分析报告,计算机科学与工程学院,软件工程(Sof

17、tware Engineer),习题七,1为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全网?2软件测试的基本任务是什么?简述软件测试与程序调试的区别。3总结软件测试的基本原则。4软件测试分哪几个阶段?各阶段的任务是什么?5什么是黑盒测试与白盒测试?它们都适应哪些测试?6什么是软件系统的测试和测试?它们各自的目的和方法有什么特点?7使用白盒法覆盖被测试程序的所有逻辑执行路径能够保证程序正确吗?为什么?8为什么在综合测试策略中首先考虑边界值分析,而不是等价分类方法?9根据你自己的经验,总结在程序调试中你常用的找错方法。10单元测试、集成测试和确认测试各自的主要目标是什么?

18、它们之间有什么不同?相互有什么关系?,计算机科学与工程学院,软件工程(Software Engineer),11软件测试的目的是什么?为什么把软件测试的目的定义为只是发现错误?12软件测试的步骤是什么?这些测试与软件开发各阶段之间的关系?13软件测试的过程是什么?14变量的命名规则一般规定如下:变量名的长度不多于40个字符,第一个字符必须为英文字母,其他字母可以是英文字母、数字以及下划线的任意组合。请用等价分类法设计测试用例。15某商场在“五一”期间,顾客购物时收费有4种情况:普通顾客一次购物累计少于100元,按A类标准收费(不打折);一次购物累计多于或等于100元,按B类标准收费(打9折);会员顾客一次购物累计少于1000元,按C类标准收费(打8折);一次购物累计等于或多于1000元,按D类标准收费(打7折)。测试对象是按以上要求计算顾客收费模块。请按照路径覆盖法设计测试用例。,计算机科学与工程学院,软件工程(Software Engineer),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号