收藏 分享(赏)

第六章 软件测试 精品.ppt

上传人:无敌 文档编号:1072510 上传时间:2018-06-09 格式:PPT 页数:123 大小:1.80MB
下载 相关 举报
第六章  软件测试 精品.ppt_第1页
第1页 / 共123页
第六章  软件测试 精品.ppt_第2页
第2页 / 共123页
第六章  软件测试 精品.ppt_第3页
第3页 / 共123页
第六章  软件测试 精品.ppt_第4页
第4页 / 共123页
第六章  软件测试 精品.ppt_第5页
第5页 / 共123页
点击查看更多>>
资源描述

1、第七章 软件测试,7.1 测试的基本概念,测试目标 测试的基本原则 测试信息 测试的方法和技术 测试步骤,7.1.1 测试的目标,软件测试的目标:为了发现程序中的错误而执行程序的过程;好的测试方案是极有可能发现迄今尚未发现的尽可能多的错误的测试方案;成功的测试是发现了迄今尚未发现的错误的测试。 测试是为了发现错误,不能证明程序正确。一般来说,单元测试可由程序员自己完成,而综合测试通常由测试小组来完成。,7.1.1 软件测试的目标,(1)预防错误: 几乎不可实现(2)发现错误: 软件测试目的,把证明程序无错当作测试目的不仅是不正确的, 完全做不到的,而且对做好测试没有任何益处,甚至是十分有害的。

2、 软件测试要设法使软件发生故障,暴露软件错误 测试的“成功”与“失败”: 能够发现错误的测试是成功的测试,否则是失败的测试。,7.1.1 软件测试的目标(续),“测试的目的是说明程序正确地执行它应有的功能”也可能是错误的。例:程序Triangle,输入三个整数,表示一个三角形的三个边长,该程序产生一个结果,指出该三角形是等边三角形、等腰三角形还是不等边三角形。 为说明其能正确执行它的功能,可使用“测试用例”(3,4,5),(5,5,6),(6,6,6), 程序都能给出正确结果,是否就可认为程序是正确的?,7.1.1 软件测试的目标(续),7.1.2测试与开发各阶段的关系,决定软件与系统的配合关

3、系,需求分析,概要设计,详细设计,编 码,单元测试,集成测试,系统测试,7.1.2 测试与开发各阶段的关系(续),测试阶段工作步骤:单元测试: 检验每个模块能否单独工作集成测试: 检验概要设计中模块接口设计问题系统测试: 以需求规格说明书为检验尺度 测试可视为分析、设计、编码三个阶段的最终复审,以保证软件质量。,软件生存期各阶段间需保持的正确性,7.1.5 测试对象,软件测试不等于程序测试 软件测试应贯穿于软件定义与开发的整个期间; 据美国一家公司统计,查出的软件错误中,属于需求分析和软件设计的错误约占 64%,属于程序编写的错误仅占 36%。程序编写的许多错误是“先天的”。,7.1.6 测试

4、的基本原则,1 基本原则“尽早测试”应成为软件开发人员的座右铭 坚持软件开发各阶段复审,尽早发现错误开发和测试队伍分别建立测试用例应由输入数据和预期的输出结果两部分组成特别注意测试发现错误较多的程序模块,要重点测试程序修改后要回归测试应长期保留测试用例,直至系统废弃,7.1.6 测试的基本原则(续),2 “测试用例”设计测试用例的构成要素 输入数据+预期输出结果+测试功能说明+环境平台及运行条件兼顾合理的输入和不合理的输入数据不仅检查程序是否实现预期功能,还应检查程序是否作了不该做的事,7.1.6 测试的基本原则(续),3 程序测试举例例:程序 Triangle, 输入三个整数,表示一个三角形

5、的三个边长,该程序产生一个结果,指出该三角形是等边三角形、等腰三角形还是不等边三角形。,7.1.6 测试的基本原则(续),判断三角型的测试用例设计: 输入数据 预期结果(1) 6;6;6 等边(2) 8;8;4 等腰(3) 4;5;6 一般 还应输入非法数据: 0; 7; 9 -7;3; 5 a; 2; 7 等,7.1.6 测试的基本原则(续),4 软件错误分类 功能错(需求分析错误) 软件结构错 数据错 编码错 软件集成错 测试定义与测试执行错误,7.1.7 软件测试信息流,测试过程需要三类输入: 软件配置:需求规格说明书 软件设计说明书 被测源程序代码 测试配置:测试计划 测试用例(测试数

6、据) 测试驱动程序 测试工具,7.1.7 软件测试信息流(续),软件配置,测试配置,测试,测试工具,结果分析,排错,可靠性 分析,测试结果,错误,预期结果,出错率,改正的软件,预测的可靠性,7.1.8 测试的方法与技术,软件测试的策略和方法,静态测试方法,动态测试方法,人工测试方法,计算机辅助静态分析方法,白盒测试方法,黑盒测试方法,穷举测试方法,1 静态测试 基本特征是在对软件进行分析、检查和测试,不实际运行被测试的软件。 静态测试对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。约可找出3070%的逻辑设计错误。,7.1.8 测试的方法与技术(续),2 动态测

7、试 通过运行软件来检验软件的动态行为和运行结果的正确性 动态测试的两个基本要素: 被测试程序 测试数据(测试用例),7.1.8 测试的方法与技术(续),2 动态测试方法(续)(1)选取定义域有效值,或定义域外无效值(2)对已选取值决定预期的结果(3)用选取值执行程序(4)执行结果 与(2)结果相比, 和程序不符合有错,7.1.8 测试的方法与技术(续),1) 模块测试 又称单元测试,在软件编码阶段进行,确认模块作为单元能够正常运行2) 集成测试/联合测试 把经过测试的单元按一定顺序组装成为系统,进行测试,又称接口测试3) 系统测试 将软件系统作为单一实体,在用户积极参与下以实际数据测试,测试的

8、目的是验证系统能否达到SRS的要求,因此又称验收测试。,7.1.9 测试步骤,3) 系统测试(续)a测试:由一个用户在开发环境下模拟实际操作环境运行程序系统 目的是评价软件产品的功能、可用性、可靠性、性能和支持,系统的界面的特色。 方法是由开发者在场记录系统出错情况及使用中存在的问题。,7.1.9 测试步骤(续),3) 系统测试(续)b测试:由系统一个或多个用户在实际操作环境中运行系统目的是评价系统的可支持性,包括文档的完整性、用户培训和支持、使用系统的能力和满意程度。方法是开发者不在测试现场,由用户记录的问题可能是系统存在的错误,也可能是用户的主观认定。,7.1.9 测试步骤(续),白盒法

9、黑盒法,7.2 测试的基本方法,1) 黑盒测试(又称功能测试,数据驱动测试,基于规格说明书的测试) 将被测试程序对象看作黑盒子,不考虑其内部程序结构与处理过程,仅仅对于程序接口进行测试。即检查适当的输入是否能够产生适当的输出。,一、 两种类型的测试,2) 白盒测试(又称结构测试,玻璃盒测试,基于覆盖的测试) 分析程序结构与过程执行路径,按照程序内部的逻辑结构设计测试用例,检验程序的每条通路是否按预期正常进行,力求提高测试覆盖率。,一、 两种类型的测试(续),3) 黑盒测试与白盒测试比较 黑盒测试是从用户观点,按规格说明书要求的输入数据与输出数据的对应关系设计测试用例,是根据程序外部特征进行测试

10、。 白盒测试是根据程序内部逻辑结构进行测试。,一、 两种类型的测试(续),4) 彻底的黑盒法或者白盒法(穷举测试)例:输入 三条边长 黑盒测试可采用的测试用例数(设字长16位)执行时间: 设测试一次需1ms 共需一万年,=2 * 2 * 2 3 *10,16,16,16,14,一、 两种类型的测试(续),4) 穷举测试(续) 白盒测试例:含5个分支,循环次数20,从A到B的可能路径执行时间: 设测试一次需2ms 穷举测试需5亿年.,=5 +5 +.+5 +5 10,20,1,2,19,14,A,B,一、 两种类型的测试(续),不论黑盒还是白盒测试都不能进行穷尽测试, 所以软件测试不可能发现程序

11、中存在的所有错误, 因此需精心设计测试方案, 力争尽可能少的次数,测出尽可能多的错误.,一、 两种类型的测试(续),二 白盒法,基于白盒法的测试思想: 分析被测程序的逻辑结构,选择逻辑执行路径子集设计测试方案。选择路径子集的覆盖标准:一、逻辑覆盖法: 语句覆盖(点覆盖)、判定覆盖、条件覆盖、 判定/条件覆盖、条件组合覆盖二、路径测试法: 路径覆盖、点覆盖、边覆盖,例:一个被测程序模块的流程图如右图: 其程序为: int samp (int a,int b,int x) int y; if (a1) ,二 白盒法,1 语句覆盖(点覆盖)执行足够多的测试用例,使得被测程序中每个可执行语句至少被执行

12、一次。上例中只需设计一个测试用例: 输入数据:A=3,B=0,X=6 即达到了语句覆盖;语句覆盖是最弱的覆盖标准。将程序模块抽象为程序图,语句覆盖又被称为点覆盖。,二 白盒法(续),2 判定覆盖(边覆盖)执行足够多的测试用例,使得被测程序中每个语句至少被执行一次,且每个判断的真假 分支至少执行一次。上例中可设计两组测试用例:A=3,B=0 ,X=3 可覆盖c、d分支 A=2,B=1 ,X=1 可覆盖b、e分支 两组测试用例可覆盖所有判定 的真假分支判定覆盖仍是弱的覆盖标准。将程序模块抽象为程序图,判定覆盖又被称为边覆盖。,二 白盒法(续),3 条件覆盖 执行足够多的测试用例,使得被测程序中每个

13、判定的每个条件的可能值至少执行一次。,二 白盒法(续),3 条件覆盖(续)上例中, 第一判定表达式:A1 and B=0 设条件 A1 取真 记为 T1 假 T1 条件 B=0 取真 记为 T2 假 T2 第二判定表达式:A=2 or X1 设条件 A=2 取真 记为 T3 假 T3 条件 X1 取真 记为 T4 假 T4,二 白盒法(续),3 条件覆盖(续)上例中, 测试用例 通过 满足的 覆盖 A B X 路径 条件 分支 1 0 3 abe T1,T2,T3,T4 b,e 2 1 1 abe T1,T2,T3,T4 b,e 两个测试用例覆盖了四个条件八种可能 取值。未覆盖c、d分支,不满

14、足判定覆盖的要求。 条件覆盖不一定包含判定覆盖 判定覆盖也不一定包含条件覆盖,满足条件: T1,T1;T2,T2 T3,T3;T4,T4,二 白盒法(续),4 判定/条件覆盖执行足够多的测试用例,使得被测程序中的判定的每个条件的所有可能取值至少执行一次,同时每个判定本身的所有可能判定结果至少执行一次。是判定覆盖与条件覆盖的综合,但不能保证检查出逻辑表达式的全部错误。 对于上例中A1时检查B=0,而 A0却不去验证了。,二 白盒法(续),4 判定/条件覆盖(续)上例中, 测试用例 通过 满足的 覆盖 A B X 路径 条件 分支 2 0 4 ace T1,T2,T3,T4 c,e 3 1 1 a

15、bd T1,T2,T3,T4 b,d 两个测试用例能同时满足判定、条件覆盖。,满足条件: T1,T1;T2,T2 T3,T3;T4,T4,二 白盒法(续),5 条件组合覆盖执行足够多的测试用例,使得被测程序中所有可能的条件取值组合至少执行一次。上例的模块中条件共有8种可能的条件组合:(1)A1, B=0 (2) A1, B0 (3) A0 (5) A=2, X1 (6) A=2, X2, X1 (8) A2, X=1满足条件组合覆盖必满足判定、条件、判定/条件覆盖,但仍不能遍历每条路径。,二 白盒法(续),5 条件组合覆盖(续)上例中, 测试用例 通过 满足的 覆盖 A B X 路径 条件 分

16、支 2 0 3 ace T1,T2,T3,T4 c,e 2 1 1 abe T1,T2,T3,T4 b,e 0 0 1 abe T1,T2,T3,T4 b,e 0 1 0 abd T1,T2,T3,T4 b,d 2 0 2 ace T1,T2,T3,T4 c,e 2 1 1 abe T1,T2,T3,T4 b,e 3 2 2 abe T1,T2,T3,T4 b,e 3 3 1 abd T1,T2,T3,T4 b,d,二 白盒法(续),5 条件组合覆盖(续)另一组测试用例: 测试用例 通过 满足的 覆盖 A B X 路径 条件 分支 2 0 4 ace T1,T2,T3,T4 c,e 2 1 1

17、 abe T1,T2,T3,T4 b,e 1 0 2 abd T1,T2,T3,T4 b,d 1 1 1 abd T1,T2,T3,T4 b,d,二 白盒法(续),6 路径覆盖执行足够多的测试用例,使得被测程序中每条可能路径至少通过一次。上例中设计测试用例: 测试用例 通过 满足的 覆盖 A B X 路径 条件 分支 1 1 1 abd T1,T2,T3,T4 b,d 1 1 2 abe T1,T2,T3,T4 b,e 3 0 1 acd T1,T2,T3,T4 c,d 2 0 4 ace T1,T2,T3,T4 c,e满足路径覆盖保证了每个可能的路径至少通过一次,与条件组合覆盖结合使用可能取

18、得较好效果。,二 白盒法(续),7 点覆盖 测试路径至少经过程序控制流图中每个节点一次 执行路径: abdghi和aceghi满足点覆盖,二 白盒法(续),8 边覆盖 测试路径至少经过程序控制流图中每条边一次. 执行路径: abdfi和aceghi 满足边覆盖 边覆盖与路径覆盖不同路径覆盖需执行的路径:abdfi、aceghi、abdghi、acefi,二 白盒法(续),三 黑盒法,等价分类法,边值分析法,错误推测法,因果图法,不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。,1、等价分类法,基本思想:根据程序的I/O特性,将程序的定义域划分为有限个等价区段 “等价类”

19、,从等价类中选择出的用例,具有“代表性”。,等价类分为:有效等价类 对于程序的规格说明是合理的、有意义的输入数据构成的集合。无效等价类 对于程序的规格说明,是不合理的,是没有意义的输入数据构成的集合。,2、划分等价类的规则 (1)如果输入条件代表一个范围,可定义一个有效等价类和两个无效等价类。 例 输入条件规定:项数可从1到999,1 999,有效等价类,无效等价类 1,划分等价类的规则(续) (2)如果输入条件代表集合的某个元素,则可定义一个有效等价类和一个无效等价类。 (3)如规定义了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,并有一个无效等价类(所

20、有不允许的输入值的集合)。,划分等价类的规则(续) (4)如果规定了输入条件必须遵守的规则,则可划分一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。 *(5)如果规定了输入数据是整型,则可划分出正整数、零、负整数三个有效等价类。 (6)如已划分的等价类各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类。,等价分类法步骤,应按照输入条件(如输入值的范围,值的个数,值的集合,输入条件必须如何)划分为有效等价类和无效等价类。例如:每个学生可选修1-3门课程 可以划分一个有效等价类:选修1-3门课程。 可以划分两个无效等价类:未选修课,选修课超过3门。又如:标识符

21、的第一个字符必须是字母。 可以划分为一个有效等价类:第一个字符是字母。 可以划分一个无效等价类:第一个字符不是字母。, 划分“等价类”,显然,关键是如何划分等价类,A、为每个等价类编号;B、使一个测试用例尽可能覆盖多个有效等价类C、特别要注意的是:一个测试用例只能覆盖一个无效等价类。, 选择测试用例,用等价类划分法设计测试用例 例:某个待测程序的输入参数“职称”的输入值可以是助教、讲师、副教授、教授四种。则,可以设计一个有效等价类(取四个职称中的一个值);一个无效等价类(四个职称之外的任意值)。,用等价类划分法设计测试用例(续) 例(续):如果程序对不同职称有不同的处理方案,如“住房分配”程序

22、。则,应设计四个有效等价类(四个职称每个值为一类);一个无效等价类(四个职称之外的任意值)。(根据规则(6)),用等价类划分法设计测试用例步骤:(1)形成等价类表,每一等价类规定一个唯一的编号;(2)设计一测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例所覆盖;(3)设计一新测试用例,使其只覆盖一个无效等价类,重复这一步骤直到所有无效等价类均被覆盖;,用等价类划分法设计测试用例(例1): 例:某城市电话号码由三部分组成 地区码:空白或3位数字 前 缀:非0或1开头的三位数字 后 缀:4位数字,输入条件 有效等价类 无效等价类,地区码,空白(1)3位

23、数字(2),有非数字字符 (5)少于3位数字 (6)多于3位数字 (7),前 缀,从200到999之间的3位数字(3),有非数字字符 (8)起始位为0 (9)起始位为1 (10)少于3位数字 (11)多于3位数字 (12),后 缀,有非数字字符 (13)少于4位数字 (14)多于4位数字 (15),4位数字(4),第一步:电话号码等价类划分,测试数据 测试范围 期望结果,( )276-2345(635)805-9321,等价类(1)(3)(4)等价类(2)(3)(4),有效有效,第二步:确定测试用例,对表中4个有效等价类可公用下面两个测试用例:,对表中11个无效等价类应选择11个测试用例:,测

24、试数据 测试范围 期望结果,(20A)123-4567(33 )234-5678(7777)345-6789 . . .,无效等价类(5)无效等价类(6)无效等价类(7) . . . (15),无效无效无效 . . .,本例的15个等价类至少需要13个测试用例,第二步:确定测试用例,用等价类划分法设计测试用例(续) 例2:把一个六位数字字符串转化为整数,有效输入的等价类无效输入的等价类1)16个数字串(最高位非0)4)空字符串2)最高位为0的数字串5)不足6位时,字符串左 边填充不是0或空格3)最高位数字左邻是负号的 6)最高位数字右边包含字 数字串 符和空格 7)负号与最高位数字间有 空格8

25、)在最小负整数与0之间的负 11)比-32767还小的负整数 整数9)0 12)比32768还大的正整数 10)在0和最大正整数之间的正整数,第一步:等价类划分,第二步:确定测试用例,根据以上等价类,设计测试方案:1) 16个数字串,输出合法的正整数 2)最高位为0的数字串,输出合法正整数3)最高位数字时0,输出也为04)最高位数字左邻是负号的数字串,输出合法负整数5)太小的负整数:-47561, 无效输入6)太大的正整数:132767, 无效输入7)空字符串: ,没有数字,无效输入8)字符串左部非0也不是空格:*1,填充错误9)最高位数字后面有空格:1 2,无效输入10)最高位数字后有其它字

26、符: 1*2, 无效输入11)负号和最高位数字间有空格: - 12,无效输入 ,边界值分析法边界值分析法与等价类划分法区别 (1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。 (2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况,边界值分析法(续)设计测试用例原则: (1) 如输入条件代表以a和b为边界的范围,测试用例应包含a、b、略大于a和略小于b的值。 (2) 如输入条件代表一组值,测试用例应当执行其中的最大值和最小值,还应测试略大于最大值和略小于最小值的值。,边界值分析设计测试用例原则,例:邮件收费规定 15 kg收费2元 则应设

27、计测试用例: 0.9,1, 5,5.1 kg 或0.99,1, 5,5.01 kg。,边界值分析设计测试用例原则,例:一个输入文件可有1255个记录则可分别设计有: 1个、255个、0个、256个记录的输入文件,边界值分析法(续)设计测试用例原则: (3)如规格说明中提出输入输出的有序集(顺序文件、有序表等),取有序集的第一个和最后一个元素做测试用例。 (4)如程序数据结构有预定的边界,应测试其边界的数据项。 (5)如输出条件规定了取值范围,取边界上下浮动值做测试用例。,边界值分析设计测试用例原则,例:程序中定义一数组,其元素下标的下界是0,上界是100,则应选择达到这个数组下标边界的值,如0

28、与100作为测试用例。,边界值分析设计测试用例原则,例: 每日保险扣除额(输出项)在01165.25 元,则应设计测试用例使其恰好产生0元和1165.25元的结果, 此外还应考虑设计结果为负值或 1165.25元的测试用例。 (如: -0.01元和1165.26元) 由于输入值的边界不与输出值的边界相对应,所以要检查输出值的边界及产生超出输出值值域的结果不一定可能。,边界值分析法(续)上例2中,应补充下述测试方案:12)使输出刚好等于-32768,输出-3276813)使输出刚好等于32767,输出32767改5)使输出刚好小于-32768:-32769,无效输 入改6)使输出刚好大于3276

29、7:32768,无效输入 ,2、边值分析法,基本思想: 选择等价类的边缘值作为测试用例,让每个等价类的边界都得到测试,选择测试用例既考虑输入亦考虑输出。,分析步骤: A、先划分等价类。B、选择测试用例,测试等价类边界。,边界选择原则: A、按照输入值范围的边界。B、按照输入/输出值个数的边界。C、输出值域的边界。D、输入/输出有序集的边界。,3、错误推测法(猜错法),凭经验或直觉推测可能的错误,列出程序中可能有的错误和容易发生错误的特殊情况,选择测试用例。 不同类型的程序通常具有若干特殊的易出错的情况,这些情况未必可以归结为等价类或者边界情况。有经验的测试人员往往根据经验与直觉,例举出程序中可

30、能有的错误和容易发生错误的特殊情况,根据它们选择测试用例,实行高效的测试。,4、因果图法,把输入条件视为“因”,把输出条件视为“果”,将黑盒看成是从因到果的网络图,采用逻辑图的形式来表达功能说明书中输入条件的各种组合与输出的关系。根据这种关系可选择高效的测试用例。因果图是一种形式化语言,是一种组合逻辑网络图。,4 因果图法 因果图适合于描述对于多种输入条件的组合,相应产生多个动作的形式来设计测试用例。因果图方法最终生成的是判定表。用因果图法生成测试用例的步骤: (1)分析哪些是原因,哪些是结果,给每个原 因、结果一个标识。 (2)分析语义,找出原因与结果、原因与原因之间的关系,画出因果图。 (

31、3)在因果图上标明约束或限制条件。 (4)把因果图转化为判定表 。 (5)根据判定表每一列设计测试用例。,4、因果图法(cause effcet graphicei), 因果图的基本符号0 - 表示“不出现”1 - 表示“出现”,恒等若a为1,则b为1,否则b为0。“非”函数 若a为1,则b为0,否则b为1。“或”函数若a或b为1,则d为1,否则d为0。“与”函数若a与b同为1,则d为1,否则d为0。,4、因果图法(cause effcet graphicei),对“与”、“或”函数的限制符号,E约束(异) 排斥即a、b不能同时为1。I约束(或) 包容a、b、c不能同时为0。O约束(唯一) 选

32、一 a、b中仅有一个为1。R约束(要求) 需要 a为1时,b必须为1M约束(强制) 屏蔽 若a为1时,则b强制为1。,a,b,E,a,b,c,I,a,b,R,a,b,O,a,b,M, 因果图法的步骤,分析规范,即将问题分为若干可工作的步骤。 标识出规范中的原因与结果。原因输入条件 结果输出或系统变换,将因果图转换为有限项判断表。将判断表的每一列,转换为一个测试用例。,分析规范语义、内容,转换为因果图。, 因果图法应用举例,规范:文件名第一列字符必须为A或B,第二列字符必须为数字。满足则修改文件。第一字符不正确发出信息X12,第二个字符不正确发出信息X13。,、分析规范原 因 结 果1 第一列字

33、符为A 50修改文件2 第一列字符为B 51发信息X123 第二列字符为数字 52发信息X13,画出因果图,中间结点是导出结果的进一步原因。,考虑到原因1、2不可能同时为1,加上E约束。,11,将因果图转换为判断表,11,51,50,52,某电力公司有A、B、C、D四类收费标准,并规定:居民用电 100度/月 按A类收费 100度/月按B类收费动力用电 10000度/月,非高峰,B类收费 10000度/月,非高峰,C类收费 10000度/月, 高峰,C类收费 10000度/月, 高峰,D类收费,因果图方法实例1,列出输入条件和输出动作并编号:输入条件(原因) 输出动作(结果)1居民用电 A-

34、A类计费2动力用电 B- B类计费3100度/月 C- C类计费410000度/月 D- D类计费5高峰用电,因果图方法实例1(续),把因果图转换为判定表:,因果图方法实例1(续),1列 居民电,90度/月 A2列 居民电,110度/月 B3列 动力电,非高峰,8000度/月 B4列 动力电,非高峰,1.2万度/月 C5列 动力电, 高峰,0.9万度/月 C6列 动力电, 高峰,1.1万度/月 D,条件 测试用例 预期结果组合 (输入数据) (输出动作),为判定表每一列设计一个测试用例:,因果图方法实例1(续),85,循环覆盖,单循环:设允许执行循环的最大次数为n。设计测试用例如下:1、跳过循

35、环;2、只执行循环一次;3、执行m次,mn;4、执行n-1次、n次、n+1次。,嵌套循环:1、置外循环处于最小循环计数值,对内层进行单循环测试;2、由里向外,进行下一层的循环测试。,黑盒法为主、白盒法为辅,具体如下:任何情况下都应该使用边界值分析设计测试用例;必要时采用等价分类法补充用例;必要时再用错误推测法补充用例;对照程序逻辑,检查设计用例的逻辑覆盖标准。根据程序可靠性要求,补充用例使之达到规定的覆盖标准。,四 综合测试策略,例:程序TRIANGLE读入三个整数值,代表三条边长,程序根据这三个值判断三角形属于不等边、等腰或等边三角形中哪一种。综合使用边界值分析、等价划分、错误推测技术可设计

36、9种测试数据:测试功能测试数据1.等边10,10,102.等腰10,10,17 10,17,10 17,10,103.不等边 8,10,12 8,12,10 10,12,84.非三角形10,10,21 10,21,10 21,10,105.退化情况10,5,5 5,10,55,5,106.零数据0,0,00,0,170,10,127.负数据-10,-10,-10-10,-10,17-8,10,178.遗漏数据-, -, -10,-,-8,10,-9.无效输入a,b,c=, +, *8,10,a,综合测试策略实例,测试数据覆盖程度检验编号测试数据覆盖的边1.10,10,10 1,2,3,4,5,

37、6,7,82a.10,10,17 1,2,3,4,5,15,19,20,82b.10,17,10 1,2,3,4,14,18,19,20,82c.17,10,10 1,2,3,4,14,16,17,19,20,83a.8,10,12 1,2,3,4,14,16,21,22,83b.8,12,10 1,2,3,4,14,16,21,22,83c.10,12,8 1,2,3,4,14,16,21,22,84a.10,10,21 1,2,3,11,12,13,84b.10,21,10 1,2,10,12,13,84c.21,10,10 1,9,12,13,8以上测试数据已满足路径覆盖,因此不需再用白

38、盒法设计测试数据。,综合测试策略实例(续),软件测试的步骤,测试步骤及策略 所有测试过程都应采用综合测试策略;即先作静态分析,再作动态测试。并事先制订测试计划。测试过程通常可分4步进行:,一、模块测试(Module Testing),1、测试内容,模块,模块接口测试,局部数据结构测试,重要路径测试,错误处理测试,边界条件测试,I/O 参数值的个数、类型、次序、格式是否正确,I/O文件属性、操作是否正确等。,数据说明是否正确、一致,变量及其初值定义是否正确等。,检查“错误处理程序”本身的错误。,边界条件常包括循环边界,最大最小值、控制流中等于、大于、小于的比较值等。,重要路径通常是指完成模块功能

39、的主要路径,一般是控制结构。,也称单元测试(unit testing ),2、模块测试步骤,考虑到被测模块与其它模块的联系,因此测试时 需要使用两类辅助模块来模拟其他模块。,驱动模块(driver) 模拟主程序功能,用于向被测模块传递数据,接收、打印从被测模块返回的数据。,桩模块(stub) 又称为假模块,用于模拟那些由被测模块所调用的下属模块功能。,一般,驱动模块比桩模块容易设计。但都是额外开销。测试方法以白盒法为主。,被测模块,驱动模块,桩模块,桩模块,桩模块,模块测试(续),驱动模块 驱动模块是模拟待测模块X的调用模块,其作用是将测试数据传送给待测模块X,并显示待测模块X的结果。,模块测

40、试(续),桩模块 桩模块的作用是模拟待测模块X的下层模块E。其作用是接受待测模块X的控制并模拟下层模块E的功能。, , ,待测模块,集成测试:,二、组装测试(Integration Testing),1、组装测试的任务确定模块组装方案,将经过测试的模块组装为一个完整的系统。组装方案分为渐增式及非渐增式。测试方法以黑盒法为主,按照组装方案进行测试。,也称为联合测试或集成测试,重点测试模块的接口部分,需设计测试过程使用的驱动模块或桩模块。,问题:渐增式与非渐增式各有何优、缺点?为什么通常采用渐增式?,组装测试(续),非渐增式: 先分别测试A、B、C、D、E、F,然后将六个模块连接起来再测试。渐增式(自底向上): 先并行测试E、C、F,然后测试B、D,最后测试A。,

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

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报