版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、7.6 白盒测试技术白盒测试技术白盒测试白盒测试的原则的原则对程序模块的所有对程序模块的所有独立独立执行路径执行路径至少测试一次至少测试一次对所有的对所有的逻辑判定逻辑判定取取“真真”与取与取“假假”的两种情况的两种情况都至少测试一次。都至少测试一次。 在在循环的边界和可操作范围循环的边界和可操作范围内内执行循环体执行循环体 测试测试内部数据结构内部数据结构的有效性,的有效性,完成边界条件的测试。完成边界条件的测试。循环小于等于20次迪杰斯特拉定律:迪杰斯特拉定律:穷尽测试永远不可能穷尽测试永远不可能执行路径:执行路径:5 52020个个如果如果1ms1ms完成一完成一个测试个测试近似为近似为
2、10101414个个需需31703170年年语句覆盖语句覆盖判定覆盖判定覆盖条件覆盖条件覆盖判定判定-条件覆盖条件覆盖条件组合覆盖条件组合覆盖路径覆盖路径覆盖设计测试用例,使被测程序中的设计测试用例,使被测程序中的每个每个可执行语句至少被执行一次可执行语句至少被执行一次int a, b; double c; if ( a 0 & b 0 ) c = c / a; if ( a 1 | c 1 ) c= c+1; c = b+c; c=b+cc=c/ac=c+1TTFFa 0 & b 0a 1 | c 1M=.T. 且且 N=.T. c=b+cc=c/ac=c+1TTFFa 0 & b 0a 1
3、 | c 1 c=b+cc=c/ac=c+1TTFFa 0 & b 0a 1 | c 1Case1:a=2, b=0, c=3用例abcCase1203Case2213此语句未覆盖此语句未覆盖 c=b+cc=c/ac=c+1TTFFa 0 & b 0a 1 | c 1用例abcCase1203Case2213Case2输入:a=2, b=1, c=3Case2输出:c=3.5如果如果M为:为:a 0 | b 0;N为:为:a 1&c 1,测试用例与测试结果有设么测试用例与测试结果有设么变化变化?Case2:a=2, b=1, c=3Case2输出:c=3.5语句覆盖是弱覆盖标准!语句覆盖是弱覆
4、盖标准!BugBug c=b+cc=c/ac=c+1TTFFa 0 | b 0a 1 & c 1设计测试用例,使被测程序中的设计测试用例,使被测程序中的每个判断的每个判断的取真分支和取假分支都被测试用例至少执行取真分支和取假分支都被测试用例至少执行一次一次int a, b; double c if ( a 0 & b 0 ) c = c / a; if ( a 1 | c 1 ) c= c+1; c = b+c; c=b+cc=c/ac=c+1TTFFa 0 & b 0a 1 | c 1 c=b+cc=c/ac=c+1TTFFa 0 & b 0a 1 | c 112345M=.T. 且且 N=
5、.T.M=.F. 且且 N=.F.设计测试用例及预期结果设计测试用例及预期结果No测试用例测试用例覆盖的判断分支覆盖的判断分支输出结果输出结果1a=2,b=1,c=3判断M取值为真分支和判断N取值为真分支c=3.52a= -2,b=1,c= -3判断M取值为假分支和判断N取值为假分支c=-2条件中的取值有被忽略的情况a=2,b=1,c=3a= -2,b=1,c= -3输出:输出:3.5 -2判定覆盖仍是弱覆判定覆盖仍是弱覆盖标准!盖标准! c=b+cc=c/ac=c+1TTFFa 0 & b 0a 1 | c 0 & b 0 ) c = c / a; if ( a 1 | c 1 ) c= c
6、+1; c = b+c; c=b+cc=c/ac=c+1TTFFa 0 & b 0a 1 | c 112345P1:1-2-4P2:1-2-5P3:1-3-4P4:1-3-5No测试用例测试用例覆盖的判断条件覆盖的判断条件通过路径通过路径1a=2,b= -1,c= -2T1,F2,T3,F4?2A=-1,b=2,c= 3F1,T2,F3,T4?对于判定对于判定M:l条件条件a0:取值为真为:取值为真为T1,取值为假为,取值为假为F1l条件条件b0:取值为真为:取值为真为T2,取值为假为,取值为假为F2对于判定对于判定N:l条件条件a1:取值为真为:取值为真为T3,取值为假为,取值为假为F3l条
7、件条件c1:取值为真为:取值为真为T4,取值为假为,取值为假为F4虽然覆盖了所有条件,但不能保证多个判定虽然覆盖了所有条件,但不能保证多个判定分支均被覆盖到分支均被覆盖到设计足够测试用例,使得判定中的所有条件可判定中的所有条件可能取值至少执行一次,同时,所有判定的可能能取值至少执行一次,同时,所有判定的可能结果至少执行一次。结果至少执行一次。判定-条件覆盖能同时满足判定判定、条件条件两种覆盖标准。int a, b; double c if ( a 0 & b 0 ) c = c / a; if ( a 1 | c 1 ) c= c+1; c = b+c; c=b+cc=c/ac=c+1TTFF
8、a 0 & b 0a 1 | c 112345No测试用例测试用例覆盖的判断分支覆盖的判断分支判定条件判定条件路径路径1a=2,b= 1,c= 3T1,T2,T3,T4条件M取值为真分支条件N取值为真分支P12a= -1,b= -2,c= -5F1,F2,F3,F4条件M取值为假分支条件N取值为假分支P4为了使被测程序得到充分测试,不仅每个条件需要被覆盖,而且每个条件的组合也应该被覆盖到。int a, b; double c1 if ( a 0 & b 0 )2 c = c / a;3 4 if ( a 1 | c 0 & b 0a 1 | c 0:取值为真为:取值为真为T1,取值为假为,取值
9、为假为F1l条件条件b0:取值为真为:取值为真为T2,取值为假为,取值为假为F2对于第二个判定条件:对于第二个判定条件:l条件条件a0:取值为真为:取值为真为T3,取值为假为,取值为假为F3l条件条件c1:取值为真为:取值为真为T4,取值为假为,取值为假为F4No覆盖条件组合覆盖条件组合判定取值判定取值1T1,T2判定M = T2T1,F2判定M = F3F1,T2判定M = F4F1,F2判定M = F5T3,T4判定N = T6T3,F4判定N= T7F3,T4判定N = T8F3,F4判定N = FNo覆盖组合覆盖组合覆盖条件覆盖条件测试用例测试用例路径路径11,5T1,T2,T3,T4
10、a=2,b= 1,c= 6P122,6F1,F2,T3,F4a= 2,b= -1,c=-2P333,7F1,T2,F3,T4a=-1,b= 2,c= 3P344,8F1,F2,F3,F4a=-1,b=-2,c=-3P4不能保证所有路径被覆盖到不能保证所有路径被覆盖到设计测试用例,来覆盖被测程序中的所有可能所有可能的执行路径的执行路径P1:1-2-4P2:1-2-5P3:1-3-4P4:1-3-5 c=b+cc=c/ac=c+1TTFFa 0 & b 0a 1 | c 112345No覆盖路径覆盖路径覆盖条件覆盖条件测试用例测试用例覆盖组合覆盖组合1P1T1,T2,T3,T4a=2,b= 1,c
11、= 61,52P2T1,T2,F3,F4a= 1,b= 1,c= -31,83P3F1,T2,F3,T4a= -1,b= 2,c= 33,74P4F1,F2,F3,F4A=-1,b=-2,c=-34,8不满足条件组合覆盖准则No测试用例测试用例覆盖路径覆盖路径覆盖条件覆盖条件覆盖组合覆盖组合1a=2,b= 1,c= 6P1T1,T2,T3,T41,52a= 1,b= 1,c=-3P2T1,T2,F3,F41,83a= 2,b= -1,c=-2P3T1,F2,T3,F42,64a= -1,b= 2,c= 3P3F1,T2,F3,T43,75A=-1,b=-2,c=-3P4F1,F2,F3,F44
12、,8发现错误发现错误的能力的能力标标 准准含含 义义(弱弱)语句覆盖语句覆盖每条语句至少执行一次每条语句至少执行一次(中中) 判定覆盖判定覆盖每一判定的每个分支至少执行一次每一判定的每个分支至少执行一次(中中) 条件覆盖条件覆盖每一判定中的每个条件,分别按每一判定中的每个条件,分别按“真真”、“假假”至少各执行一次至少各执行一次(强强) 判定判定/条件覆盖条件覆盖同时满足判定覆盖和条件覆盖的要求同时满足判定覆盖和条件覆盖的要求(强强) 条件组合覆盖条件组合覆盖求出判定中所有条件的各种可能组合求出判定中所有条件的各种可能组合值,每一可能的条件组合至少执行一次值,每一可能的条件组合至少执行一次覆盖
13、标准覆盖标准程序结构举例程序结构举例测试用例测试用例应满足的条件应满足的条件语句覆盖语句覆盖AB=.T.判定覆盖判定覆盖AB=.T.AB=.F.TFTF覆盖标准覆盖标准程序结构举例程序结构举例测试用例应测试用例应满足的条件满足的条件条件覆盖条件覆盖A=.T. A=.F.B=.T. B=.F.判定判定/条件条件覆盖覆盖AB=.T. , AB=.F.A=.T. A=.F. B=.T. B=.F.条件组合条件组合覆盖覆盖 A=.T. B=.T. A=.T. B=.F.A=.F. B=.TA=.F. B=.F.TFTFTF如果满足准则满足准则A的测试用例集一定满足准则的测试用例集一定满足准则B,那么我
14、们就认为准则A包含包含准则B。例如:判定覆盖准则包含语句覆盖准则语句覆盖语句覆盖判定覆盖判定覆盖条件覆盖条件覆盖判定判定/条件覆盖条件覆盖条件组合覆盖条件组合覆盖路径覆盖路径覆盖作业:为以下流程图所示的程序段设计一组测试用例,要求分作业:为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合条件覆盖、组合覆盖和路径覆盖。覆盖和路径覆盖。X8 & Y5X0 | Y0Z = 1Z = 2FTFTX16 | Y10Z =3FT基本路径:保证被测程序的每个基本路径:保证被测程序的每个可执行语句可执行语句至少被执行
15、一次的至少被执行一次的最小路径集最小路径集基本路径测试法通过以下4个步骤来实现绘制程序控制流图绘制程序控制流图分析环路复杂度分析环路复杂度导出基本可执行路径集导出基本可执行路径集 设计测试用例设计测试用例39流程图int a, b; double c; if ( a 0 & b 0 ) c = c / a; if ( a 1 | c 1 ) c= c+1; c = b+c; c=b+cc=c/ac=c+1TTFFa 0 & b 0a 1 | c 1 c=b+cc=c/ac=c+1TTFFa 0 & b 0a 1 | c 1环路复杂度环路复杂度又称又称圈复杂度圈复杂度或或复杂度复杂度程序逻辑复杂
16、性的程序逻辑复杂性的度量值度量值环路复杂度环路复杂度=基本路径数目基本路径数目经验表明,程序的可能存在的经验表明,程序的可能存在的BUGBUG数与环路复杂度数与环路复杂度有着很大的相关性。有着很大的相关性。计算程序环路复杂度计算程序环路复杂度V(G)123V(G)=区域数目区域数目V(G)=边的数目节点数目边的数目节点数目+2V(G)=判断节点数目判断节点数目+1 存在多个可行的基本路径集 其中一个可行的基本路径集包含如下基本路径ACEABCEABCDE程序流程图ACEDBID测试用例测试用例覆盖路径覆盖路径1a= -1,b=-2,c=-3ACE2a=1,b=1,c=-3ABCE3a=2,b=
17、1,c=6ABCDE123456879环路复杂度:环路复杂度:l方法1:4l方法2:11-9+2=4l方法3:3+1=4基本路径集:基本路径集: 1-9 1-2-3-4-6-8-1-9 1-2-3-5-6-8-1-91. 1-2-7-8-1-96354217环路复杂度:环路复杂度:l方法1:3l方法2:8-7+2=3l方法3:2+1=3基本路径集:基本路径集: 127 12346271. 12356273EDBACFG9187654210R1R5R4R3R2环路复杂度:环路复杂度:l方法1:5l方法2:10-7+2=5l方法3:4+1=3基本路径集:基本路径集: ADFG ADEFG ABEF
18、G1. ABCBEFG第六讲第六讲 黑盒测试技术黑盒测试技术引言引言本章将开始讲黑盒测试的基本概念与基本方法,介本章将开始讲黑盒测试的基本概念与基本方法,介绍等价类划分、边界值分析、决策表法、因果图法绍等价类划分、边界值分析、决策表法、因果图法等方法,并通过实例来介绍测试技术的应用。等方法,并通过实例来介绍测试技术的应用。一、黑盒测试概述一、黑盒测试概述功能测试、基于规格说明的测试、数据驱动测试依据依据设计规格书(设计规格书(Specification)需求文档(需求文档(Requirement)设计文档(设计文档(Design)软件输入输入黑盒测试不深入代码细节输出输出功能功能用锁须知用锁须
19、知特性描述:锁特性描述:锁金属制品,有一个用于上锁的钥匙孔,能够金属制品,有一个用于上锁的钥匙孔,能够插入钥匙,钥匙孔可以顺时针或逆时针旋转插入钥匙,钥匙孔可以顺时针或逆时针旋转特性描述:钥匙特性描述:钥匙 金属制品,可以和特定的钥匙孔匹配金属制品,可以和特定的钥匙孔匹配执行动作执行动作上锁时,插入钥匙并顺时针旋转上锁时,插入钥匙并顺时针旋转开锁时,插入钥匙并逆时针旋转开锁时,插入钥匙并逆时针旋转状态状态已上锁已上锁已开锁已开锁输入输入钥匙顺时针或逆时针旋转钥匙顺时针或逆时针旋转预期输出预期输出锁上锁上打开打开测试对象描述类比黑盒测试的内容不正确或遗漏了的功能正确地接受输入数据并产生正确地输出
20、界面出错和界面美观问题安装中的出现的问题初始化和终止错误问题操作逻辑问题通过测试通过测试(正面测试)(正面测试) 确认软件能做确认软件能做什么?什么?黑盒测试失败测试失败测试(负面测试)(负面测试)迫使出错!迫使出错!黑盒测试的两种基本思路黑盒测试的两种基本思路需求标识需求标识输入输入1输入输入2当前状态当前状态预期状态预期状态BR-01号码为号码为123-456的钥匙的钥匙顺时针旋转顺时针旋转开锁开锁上锁上锁BR-01号码为号码为123-456的钥匙的钥匙顺时针旋转顺时针旋转上锁上锁不变不变BR-02号码为号码为123-456的钥匙的钥匙逆时针旋转逆时针旋转开锁开锁不变不变BR-02号码为号
21、码为123-456的钥匙的钥匙逆时针旋转逆时针旋转上锁上锁开锁开锁BR-04发卡发卡顺时针旋转顺时针旋转上锁上锁不变不变 正面测试正面测试序号序号输入输入1输入输入2当前状态当前状态预期状态预期状态1某个其它锁的钥匙某个其它锁的钥匙顺时针旋转顺时针旋转上锁上锁上锁上锁2某个其它锁的钥匙某个其它锁的钥匙逆时针旋转逆时针旋转开锁开锁开锁开锁3铁丝铁丝逆时针旋转逆时针旋转开锁开锁开锁开锁4用石头打击用石头打击上锁上锁上锁上锁 负面测试负面测试等价类(等价类(Equivalence Class Partitioning,ECP )对于某个输入域的对于某个输入域的集合集合,如果用集合中的一个输,如果用集
22、合中的一个输入条件作为测试数据进行测试不能发现程序中的错误,入条件作为测试数据进行测试不能发现程序中的错误,那么使用集合中的其他输入条件进行测试也不可能发那么使用集合中的其他输入条件进行测试也不可能发现错误,对于检测程序中的错误来说,集合中每个输现错误,对于检测程序中的错误来说,集合中每个输入条件都是等价的,就称该集合中的条件为入条件都是等价的,就称该集合中的条件为等价类等价类。1. 概念概念二二 等价类划分法等价类划分法有效等价类有效等价类 是是合理的、有意义的合理的、有意义的输入数据所构成的集合输入数据所构成的集合验证验证预期的功能和性能的实现预期的功能和性能的实现无效等价类无效等价类 是
23、是不合理的,没有意义的不合理的,没有意义的输入数据构成的集合输入数据构成的集合 对无效数据的处理能力对无效数据的处理能力、如果输入条件规定了如果输入条件规定了取值范围取值范围,则可以,则可以划分一个有效等价类和两个无效等价类。划分一个有效等价类和两个无效等价类。2. 等价类的划分规则等价类的划分规则例:输入值是学生成绩,范围是例:输入值是学生成绩,范围是0100有效等价类:有效等价类:0成绩成绩100无效等价类:无效等价类:成绩成绩100、如果输入数据是如果输入数据是给定值或布尔值给定值或布尔值,则可以,则可以划分出一个有效等价类和一个无效等价类。划分出一个有效等价类和一个无效等价类。例:程序
24、输入条件例:程序输入条件x=10 有效等价类:有效等价类: x=10 无效等价类:无效等价类: x10程序输入性别:男程序输入性别:男 有效等价类:男有效等价类:男 无效等价类:女无效等价类:女、如果输入数据是一个数组(包括如果输入数据是一个数组(包括n个输个输入),且程序对不同输入值做不同处理,则入),且程序对不同输入值做不同处理,则有有n个有效等价类和一个无效等价类。个有效等价类和一个无效等价类。例:输入条件说明学历可为例:输入条件说明学历可为:专科、本科、硕士、专科、本科、硕士、博士四种之一博士四种之一有效等价类:有效等价类:专科、专科、本科、本科、硕士、硕士、博士博士无效等价类:无效等
25、价类:其它任何学历其它任何学历、如果输入数据必须遵循某种规则,可确如果输入数据必须遵循某种规则,可确定一个有效等价类(符合规则)和若干个无效定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则等价类(从不同角度违反规则)。例:校内电话号码拨外线为例:校内电话号码拨外线为9开头开头有效等价类:有效等价类: 9外线号码外线号码无效等价类:无效等价类:非非9开头外线号码开头外线号码 9非外线号码,非外线号码,3. 测试用例的设计步骤测试用例的设计步骤(1) 对对输入输入或或外部条件外部条件进行等价类划分,形成进行等价类划分,形成等价等价类表类表并编号;并编号;(2)设计用例,设计用例,
26、尽可能多地覆盖尚未覆盖的有效等尽可能多地覆盖尚未覆盖的有效等价类价类,重复;,重复;(3)设计新用例,设计新用例,只覆盖一个无效等价类只覆盖一个无效等价类,重复。,重复。思考:思考:3 3的顺序是否可以和的顺序是否可以和2 2颠倒?颠倒?例例1:报表日期:报表日期设某公司要打印20012005年的报表,其中报表日期为6位数字组成,其中,前4位为年份,后两位为月份。第一步:划分等价类、编号第一步:划分等价类、编号输入及输入及外部条件外部条件有效等价类有效等价类无效等价类无效等价类报表日期的报表日期的类型及长度类型及长度6位数字字符位数字字符有非数字字符有非数字字符 少于少于6个数字字符个数字字符
27、 多于多于6个数字字符个数字字符 年份范围年份范围在在20012005之间之间小于小于2001 大于大于2005 月份范围月份范围在在112之间之间小于小于1 大于大于12 第二步:为有效等价类设计测试用例第二步:为有效等价类设计测试用例对表中编号为的3个有效等价类用一个测试用例覆盖:测试数据测试数据期望结果期望结果覆盖范围覆盖范围200105输入有效输入有效等价类等价类第三步:为每一个无效等价类至少设计一个测试用例第三步:为每一个无效等价类至少设计一个测试用例测试数据测试数据期望结果期望结果覆盖范围覆盖范围001MAY输入无效输入无效等价类等价类20015输入无效输入无效等价类等价类2001
28、001输入无效输入无效等价类等价类200001输入无效输入无效等价类等价类200802输入无效输入无效等价类等价类200100输入无效输入无效等价类等价类200113输入无效输入无效等价类等价类本例的本例的1010个等价类至个等价类至少需要少需要8 8个测试用例个测试用例不能出现相同的测试用例不能出现相同的测试用例4. 等价类划分法的特点等价类划分法的特点 优点:较少的用例,较完整的覆盖。优点:较少的用例,较完整的覆盖。 缺点:缺点:u缺乏特殊用例的考虑缺乏特殊用例的考虑;u需要有深入的系统知识,才能合理的划分等价类。需要有深入的系统知识,才能合理的划分等价类。对考试系统“成绩查询模块”子模块
29、输入准考证号查询成绩行政专业准考证号码为:110001111215法律专业准考证号码为:210001212006财经专业准考证号码为:310001314015例例2:准考证号码:准考证号码例例:准考证号码的等价类划分准考证号码的等价类划分 有效等价类有效等价类: (1) 110001 111215 (2) 210001 212006 (3) 310001 314015 无效等价类无效等价类: (4) - 110000 (5) 111216 210000 (6) 212007 310000 (7) 314016 + 等价类的划分规则等价类的划分规则规则规则有效等价类个数有效等价类个数无效等价类个
30、数无效等价类个数范围范围12定值或布尔值定值或布尔值11数组数组n1规则规则1x四四 边界值分析法边界值分析法 Boundary Value Analysis,BVA 理论提出:理论提出:长期的测试工作经验表明,大量的错误是发生在长期的测试工作经验表明,大量的错误是发生在输入输入或或输出输出范围的范围的边界边界上,而不是发生在输入输出范围上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。以查出更多的错误。定义:定义:边界值分析法就是对边界值分析法就是对输入或输出的边界值输入或输出的边界值进行测试的进行测试的一种
31、黑盒测试方法。一种黑盒测试方法。通常边界值分析法是通常边界值分析法是作为对等价类划分法的补充作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。这种情况下,其测试用例来自等价类的边界。1. 常见的边界值常见的边界值1)对)对16-bit 的整数而言的整数而言 32767 和和 -32768 是边界是边界2)屏幕上光标在最左上、最右下位置)屏幕上光标在最左上、最右下位置3)报表的第一行和最后一行)报表的第一行和最后一行4)数组元素的第一个和最后一个)数组元素的第一个和最后一个5)循环的第)循环的第 0 次、第次、第 1 次和倒数第次和倒数第 2 次、最后一次次、最后一次边界值分析的
32、基础思想是在输入变量的取值区间边界值分析的基础思想是在输入变量的取值区间内取内取最小值、略高于最小值、正常值、略低于最大值最小值、略高于最小值、正常值、略低于最大值和最大值和最大值5个值。个值。边界值分析边界值分析健壮性健壮性边界值分析边界值分析2. 用例设计思想用例设计思想例例1:一个输入年份的输入框,一个输入年份的输入框,其其限制条件是限制条件是1900年至年至2012年,那么年,那么选择测试用例为:选择测试用例为: 1900,1901,1950,2011,2012 1899,1900,1901,1950,2011,2012,2013 例例2:银行银行取取款机,款机,取款取款金额是金额是1
33、00 10000,提款,提款的颗粒度为的颗粒度为100元,那么元,那么选择测试用例为:选择测试用例为:0,100,200,5000,9900,10000,101003. 选择测试用例技巧选择测试用例技巧 (1)输入条件:范围输入条件:范围刚刚达到刚刚达到这个范围的边界的值,以及这个范围的边界的值,以及刚刚超越刚刚超越这这个范围边界的值个范围边界的值例如:如果程序的规格说明中规定:例如:如果程序的规格说明中规定:“重量在重量在10公斤公斤至至50公斤范围内的邮件,其邮费计算公式为公斤范围内的邮件,其邮费计算公式为”。测试用例测试用例:9.99,10 ,10.01,25,49.99, 50,50.
34、01(2)输入条件:值的个数输入条件:值的个数最大个数最大个数,最小个数,比最小个数少一,比最大个最小个数,比最小个数少一,比最大个数多一数多一例如:一个输入文件应包括例如:一个输入文件应包括1255个记录个记录则测试用:则测试用:0,1,122,255,256等。等。(3)(1)、()、(2)应用于输出条件)应用于输出条件例如:某程序的规格说明要求计算出例如:某程序的规格说明要求计算出“每月保险金扣每月保险金扣除额为除额为0至至1165.25元元”测试用例选取应能使计算结果为测试用例选取应能使计算结果为0.00和和1165.25、以及、以及-0.01及及1165.26等。等。例如:检索系统程
35、序,要求每次例如:检索系统程序,要求每次“最少显示最少显示1条、最多条、最多显示显示4条检索信息条检索信息测试用例应能使输出结果为:测试用例应能使输出结果为:1,4,还应包括,还应包括0,5等。等。 (4)输入、输出域是)输入、输出域是有序集合有序集合集合的第一个元素和最后一个元素集合的第一个元素和最后一个元素(5)内部数据结构内部数据结构内部数据结构的边界上的值内部数据结构的边界上的值(6)分析规格说明,找出其它可能的边界条件)分析规格说明,找出其它可能的边界条件(7)正常值正常值接近取值范围中间值接近取值范围中间值即可即可例:例:“输入输入3个值,输出三角形的类型个值,输出三角形的类型”测
36、试用例:测试用例:测试用例测试用例a ab bc c预期输出预期输出Test1Test1Test2Test2Test3Test3Test4Test4Test5Test560606060606050505050606060606060505050501 12 260609999100100等腰三角形等腰三角形等腰三角形等腰三角形等边三角形等边三角形等腰三角形等腰三角形非三角形非三角形Test6Test6Test7Test7Test8Test8Test9Test960606060505050501 12 299991001006060606050505050等腰三角形等腰三角形等腰三角形等腰三角形
37、等腰三角形等腰三角形非三角形非三角形Test10Test10Test11Test11Test12Test12Test13Test131 12 2999910010060606060505050506060606050505050等腰三角形等腰三角形等腰三角形等腰三角形等腰三角形等腰三角形非三角形非三角形边界值是特殊的等价类边界值是特殊的等价类 边界值分析不仅考虑输入,还要考虑输出。边界值分析不仅考虑输入,还要考虑输出。4. 边界值与等价类的区别边界值与等价类的区别5. 边界值的弱点边界值的弱点 “单缺陷单缺陷”假设假设:即由于缺陷导致的程序失效极少是即由于缺陷导致的程序失效极少是由两个(或多个
38、)缺陷的同时作用引起。由两个(或多个)缺陷的同时作用引起。 程序程序输入是输入是多个独立的变量,多个独立的变量,比较比较适合边界值适合边界值 变量之间相互影响时,变量之间相互影响时,效果不好效果不好(人的身高体重人的身高体重) 边界值分析与等价类划分效果与测试人员的经验密边界值分析与等价类划分效果与测试人员的经验密切相关。切相关。组合分析法组合分析法 考虑思想:错误的主要来源来自于各种因素的组合,考虑思想:错误的主要来源来自于各种因素的组合,而非一个因素。而非一个因素。 优点:实现成本低、维护成本低、容易自动化、错优点:实现成本低、维护成本低、容易自动化、错误发现效率高、测试方式灵活。误发现效
39、率高、测试方式灵活。作业:作业:1.阅读伪代码,完成下列任阅读伪代码,完成下列任务务(1)画出程序流程图、盒图。)画出程序流程图、盒图。(2)按照不同的覆盖准则,)按照不同的覆盖准则,确定测试用例的数量,并确定测试用例的数量,并设计测试用例。设计测试用例。语句覆盖语句覆盖判定覆盖判定覆盖条件覆盖条件覆盖路径覆盖路径覆盖(3)画出控制流图,用基本)画出控制流图,用基本路径法设计测试用例。路径法设计测试用例。If X8 and Y5 thenif X16 or Y10 thenZ=3endifElseIf X0 or Y0 thenZ=2ElseZ=1endifendif2.用边界值法设计以下函数
40、的测试用例。用边界值法设计以下函数的测试用例。(1)y=ABS(x);(;(2)y=sin(x)3.用等价类划分法测试成绩输入文本框设计测试用例。用等价类划分法测试成绩输入文本框设计测试用例。(1)百分制;()百分制;(2)五级制。)五级制。4.需要测试学号输入文本框,学号结构为需要测试学号输入文本框,学号结构为8位数字字位数字字符组成,前两位是年代后两位,符组成,前两位是年代后两位,3、4两位是专业编号两位是专业编号(1-50),),5、6位为班级编号(位为班级编号(1-20),),7、8位为位为50以内的流水号。以内的流水号。作业:作业:1.为以下流程图所示的程序段设计一组测试用例,为以下
41、流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖和路径覆盖要求分别满足语句覆盖、判定覆盖、条件覆盖和路径覆盖设计测试用例。设计测试用例。2.用基本路径法设计测试用例。用基本路径法设计测试用例。X8 & Y5X0 | Y0Z = 1Z = 2FTFTX16 | Y10Z =3FT划分等价类、编号划分等价类、编号输入及输入及外部条件外部条件有效等价类有效等价类无效等价类无效等价类类型及长度类型及长度8位数字字符位数字字符有非数字字符有非数字字符 少于少于8个数字字符个数字字符 多于多于8个数字字符个数字字符 年份范围年份范围在在0099之间之间小于小于0 、大于、大于9
42、9专业编号范围专业编号范围在在0175之间之间小于小于01 、大于、大于75 班级编号范围班级编号范围在在0120之间之间小于小于01 、大于、大于20 流水编号范围流水编号范围在在0150之间之间小于小于01 、大于、大于50 编号编号测试数据测试数据期望结果期望结果114010101输入有效输入有效2141121310输入无效输入无效34567 判定表又称判定表又称决策表决策表 定义:把输入条件各种组合以及对应输出值都罗列定义:把输入条件各种组合以及对应输出值都罗列出来而形成的表格。出来而形成的表格。 是一个典型的是一个典型的组合分析组合分析方法方法 把问题的各种可能都列举出来,简明且不会
43、遗漏。把问题的各种可能都列举出来,简明且不会遗漏。 是最严格,最具有逻辑性的黑盒测试方法。是最严格,最具有逻辑性的黑盒测试方法。五五 判定表方法(判定表方法(Decision Table ) 条件桩条件桩 条件项条件项 动作桩动作桩 动作项动作项判定表的结构判定表的结构1. 基本概念基本概念 电力公司将用户分为两类: 单费率单费率用户:实行单一电价单一电价 复费率复费率用户:在规定时间规定时间内实行优惠电价优惠电价,在其他时间内实行普通电价普通电价条件桩条件桩单费率单费率复费率复费率规定期规定期动作桩动作桩单一电价单一电价优惠电价优惠电价普通电价普通电价1.单费率:单一电价2.复费率+在规定时
44、间:优惠电价3.复费率+不在规定的时间:普通电价 规 则条件桩:问题的所有条件动作桩:所有可能采取的操作规则:一个条件组合的取值及其执行的操作 条件桩条件桩 条件项条件项 动作桩动作桩 动作项动作项 动作:通常使用“0”和“1”表示不执行动作和执行动作 条件:通常使用“0”和“1”表示条件不满足和条件满足判定表的结构判定表的结构规则规则条件条件123单费率用户100复费率用户011规定期内010动作按单一电价收100按优惠电价收010按普通电价收001条件桩条件桩动作桩动作桩规规则则1规规则则2规规则则3行动项:在条件条目下采取的动作或操作在判定表中贯在判定表中贯穿条件项和动穿条件项和动作项的
45、作项的一列就一列就是一个规则是一个规则条件项:条件桩的所有可能取值,“真”、“假”或其它。测试用例集测试用例集ID输入条件输入条件预期结果预期结果1单费率用户按单一电价收2复费率用户,在规定期内按优惠电价收3复费率用户,不在规定期内按普通电价收条件条件12345单费率用户10011复费率用户01110规定期内01010动作按单一电价收100按优惠电价收010按普通电价收001(1)判定表中条件的组合方式有多少,就有多少条规则,就有多少列,每列对应一个测试用例。(2)如果条件都是二叉条件二叉条件,称为有限条目有限条目判定判定表表。如果条件有多个值,甚至对应于变量的等价类,称为扩展条目扩展条目判定
46、判定表表。如条件“ATM交易类型”,可以取“存款”、“查询”和“取款”三种值。(3)由于判定表是机械地强制完备的,因此具有测具有测试用例的完整性。试用例的完整性。2. 判定表的特点判定表的特点输入输入输出输出输入的等价类输入的等价类功能处理功能处理条件条件动作动作规则规则测试用例测试用例3. 判定表的应用判定表的应用条件条件动作动作规则规则测试用例测试用例构造判定表可采用以下5个步骤:(1)列出条件桩和动作桩。(2)确定规则的个数。(3)填入条件项。(4)填入动作项,得到初始判定表。(5)简化判定表,合并相似规则。4判定表的构造及化简判定表的构造及化简 判定表的化简判定表的化简对于n个条件的判
47、定表,相应有2n个规则(每个条件分别取真、假值)。判定表的化简是以合并相似规则为目标判定表的化简是以合并相似规则为目标若表中有两条以上规则具有相同的动作相同的动作,并且在条并且在条件项之间存在极为相似的关系,便可以合并件项之间存在极为相似的关系,便可以合并。例题:打印机能否打印出正确的内容有多个影响因素,包括驱动程序、纸张、墨粉驱动程序、纸张、墨粉等,打印机会自动提示:驱动是否正确、驱动是否正确、提示没有纸张、提示没有墨粉提示没有纸张、提示没有墨粉,根据这些信息决定决定是否打印打印内容内容,请设计出影响条件与动作的判定表并化简。(为了简化问题,不考虑中途断电、卡纸等因素;假定优先警告缺纸,然后
48、警告没有墨粉,最后警告驱动程序不正确。)条件桩条件桩驱动是否正确驱动是否正确是否有纸张是否有纸张是否有墨粉是否有墨粉1 1规则数:规则数:8 8动作桩动作桩打印内容打印内容提示驱动不正确提示驱动不正确提示缺纸提示缺纸提示缺粉提示缺粉2 2 序号序号12345678条条件件驱动是否正确驱动是否正确10110010是否有纸张是否有纸张11010100是否有墨粉是否有墨粉11101000动动作作打印内容打印内容10000000提示驱动不正确提示驱动不正确01000000提示没有纸张提示没有纸张00101011提示没有墨粉提示没有墨粉00010100序号序号124/63/7/8条条件件驱动是否正确驱动
49、是否正确101是否有纸张是否有纸张1110是否有墨粉是否有墨粉1100动动作作打印内容打印内容1000提示驱动不正确提示驱动不正确0100提示没有纸张提示没有纸张0001提示没有墨粉提示没有墨粉0010构构造造判判定定表表简简化化判判定定表表例题:某商场举行一次假日商品促销活动。在活动期间,对持会员卡持会员卡的顾客,实行实行8.5折优惠折优惠,满1000元实行7折优惠折优惠;对其他顾客,消费满消费满1000元元的,实行9折优惠,并免费办理会员折优惠,并免费办理会员卡卡。请给出相应的判定表及测试用例集。持卡不持卡满1000不满满1000不满条件桩条件桩持卡会员持卡会员消费满消费满10001 1动
50、作桩动作桩8.5折折7折折9折折+办卡办卡其它其它2 2规则:规则:4 4判定表判定表规规 则则1234条条件件持商场会员卡持商场会员卡1100消费满消费满1000元元0110动动作作实行实行8.5折优惠折优惠1000实行实行7折优惠折优惠0100实行实行9折优惠并免费折优惠并免费办理会员卡办理会员卡0010其他其他0001测试用例集测试用例集ID输入条件输入条件预期结果预期结果1持商场会员卡,消费不满1000元实行8.5折优惠2持商场会员卡,消费满1000元实行7折优惠3不持商场会员卡,消费满1000元实行9折优惠并免费办理会员卡4不持商场会员卡,消费不满1000元其他什么是因果关系?什么是
51、因果关系?拿破仑说:六、因果图方法六、因果图方法“失一个钉子钉子,坏了一只蹄铁; 坏了一只蹄铁,折了一匹战马; 折了一匹战马,伤了一位骑士;伤了一位骑士,输了一场战斗;输了一场战斗,亡了一个帝国帝国。” 这就是因果关系 因果图方法(Cause-effect Diagram)是借助图形,分析输入条件的各种组合,每种组合是“因”,必然有一个输出为“果”。因果图方法最终生成判定表最终生成判定表,适用检查程序输入条件的各种组合情况。 因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。1. 因果图因果图ci表示原因,通常置于图的左部;ei表
52、示结果,通常在图的右部。ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。c1c1e1e1恒等c1c1e1e1非恒等:若ci是1,则ei也是1;否则ei为0。非:若ci是1,则ei是0;否则ei是1。c2c2e1e1或 orc1c1c3c3c2c2e1e1与 andc1c1c3c3或:若c1或c2或c3是1,则ei是1;否则ei为0。“或”可有任意个输入。与:若c1、c2 和c2都是1,则ei为1;否则ei为0。“与”也可有任意个输入。因果图因果图a1a1a2a2e1e1恒等1100非1001或111101011000与1111000100002、状态约束、状态约束状态相互之间存
53、在依赖关系,称为约束。输入/输出状态之间都存在约束。在因果图中,用特定的符号标明这些约束。 (1)输入条件之间的约束有以下4类: E约束(异):A 、B至多有一个为至多有一个为1,即A和B不能同时为1。 I约束(或):A、B至少有一个必须是至少有一个必须是1,即 A、B不能同时为0。 ABEABI异异或或O约束(唯一);A、B中有且仅有有且仅有1个个为1。R约束(要求):A是1时,B必须是1,即A、B必须相同。ABOABR唯一唯一要求要求(2)输出条件约束类型输出条件的约束只有M约束(强制):若结果E是1,则结果F强制为1。EFM强制强制约束条件约束条件A AB BE异至多有1个1100100
54、I或至少有1个1111001O唯一有且仅有1个10110R要求-M强制-3. 利用因果图生成测试用例的步骤利用因果图生成测试用例的步骤 分分 析析分析软件规格说明,找出找出原因原因(输入条件或输入条件的等价类)与结果与结果(输出条件),并给每个原因和结果赋予一个标识符标识符。找出原因与结果、原因与原因之间对应的关系对应的关系,画出因果图。分分 析析关关 联联原因与原因原因与原因之间,原原因与结果因与结果之间的组合有不可能出现的情况,找出这些约束或限制条件。3. 利用因果图生成测试用例的步骤利用因果图生成测试用例的步骤 分分 析析转转 换换关关 联联因果图转换为判定表。3. 利用因果图生成测试用
55、例的步骤利用因果图生成测试用例的步骤 分分 析析转转 换换输输 出出关关 联联判定表的每一列转化成一个测试用例。3. 利用因果图生成测试用例的步骤利用因果图生成测试用例的步骤 例1: 某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。请画出因果图,生成判定表和测试用例。原因:原因:1第一列字符是第一列字符是A;2第一列字符是第一列字符是B;3第二列字符是一数字。第二列字符是一数字。结果:结果:21修改文件;修改文件;22给出信息给出信息L;23给出信息给出信息M
56、。1、分析、分析对应的因果图对应的因果图其对应的因果图如下:11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束,如图所示。11122212323VVE根据因果图建立判定表根据因果图建立判定表 12345678原因|条件11111000021100110031010101011111100动作|结果220000112110100023010101把判定表的每一列拿出来作为依据,设计测试用例把判定表的每一列拿出来作为依据,设计测试用例 12345678原因|条件11111000021100110031010101011111100动作|结果2200001121101000
57、23010101测试用例A6AaB9BPC5HYA0AB1B*H4E%4、使用因果图法的优点、使用因果图法的优点1)充分考虑了输入的各种组合以及它们之间的相互各种组合以及它们之间的相互制约关系制约关系。2)可以帮助测试人员按照一定的步骤,高效率的开高效率的开发测试用例发测试用例。3)因果图法将自然语言规格说明转化成形式语言规形式语言规格说明格说明的一种方法,可以找出规格说明存在的不不完整性和二义性完整性和二义性。案例分析案例分析有一个处理单价为1元5角的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”,“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退
58、还5角硬币。原因C1:投入1元5角硬币C2:投入2元硬币C3:按“可乐”按钮C4:按“雪碧”按钮C5:按“红茶”按钮中间状态11:已投币12:已按钮结果E1:退还5角硬币E2:送出“可乐”饮料E3:送出“雪碧”饮料E4:送出“红茶”饮料(1)分析)分析 (2)因果图)因果图(3)判定表)判定表1 12 23 34 45 56 67 78 89 910101111C1:投入1元5角硬币C2:投入2元硬币C3:按“可乐”按钮C4:按“雪碧”按钮C5:按“红茶”按钮101001001010001100000110001010010010100000100000100000111:已投币12:已按钮1
59、111111011111110010101E1:退还5角硬币E2:送出“可乐”饮料E3:送出“雪碧”饮料E4:送出“红茶”饮料01000010000100001100101010010000000000000000(4)设计测试用例)设计测试用例用例用例编号编号测试用例测试用例预期输出预期输出1投入1元5角,按“可乐” 送出“可乐”饮料2投入1元5角,按“雪碧” 送出“雪碧”饮料3投入1元5角,按“红茶” 送出“红茶”饮料4投入2元,按“可乐”找5角,送出“可乐”5投入2元,按“雪碧”找5角,送出“雪碧”6投入2元,按“红茶”找5角,送出“红茶”案例分析案例分析中国象棋中走马的测试用例设计为例学习因果图的使用方法(下面未注明的均指的是对马的说明)一、一、 分析中国象棋中走马的实际情况分析中国象棋中走马的实际情况如果落点在棋盘外,则不移动棋子;如果落点与起点不构成日字型,则不移动棋子;如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;如果不属于1-3条, 落点处有己方棋子,则不移动棋子;如果不属于1-3条, 落点处无棋子,则移动棋子;如果不属于1-3条, 落点处为对方棋子(非老将),则移动棋子并除去对方棋子
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年长城保护修缮技术规范考核试卷
- 2025年建筑电工职业技能竞赛霍尔传感器安装与调试考核试卷
- 2025年新能源行业储能系统钠电池虚拟电厂协同优化考核试卷
- 2025年职业院校教师招聘《实训教学管理》行业实践管理考核试卷
- 2025年甘肃省天水市清水县黄门中心卫生院招聘编外工作人员考试笔试备考题库及答案解析
- 2025上海勘测设计研究院有限公司社会招聘2人(第二批)考试笔试参考题库附答案解析
- 2025上海交通大学医学院附属新华医院招聘50人(二)考试笔试模拟试题及答案解析
- 2025云南东骏药业集团招聘考试笔试参考题库附答案解析
- 2025年沛县卫生健康委员会公开招聘编制卫生专业技术人员26人笔试考试备考试题及答案解析
- 2025年湖南岳阳华容县县直机关事业单位选调15人考试笔试备考试题及答案解析
- 2026年日历表全年表(含农历、周数、节假日及调休-A4纸可直接打印)-
- 2025年湖南铁路科技职业技术学院单招职业适应性测试题库完美版
- 南京理工大学紫金学院《机器学习》2023-2024学年第二学期期末试卷
- 护士长如何做好科室人员培训
- 宏观经济学(河海大学)知到智慧树章节测试课后答案2024年秋河海大学
- 2025年01月中国科学院上海生命科学研究院分子细胞卓越中心王露组公开招聘科研助理/助研/副研3人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 《古玩鉴赏课程》课件
- 苏教版四年级上册数学直线、射线和角的认识省公开课获奖课件市赛课比赛一等奖课件
- 私人住宅自建房房屋施工承包合同
- 尿常规课件教学课件
- 3.1 贯彻新发展理念 课件高中政治统编版必修二经济与社会-1
评论
0/150
提交评论