第九章软件测试PPT讲稿.ppt

上传人:石*** 文档编号:45886745 上传时间:2022-09-25 格式:PPT 页数:183 大小:5.37MB
返回 下载 相关 举报
第九章软件测试PPT讲稿.ppt_第1页
第1页 / 共183页
第九章软件测试PPT讲稿.ppt_第2页
第2页 / 共183页
点击查看更多>>
资源描述

《第九章软件测试PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第九章软件测试PPT讲稿.ppt(183页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第九章软件测试第1页,共183页,编辑于2022年,星期二软件测试的目的w基于不同的立场,存在着两种完全不基于不同的立场,存在着两种完全不同的测试目的。同的测试目的。w从从用户的角度用户的角度出发,普遍希望通过软出发,普遍希望通过软件测试件测试暴露软件中隐藏的错误和缺陷暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。以考虑是否可接受该产品。w从从软件开发者的角度软件开发者的角度出发,则希望测出发,则希望测试成为试成为表明软件产品中不存在错误表明软件产品中不存在错误的的过程,验证该软件已正确地实现了用过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信户的要求,确立人们对软件质量

2、的信心。心。第2页,共183页,编辑于2022年,星期二Myers软件测试目的(1)测试是测试是程序的执行过程程序的执行过程,目的,目的在于在于发现错误发现错误;(2)一个好的测试用例在于一个好的测试用例在于能发现至能发现至今未发现的错误今未发现的错误;(3)一个成功的测试是一个成功的测试是发现了至今发现了至今未发现的错误的测试未发现的错误的测试。第3页,共183页,编辑于2022年,星期二w换言之,测试的目的是换言之,测试的目的是 想以最少的时间和人力,想以最少的时间和人力,系统地找出软件系统地找出软件中潜在的各种错误和缺陷中潜在的各种错误和缺陷。如果我们成。如果我们成功地实施了测试,我们就

3、能够发现软件功地实施了测试,我们就能够发现软件中的错误。中的错误。测试的附带收获是,它测试的附带收获是,它能够证明软件的功能能够证明软件的功能和性能与需求说明相符合和性能与需求说明相符合。实施测试收集到的测试结果数据为可靠性实施测试收集到的测试结果数据为可靠性分析提供了依据。分析提供了依据。测试不能表明软件中不存在错误,它只能说测试不能表明软件中不存在错误,它只能说明软件中存在错误。明软件中存在错误。第4页,共183页,编辑于2022年,星期二测试信息流测试信息流第5页,共183页,编辑于2022年,星期二测试信息流w软件配置软件配置:软件需求规格说明、软件:软件需求规格说明、软件设计规格说明

4、、源代码等;设计规格说明、源代码等;w测试配置测试配置:测试计划、测试用例、测试:测试计划、测试用例、测试程序等;程序等;w测试工具测试工具:测试数据自动生成程序、静:测试数据自动生成程序、静态分析程序、动态分析程序、测试结果态分析程序、动态分析程序、测试结果分析程序、以及驱动测试的测试数据库分析程序、以及驱动测试的测试数据库等等。等等。第6页,共183页,编辑于2022年,星期二w测试结果分析测试结果分析:比较实测结果与预期:比较实测结果与预期结果,评价错误是否发生。结果,评价错误是否发生。w排错排错(调试调试):对已经发现的错误进行:对已经发现的错误进行错误定位和确定出错性质,并改正错误定

5、位和确定出错性质,并改正这些错误,同时修改相关的文档。这些错误,同时修改相关的文档。w修正后的文档再测试修正后的文档再测试:直到通过测试:直到通过测试为止。为止。第7页,共183页,编辑于2022年,星期二w通过收集和分析测试结果数据,对通过收集和分析测试结果数据,对软件建立可靠性模型软件建立可靠性模型w利用可靠性分析,评价软件质量:利用可靠性分析,评价软件质量:软件的质量和可靠性达到可以接受的软件的质量和可靠性达到可以接受的程度;程度;所做的测试不足以发现严重的错误;所做的测试不足以发现严重的错误;w如果测试发现不了错误,可以肯定,如果测试发现不了错误,可以肯定,测试配置考虑得不够细致充分,

6、错测试配置考虑得不够细致充分,错误仍然潜伏在软件中。误仍然潜伏在软件中。第8页,共183页,编辑于2022年,星期二软件测试的原则1.应当把应当把“尽早地和不断地进行软件尽早地和不断地进行软件测试测试”作为软件开发者的座右铭。作为软件开发者的座右铭。2.测试用例应由测试用例应由测试输入数据测试输入数据和对应和对应的的预期输出结果预期输出结果这两部分组成。这两部分组成。3.程序员应避免检查自己的程序。程序员应避免检查自己的程序。4.在设计测试用例时,应包括在设计测试用例时,应包括合理的输合理的输入条件入条件和和不合理的输入条件不合理的输入条件。第9页,共183页,编辑于2022年,星期二5.充分

7、注意测试中的群集现象。充分注意测试中的群集现象。经验表明,经验表明,测试后测试后程序中残存的错误程序中残存的错误数目与该程序中已发现的错误数目成数目与该程序中已发现的错误数目成正比正比。6.严格执行测试计划,严格执行测试计划,排除测试的随意排除测试的随意性性。7.应当对每一个测试结果做全面检查。应当对每一个测试结果做全面检查。8.妥善保存测试计划,测试用例,出错妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方统计和最终分析报告,为维护提供方便。便。第10页,共183页,编辑于2022年,星期二测试的特性w挑剔性挑剔性:测试是证明程序有错,而不是:测试是证明程序有错,而不是证明程

8、序无错;证明程序无错;w复杂性复杂性:设计测试用例是一项需要细:设计测试用例是一项需要细致和高度技巧的工作,不亚于程序的致和高度技巧的工作,不亚于程序的开发;开发;w不彻底性不彻底性:不可能让被测程序在一切:不可能让被测程序在一切可能的输入情况下全部执行一遍。可能的输入情况下全部执行一遍。第11页,共183页,编辑于2022年,星期二测试的种类程序程序程序程序测试测试测试测试静态分析静态分析静态分析静态分析(程序不执行程序不执行程序不执行程序不执行)动态分析动态分析动态分析动态分析(程序执行程序执行程序执行程序执行)静态分析器分析静态分析器分析静态分析器分析静态分析器分析(自动方式自动方式自动

9、方式自动方式)代码评审代码评审代码评审代码评审(人工方式人工方式人工方式人工方式)代码会审代码会审代码会审代码会审走查走查走查走查办公桌检查办公桌检查办公桌检查办公桌检查黑盒测试黑盒测试黑盒测试黑盒测试(测试程序功能测试程序功能测试程序功能测试程序功能)白盒测试白盒测试白盒测试白盒测试(测试程序结构测试程序结构测试程序结构测试程序结构)第12页,共183页,编辑于2022年,星期二软 件 测 试 的 对 象w软件测试并不等于程序测试。软件测试并不等于程序测试。软件测软件测试应贯穿于软件定义与开发的整个期试应贯穿于软件定义与开发的整个期间间。w需求分析需求分析、概要设计概要设计、详细设计以及详细

10、设计以及程序编码程序编码等各阶段所得到的等各阶段所得到的文档文档,包,包括需求规格说明、概要设计规格说明、括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,详细设计规格说明以及源程序,都应成都应成为软件测试的对象为软件测试的对象。第13页,共183页,编辑于2022年,星期二w从源程序的测试中找到的程序错误不一定都是程序编写过程中造成的。w据美国一家公司的统计表明,在查找出的软件错误中,属于需求分析和软件设计的错误约占64%,属于程序编写的错误约占36%。第14页,共183页,编辑于2022年,星期二w为把握软件开发各个环节的正确性,为把握软件开发各个环节的正确性,需要进行各种需要

11、进行各种确认确认和和验证验证工作。工作。w确认确认(Validation),是一系列的活动和,是一系列的活动和过程,目的是想证实在一个给定的外过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。部环境中软件的逻辑正确性。需求规格说明确认需求规格说明确认 程序确认程序确认(静态确认、动态确认静态确认、动态确认)w验证验证(Verification),试图证明在软件生,试图证明在软件生存期各个阶段,以及阶段间的逻辑协调存期各个阶段,以及阶段间的逻辑协调性、完备性和正确性。性、完备性和正确性。第15页,共183页,编辑于2022年,星期二第16页,共183页,编辑于2022年,星期二测试与软件

12、开发各阶段的关系w软件开发过程是一个自顶向下,软件开发过程是一个自顶向下,逐步细化的过程逐步细化的过程w软件计划阶段定义软件作用域软件计划阶段定义软件作用域w软件需求分析建立软件信息域、软件需求分析建立软件信息域、功能和性能需求、约束等功能和性能需求、约束等w软件设计软件设计w把设计用某种程序设计语言转换把设计用某种程序设计语言转换成程序代码成程序代码第17页,共183页,编辑于2022年,星期二w测试过程是依相反顺序安排的自底测试过程是依相反顺序安排的自底向上,逐步集成的过程。向上,逐步集成的过程。返返第18页,共183页,编辑于2022年,星期二测试用例设计w两种常用的测试方法两种常用的测

13、试方法 黑盒测试黑盒测试 白盒测试白盒测试第19页,共183页,编辑于2022年,星期二动态黑盒测试动态黑盒测试 闭着眼睛闭着眼睛测试软件测试软件软件输入输入 不深入代码细节的测试方法称为动态黑盒测试。不深入代码细节的测试方法称为动态黑盒测试。软件测试员充当客户来使用它。软件测试员充当客户来使用它。输出输出第20页,共183页,编辑于2022年,星期二动态白盒测试动态白盒测试 带上带上X光光眼镜测试眼镜测试?3581322.293419985680302829734315250*(1+0.015)*(1+0.015)360-1)/0.015250*(1+0.015)*(1+0.015)360-

14、1)/0.015 假如知道一个盒子包含一台计算机假如知道一个盒子包含一台计算机,而另一个而另一个盒子是人用纸笔计算盒子是人用纸笔计算,就会选择不同的测试用例就会选择不同的测试用例了解软件的运作方式会影响测试手段了解软件的运作方式会影响测试手段第21页,共183页,编辑于2022年,星期二黑盒测试w这种方法是把这种方法是把测试对象测试对象看做看做一个一个黑盒子黑盒子,测试人员完全不考虑程,测试人员完全不考虑程序内部的逻辑结构和内部特性,序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,只依据程序的需求规格说明书,检查程序的功能是否符合它的功检查程序的功能是否符合它的功能说明。能说明。w黑盒

15、测试又叫做黑盒测试又叫做功能测试功能测试或或数据数据驱动测试驱动测试。第22页,共183页,编辑于2022年,星期二w黑盒测试方法是在程序接口上进行黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误测试,主要是为了发现以下错误:是否有不正确或遗漏了的功能是否有不正确或遗漏了的功能?在接口上,在接口上,输入能否正确地接受输入能否正确地接受?能否能否输出正确的结果输出正确的结果?是否有数据结构错误或外部信息是否有数据结构错误或外部信息(例如数例如数据文件据文件)访问错误访问错误?性能上是否能够满足要求性能上是否能够满足要求?是否有初始化或终止性错误是否有初始化或终止性错误?第23页,共18

16、3页,编辑于2022年,星期二w用黑盒测试发现程序中的错误,用黑盒测试发现程序中的错误,必须在必须在所有可能的输入条件和输所有可能的输入条件和输出条件出条件中确定测试数据,来检查中确定测试数据,来检查程序是否都能产生正确的输出。程序是否都能产生正确的输出。w但这是但这是不可能不可能的。的。第24页,共183页,编辑于2022年,星期二w假设一个假设一个程序程序P有有输入量输入量X和和Y及及输出输出量量Z。在字长为。在字长为32位的计算机上运行。位的计算机上运行。若若X、Y取整数,按黑盒方法进行穷举取整数,按黑盒方法进行穷举测试:测试:w可能采用的可能采用的 测试数据组:测试数据组:232232

17、 264 w如果测试一组数据需要如果测试一组数据需要1毫秒,一年毫秒,一年工作工作365 24小时,完成所有测试需小时,完成所有测试需5亿年。亿年。第25页,共183页,编辑于2022年,星期二白盒测试w此方法此方法把测试对象看做一个透明的把测试对象看做一个透明的盒子盒子,它允许测试人员利用程序内部,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试用例,对程序所有逻辑路径进行测试。测试。w通过在不同点检查程序的状态,确通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一定实际的状态是否与预期的状态一致。因此白

18、盒测试又称为结构测试致。因此白盒测试又称为结构测试或逻辑驱动测试。或逻辑驱动测试。第26页,共183页,编辑于2022年,星期二w软件人员使用白盒测试方法,主软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:要想对程序模块进行如下的检查:对对所有的逻辑判定所有的逻辑判定,取取“真真”与取与取“假假”的两种情况都至少测试一次的两种情况都至少测试一次,称逻辑覆盖测试。称逻辑覆盖测试。对程序模块的对程序模块的所有独立的执行路径所有独立的执行路径至至少测试一次,称路径测试。少测试一次,称路径测试。第27页,共183页,编辑于2022年,星期二w对一个具有对一个具有多重选择和循环嵌套多重选择和循

19、环嵌套的程的程序,序,不同的路径数目可能是天文数不同的路径数目可能是天文数字字。给出一个小程序的流程图,它包。给出一个小程序的流程图,它包括了一个执行括了一个执行20次的循环。次的循环。w包含的不同执行路径数达包含的不同执行路径数达520条,对条,对每一条路径进行测试需要每一条路径进行测试需要1毫秒,假毫秒,假定一年工作定一年工作365 24小时,要想把所小时,要想把所有路径测试完,需有路径测试完,需3170年。年。第28页,共183页,编辑于2022年,星期二第29页,共183页,编辑于2022年,星期二黑盒测试与白盒测试比较黑盒测试与白盒测试比较 黑盒测试黑盒测试是从用户观点,按规格说是从

20、用户观点,按规格说明书要求的输入数据与输出数据的对应明书要求的输入数据与输出数据的对应关系设计测试用例关系设计测试用例,是根据程序是根据程序外部特外部特征征进行测试。进行测试。白盒测试白盒测试是根据程序是根据程序内部逻辑结构内部逻辑结构进行测试。进行测试。第30页,共183页,编辑于2022年,星期二黑盒测试与白盒测试黑盒测试与白盒测试 不论黑盒还是白盒测试都不论黑盒还是白盒测试都不能不能进行穷尽测试进行穷尽测试,所以软件测试不可所以软件测试不可能发现程序中存在的所有错误,能发现程序中存在的所有错误,因因此需精心设计测试方案,此需精心设计测试方案,力争尽可力争尽可能少的次数,测出尽可能多的错误

21、能少的次数,测出尽可能多的错误。第31页,共183页,编辑于2022年,星期二等价分类法w把输入数据的可能值把输入数据的可能值划分为若干等价划分为若干等价类类,使每类中的任何一个测试用例,使每类中的任何一个测试用例,都能代表同一等价类中的其他测试用都能代表同一等价类中的其他测试用例。换句话说,例。换句话说,如果从某一等价类中如果从某一等价类中任意选出一个测试用例未能发现程序任意选出一个测试用例未能发现程序的错误,该类中的其他测试用例也不的错误,该类中的其他测试用例也不会发现错误。会发现错误。w不仅考虑有效等价类,还要考虑无效不仅考虑有效等价类,还要考虑无效等价类。等价类。第32页,共183页,

22、编辑于2022年,星期二如何划分等价类?如何划分等价类?有效等价类有效等价类(合理等价类合理等价类)无效等价类无效等价类(不合理等价类不合理等价类)划分等价类的标准:划分等价类的标准:覆盖覆盖不相交不相交代表性代表性第33页,共183页,编辑于2022年,星期二划分等价类的规则划分等价类的规则(1)(1)如果输入条件规定了取值范围,如果输入条件规定了取值范围,可定义一个有效等价类和两个无可定义一个有效等价类和两个无 效等价类。效等价类。例例 输入值是学生成绩,范围是输入值是学生成绩,范围是0 01001000 1000 100 有效有效等价类等价类11成绩成绩100100无效等价类无效等价类

23、成绩成绩100100 无效等价类无效等价类 成绩成绩00第34页,共183页,编辑于2022年,星期二(2)如果某个输入条件规定了输入数据的个数,则可划分为一个有效等价类和两个无效等价类。例如:每名学生一学期内只能选修13门课程。有效等价类:选修13无效等价类:不选修和选修超过3门划分等价类的规则划分等价类的规则第35页,共183页,编辑于2022年,星期二划分等价类的规则划分等价类的规则(3)(3)如如规规定定了了输输入入数数据据的的一一组组值值,且且程程序序对对不不同同输输入入值值做做不不同同处处理理,则则每每个个允允许许的的输输入入值值是是一一个个有有效效等等价价类类,并并有有一一个个无

24、无效效等等价价类类(所有不允许的输入值的集合所有不允许的输入值的集合)。例例:输输入入条条件件说说明明学学历历可可为为:专专科科、本本科科、硕硕士士、博博士士四四种种之之一一,则则分分别别取取这这四四种种这这四四个个值值作作为为四四个个有有效效等等价价类类,另另外外把把四四种种学学历历之之外外的的任任何何学历作为无效等价类学历作为无效等价类.第36页,共183页,编辑于2022年,星期二划分等价类的规则:划分等价类的规则:(4)(4)如果某个输入条件规定了一组必须成立如果某个输入条件规定了一组必须成立的条件,则可定义一个有效等价类和一个的条件,则可定义一个有效等价类和一个无效等价类。无效等价类

25、。例如,标志符的第一个字符必须是字母。例如,标志符的第一个字符必须是字母。有效等价类:第一个字符是字母有效等价类:第一个字符是字母无效等价类:第一个字符不是字母无效等价类:第一个字符不是字母第37页,共183页,编辑于2022年,星期二划分等价类的规则:划分等价类的规则:w(5)如果某个输入条件是一个布尔量,则如果某个输入条件是一个布尔量,则可定义一个有效等价类和一个无效等价可定义一个有效等价类和一个无效等价类。类。第38页,共183页,编辑于2022年,星期二划分等价类的规则:划分等价类的规则:w(6)如果规定了输入数据为整数,则可以如果规定了输入数据为整数,则可以划分为正整数、零和负整数三

26、个有效等划分为正整数、零和负整数三个有效等价类和一个无效等价类。价类和一个无效等价类。第39页,共183页,编辑于2022年,星期二用等价类划分法设计测试用等价类划分法设计测试用例步骤用例步骤(1)(1)形成等价类表,每一等价类规定形成等价类表,每一等价类规定 一个唯一的编号;一个唯一的编号;(2)(2)设计一测试用例,使其尽可能多设计一测试用例,使其尽可能多 地覆盖尚未覆盖的有效等价类,地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等重复这一步骤,直到所有有效等 价类均被测试用例所覆盖;价类均被测试用例所覆盖;(3)(3)设计一新测试用例,使其只覆盖设计一新测试用例,使其只覆盖 一个

27、无效等价类,重复这一步骤一个无效等价类,重复这一步骤 直到所有无效等价类均被覆盖;直到所有无效等价类均被覆盖;第40页,共183页,编辑于2022年,星期二例例:某报表处理系统要求用户输入处理某报表处理系统要求用户输入处理 报表的日期,日期限制在报表的日期,日期限制在20012001年年1 1 月至月至20052005年年1212月,即系统只能对该月,即系统只能对该 段期间内的报表进行处理,如日期段期间内的报表进行处理,如日期 不在此范围内,则显示输入错误信不在此范围内,则显示输入错误信 息。息。系统日期规定由年、月的系统日期规定由年、月的6 6位数字位数字 字符组成,前四位代表年,后两位字符

28、组成,前四位代表年,后两位 代表月。代表月。如何用等价类划分法设计测试用例如何用等价类划分法设计测试用例,来测试程序的日期检查功能?来测试程序的日期检查功能?第41页,共183页,编辑于2022年,星期二第一步:等价类划分第一步:等价类划分输入等价类输入等价类 有效等价类有效等价类 无效等价类无效等价类 报表日期的报表日期的类型及长度类型及长度6 6位数字字符位数字字符(1)(1)有非数字字符有非数字字符 (4)(4)少于少于6 6个数字字符个数字字符(5)(5)多于多于6 6个数字字符个数字字符(6)(6)年份范围年份范围在在2001200120052005之间之间(2)(2)小于小于200

29、1(7)2001(7)大于大于2005(8)2005(8)月份范围月份范围在在1 11212之间之间(3)(3)“报表日期报表日期”输入条件的等价类表输入条件的等价类表小于小于1(9)1(9)大于大于12(10)12(10)第42页,共183页,编辑于2022年,星期二第二步第二步为有效等价类设计测试用例为有效等价类设计测试用例 对表中编号对表中编号为为1,2,31,2,3的的3 3个有效等价类个有效等价类 用一个测试用一个测试用例覆盖用例覆盖:测试数据 期望结果 覆盖范围200105200105等价类等价类(1)(2)(3)(1)(2)(3)输入有效输入有效第43页,共183页,编辑于202

30、2年,星期二第三步:为每一个无效等价类设至第三步:为每一个无效等价类设至少设计一个测试用例少设计一个测试用例 测试数据 期望结果 覆盖范围001001MAYMAY等价类等价类(4)(4)输入无效输入无效2001520015等价类等价类(5)(5)输入无效输入无效20010052001005等价类等价类(6)(6)输入无效输入无效200020000505等价类等价类(7)(7)输入无效输入无效200820080505等价类等价类(8)(8)输入无效输入无效200120010000等价类等价类(9)(9)输入无效输入无效200120011313等价类等价类(10)(10)输入无效输入无效不能出现相

31、同不能出现相同的测试用例的测试用例本例的本例的1010个等价类至个等价类至少需要少需要8 8个测试用例个测试用例第44页,共183页,编辑于2022年,星期二例:某工厂招工,规定报名者的年龄应在例:某工厂招工,规定报名者的年龄应在1635岁之间,若不在此区间,拒绝接受,并显岁之间,若不在此区间,拒绝接受,并显示示“年龄不合格年龄不合格”等信息。等信息。解解:第一步:划分等价类:第一步:划分等价类输入数据有效等价类无效等价类出生年龄 6位数字字符 有非数字字符 少于6个数字符 多于6个数字符对应数值 在196702198603之间 198603月份对应数值 在1 12之间 等于“0”12第45页

32、,共183页,编辑于2022年,星期二第二步:设计有效等价类的测试用例。第二步:设计有效等价类的测试用例。测试数据测试数据测试数据测试数据 期望结果期望结果期望结果期望结果 测试范围测试范围测试范围测试范围-197011 输入有效输入有效 、第三步:为每一无效等价类至少设计一个测试用例第三步:为每一无效等价类至少设计一个测试用例。测试数据测试数据测试数据测试数据 期望结果期望结果期望结果期望结果 测试范围测试范围测试范围测试范围-MAY,70 MAY,70 输入无效输入无效输入无效输入无效 19705 输入无效输入无效 1968011 1968011 输入无效输入无效输入无效输入无效 1955

33、12 年龄不合格年龄不合格 196006 196006 年龄不合格年龄不合格年龄不合格年龄不合格 196200 输入无效输入无效 197222 197222 输入无效输入无效输入无效输入无效 第46页,共183页,编辑于2022年,星期二实践表明,在处理边界情况时,易发生编实践表明,在处理边界情况时,易发生编码错误。码错误。边界值分析法,就是要选择测试用例,边界值分析法,就是要选择测试用例,使得被测程序能在边界值及其附近运行,使得被测程序能在边界值及其附近运行,从而有效地暴露程序中潜在的错误。从而有效地暴露程序中潜在的错误。边界值分析法第47页,共183页,编辑于2022年,星期二w A、按照

34、输入值范围的边界。w 例如:输入值的范围是-1.0至1.0,则可选择用例 1.0、1.0、-1.001、1.001。w B、按照输入/输出值个数的边界。w 例如:输入文件可有1-255个记录,则 设计用例:文件的记录数为 0个、1个、255个、256个。w C、输出值域的边界。w 例如:检索文献摘要,最多4篇。设计用例:可检索0篇、1篇、4篇,和5篇(错误)。w D、输入/输出有序集(如顺序文件、线性表)的边界。w 应选择第一个元素和最后一个元素。边值分析法举例第48页,共183页,编辑于2022年,星期二输入等价类输入等价类测试用例说明测试用例说明测试数据测试数据期望结果期望结果出生年月1

35、1个数字字符个数字字符5 5个数字字符个数字字符7 7个数字字符个数字字符1 1个非数字字符个非数字字符全是非数字字符全是非数字字符6 6个数字字符个数字字符 5 5 19705 19705 168011 168011 19705A 19705A August August 196702 196702 输入无效输入无效 输入有效输入有效对应数值3535周岁周岁1616周岁周岁 35 35周岁周岁 1611月份月份121)and(B=0)(A=2)or(X1)X=X/AX=X+1TT TFF Fabdce第59页,共183页,编辑于2022年,星期二L1(a c e)=(A1)and(B=0)a

36、nd (A=2)or(X/A1)=(A1)and(B=0)and(A=2)or (A1)and(B=0)and(X/A1)=(A=2)and(B=0)or (A1)and(B=0)and(X/A1)第60页,共183页,编辑于2022年,星期二L2(a b d)=not(A1)and(B=0)and not(A=2)or(X1)=not(A1)or not(B=0)and not(A=2)and not(X1)=not(A1)and not(A=2)and not(X1)or not(B=0)and not(A=2)and not(X1)第61页,共183页,编辑于2022年,星期二L3(a

37、b e)=not(A1)and(B=0)and (A=2)or(X1)=not(A1)or not(B=0)and (A=2)or(X1)=not(A1)and(A=2)or not(A1)and(X1)or not(B=0)and(A=2)or not(B=0)and(X1)第62页,共183页,编辑于2022年,星期二L4(a c d)=(A1)and(B=0)and not(A=2)or(X/A1)=(A1)and(B=0)and not(A=2)and not(X/A1)第63页,共183页,编辑于2022年,星期二语句覆盖w语句覆盖就是设计若干个测试用例,语句覆盖就是设计若干个测试用

38、例,运行被测程序,使得运行被测程序,使得每一可执行语句每一可执行语句至少执行一次至少执行一次。w在图例中,正好所有的可执行语句都在图例中,正好所有的可执行语句都在在路径路径L1上,所以选择上,所以选择路径路径 L1设计测设计测试用例,就可以覆盖所有的可执行语句。试用例,就可以覆盖所有的可执行语句。第64页,共183页,编辑于2022年,星期二w测试用例的设计格式如下测试用例的设计格式如下【输入的【输入的(A,B,X),输出的,输出的(A,B,X)】w为图例设计满足为图例设计满足语句覆盖语句覆盖的测试用例是的测试用例是:【(2,0,4),(2,0,3)】覆盖覆盖 ace【L1】(A=2)and(

39、B=0)or (A1)and(B=0)and(X/A1)第65页,共183页,编辑于2022年,星期二 判定覆盖w判定覆盖就是设计若干个测试用例,判定覆盖就是设计若干个测试用例,运行被测程序,使得运行被测程序,使得程序中每个判程序中每个判断的取真分支和取假分支至少经历断的取真分支和取假分支至少经历一次一次。w判定覆盖又称为判定覆盖又称为分支覆盖分支覆盖。w对于图例,如果选择对于图例,如果选择路径路径L1和和L2,就可得满足要求的测试用例就可得满足要求的测试用例:第66页,共183页,编辑于2022年,星期二w【(2,0,4),(2,0,3)】覆盖】覆盖 ace【L1】【(1,1,1),(1,1

40、,1)】覆盖】覆盖 abd【L2】(A=2)and(B=0)or (A1)and(B=0)and(X/A1)not(A1)and not(A=2)and not(X1)or not(B=0)and not(A=2)and not(X1)第67页,共183页,编辑于2022年,星期二w如果选择路径如果选择路径L3和和L4,还可得另一组可,还可得另一组可用的测试用例用的测试用例:【(2,1,1),(2,1,2)】覆盖】覆盖 abe【L3】【(3,0,3),(3,0,1)】覆盖】覆盖 acd【L4】not(A1)and(X1)or not(B=0)and (A=2)or not(B=0)and(X1

41、)(A1)and(B=0)and not(A=2)and not(X/A1)第68页,共183页,编辑于2022年,星期二条件覆盖w条件覆盖就是设计若干个测试用例,运条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中行被测程序,使得程序中每个判断的每每个判断的每个条件的可能取值至少执行一次个条件的可能取值至少执行一次。w在图例中,我们事先可对所有条件的在图例中,我们事先可对所有条件的取值加以标记。例如,取值加以标记。例如,w对于第一个判断:对于第一个判断:条件条件 A1 取真为取真为 ,取假为,取假为 条件条件 B0 取真为取真为 ,取假为,取假为第69页,共183页,编辑于2022年,

42、星期二w对于第二个判断:对于第二个判断:条件条件A2 取真为取真为 ,取假为,取假为 条件条件X1 取真为取真为 ,取假为,取假为 测试用例测试用例 覆盖分支覆盖分支 条件取值条件取值【(2,0,4),(2,0,3)】L1(c,e)【(1,0,1),(1,0,1)】L2(b,d)【(2,1,1),(2,1,2)】L3(b,e)或或第70页,共183页,编辑于2022年,星期二 测测 试试 用用 例例覆盖分支覆盖分支 条件取值条件取值【(1,0,3),(1,0,4)】L3(b,e)【(2,1,1),(2,1,2)】L3(b,e)判定条件覆盖判定条件覆盖w判定条件覆盖就是设计足够的测试用例,判定条

43、件覆盖就是设计足够的测试用例,使得使得判断中每个条件的所有可能取值判断中每个条件的所有可能取值至少执行一次至少执行一次,每个判断中的每个分每个判断中的每个分支至少执行一次支至少执行一次。第71页,共183页,编辑于2022年,星期二 测测 试试 用用 例例 覆盖分支覆盖分支 条件取值条件取值【(2,0,4),(2,0,3)】L1(c,e)【(1,1,1),(1,1,1)】L2(b,d)(A=2)and(B=0)or (A1)and(B=0)and(X/A1)not(A1)and not(A=2)and not(X1)or not(B=0)and not(A=2)and not(X1)第72页,

44、共183页,编辑于2022年,星期二判定条件覆盖从表面上看测试了所有条件的取值,但实际某些条件掩盖了另一些条件。例如:对表达式(A1)and(B=0)来说,若(A1)的测试结果为真,则还要测试(B=0),才能决定表达式的值;而若(A1)的测试结果为假,可立刻确定表达式的结果为假。这时就不再测试(B=0),因此条件(B=0)就没有被检查,因此采用判定-条件覆盖,逻辑表达式的错误不一定能检查出来。第73页,共183页,编辑于2022年,星期二 andorA1T TB=0T TX=X/AT TF FF FA=2T TFX1F FX=X+1第74页,共183页,编辑于2022年,星期二条件组合覆盖w条

45、件组合覆盖就是设计足够的测试条件组合覆盖就是设计足够的测试用例,运行被测程序,使得用例,运行被测程序,使得每个判每个判断的所有可能的条件取值组合至少断的所有可能的条件取值组合至少执行一次执行一次。记记 A1,B0 作作 A1,B0 作作 A 1,B0 作作 A 1,B0 作作第75页,共183页,编辑于2022年,星期二 A2,X1 作作 A2,X 1 作作 A2,X1 作作 A2,X 1 作作 测测 试试 用用 例例 覆盖条件覆盖条件 覆盖组合覆盖组合【(2,0,4),(2,0,3)】(L1),【(2,1,1),(2,1,2)】(L3),【(1,0,3),(1,0,4)】(L3),【(1,1

46、,1),(1,1,1)】(L2),第76页,共183页,编辑于2022年,星期二w条件组合覆盖测试也并不完全,有可能漏掉某些路径。第77页,共183页,编辑于2022年,星期二路径测试w路径测试就是设计足够的测试用例,路径测试就是设计足够的测试用例,覆盖程覆盖程序中所有可能的路径序中所有可能的路径。1 1、程序图、程序图、程序图、程序图(Program Graph)(Program Graph)第78页,共183页,编辑于2022年,星期二1 1、程序图、程序图、程序图、程序图(Program Graph)(Program Graph)的优化的优化的优化的优化 顺序执行的多个结点,可合并成一个

47、结点。顺序执行的多个结点,可合并成一个结点。顺序执行的多个结点,可合并成一个结点。顺序执行的多个结点,可合并成一个结点。第79页,共183页,编辑于2022年,星期二ABABQ 含有复合条件的判断框,可分解成几个简含有复合条件的判断框,可分解成几个简单条件的判定框单条件的判定框PABABQPA=BA=BP第80页,共183页,编辑于2022年,星期二路径测试的特征路径测试,就是对程序图中每一条可能的路径测试,就是对程序图中每一条可能的程序执行路径至少测试一次。如果程序程序执行路径至少测试一次。如果程序中含有循环,则每个循环至少执行一次。中含有循环,则每个循环至少执行一次。w满足结构测试的最低要

48、求。满足结构测试的最低要求。语句覆盖又称点覆盖。语句覆盖又称点覆盖。判定覆盖又称边覆盖。判定覆盖又称边覆盖。满足语句覆盖和判定覆盖为完全覆盖。满足语句覆盖和判定覆盖为完全覆盖。满足路径覆盖,就满足完全覆盖,也就是满足路径覆盖,就满足完全覆盖,也就是满足了白盒测试的最低要求。满足了白盒测试的最低要求。第81页,共183页,编辑于2022年,星期二例如:例如:例如:例如:2134abcde测试路径测试路径覆盖结点覆盖结点/边边覆盖标准覆盖标准acdacd,点覆盖点覆盖acd,beacd,bea,b,c,d,ea,b,c,d,e边覆盖边覆盖acd,beacd,beae,bcdae,bcd,a,b,c

49、,d,ea,b,c,d,e路径覆盖路径覆盖第82页,共183页,编辑于2022年,星期二循环测试路径选择w循环分为循环分为4种不同类型:种不同类型:简单循环简单循环、嵌套循环嵌套循环、连锁循环连锁循环和和非结构循环非结构循环。(1)简单循环简单循环 零次循环零次循环:从循环入口到出口:从循环入口到出口 一次循环一次循环:检查循环初始值:检查循环初始值 二次循环二次循环:检查多次循环:检查多次循环 m次循环:次循环:检查在多次循环检查在多次循环 最大次数循环、比最大次数多一次、最大次数循环、比最大次数多一次、少一次的循环。少一次的循环。第83页,共183页,编辑于2022年,星期二 对最内层循环

50、做简单循环的全部测对最内层循环做简单循环的全部测试。所有其它层的循环变量置为最小值;试。所有其它层的循环变量置为最小值;逐步外推,对其外面一层循环进逐步外推,对其外面一层循环进行测试。测试时保持所有外层循环的循行测试。测试时保持所有外层循环的循环变量取最小值,所有其它嵌套内层循环变量取最小值,所有其它嵌套内层循环的循环变量取环的循环变量取“典型典型”值。值。反复进行,直到所有各层循环测试反复进行,直到所有各层循环测试完毕。完毕。(2)嵌套循环嵌套循环第84页,共183页,编辑于2022年,星期二第85页,共183页,编辑于2022年,星期二 对全部各层循环同时取最小循环次对全部各层循环同时取最

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com