
测试用例设计(V1.1).ppt
36页中讯汉扬科技发展有限公司测试培训-测试用例设计部分质量管理部质量管理部 Monday, August 19, 2024Monday, August 19, 20241测试用例设计培训重要目标测试用例设计培训重要目标o白盒测试白盒测试o黑盒测试黑盒测试o白盒测试用例设计方法白盒测试用例设计方法o黑盒测试用例设计方法黑盒测试用例设计方法2内内 容容q测试用例设计概述测试用例设计概述q测试用例设计方法测试用例设计方法q实例实例3o测试方法:白盒测试和黑盒测试测试方法:白盒测试和黑盒测试o白盒测试:测试证明每种内部操作和过程是否符合设计规格和要求白盒测试:测试证明每种内部操作和过程是否符合设计规格和要求oo黑盒测试:测试证明每个实现了的功能是否符合功能设计规格的要求黑盒测试:测试证明每个实现了的功能是否符合功能设计规格的要求黑盒测试:测试证明每个实现了的功能是否符合功能设计规格的要求黑盒测试:测试证明每个实现了的功能是否符合功能设计规格的要求 o测试用例:所谓测试用例就是由测试中经过的一系列状态和在每个状测试用例:所谓测试用例就是由测试中经过的一系列状态和在每个状态中必须依靠输入态中必须依靠输入/ /输出数据满足的一对条件组成。
输出数据满足的一对条件组成o测试用例设计方法:测试用例设计方法随着测试方法测试用例设计方法:测试用例设计方法随着测试方法( (测试策略测试策略) )的不的不同而不同同而不同测试用例设计概述测试用例设计概述————概念概念4o由于在实际中,由于在实际中, 对一个具有多重选择和循环嵌套的程序,不同的路对一个具有多重选择和循环嵌套的程序,不同的路径数目可能是天文数字径数目可能是天文数字 因此采用穷举测试方法不可行因此采用穷举测试方法不可行o为了能从数量极大的可用测试用例中挑选少量的测试数据,使得采用为了能从数量极大的可用测试用例中挑选少量的测试数据,使得采用这些测试数据(用例)能够达到最佳的测试效果,或者说采用这些测这些测试数据(用例)能够达到最佳的测试效果,或者说采用这些测试用例能够高效率地把隐藏的错误挖掘出来,必须精心设计测试用例试用例能够高效率地把隐藏的错误挖掘出来,必须精心设计测试用例o软件测试中的致命缺陷就是测试的不完全和不彻底性采用有效合理软件测试中的致命缺陷就是测试的不完全和不彻底性采用有效合理的测试用例设计方法,将会尽可能的避免该缺陷的测试用例设计方法,将会尽可能的避免该缺陷。
测试用例设计概述测试用例设计概述————重要性重要性5o测试用例可行性高测试用例可行性高o在有限的时间内能够发现尽可能多的缺陷在有限的时间内能够发现尽可能多的缺陷. .o在有限的时间内实现了测试的目标在有限的时间内实现了测试的目标. .测试用例设计概述测试用例设计概述————如何评价有效的测试例如何评价有效的测试例6内内 容容q测试用例设计概述测试用例设计概述q测试用例设计方法测试用例设计方法q实例实例7o白盒测试用例设计方法白盒测试用例设计方法 n逻辑覆盖逻辑覆盖o语句覆盖语句覆盖o判定覆盖判定覆盖o判定判定- -条件覆盖条件覆盖o条件组合覆盖条件组合覆盖o路径覆盖路径覆盖n基本路径测试基本路径测试 o黑盒测试用例设计方法黑盒测试用例设计方法n等价类等价类n边界值边界值n正交排列正交排列 测试用例设计方法测试用例设计方法8o语句覆盖就是设计若干个测试用例,语句覆盖就是设计若干个测试用例, 运行所测程序,使得每一可执运行所测程序,使得每一可执行语句至少执行一次行语句至少执行一次o判定覆盖就是设计若干个测试用例,判定覆盖就是设计若干个测试用例, 运行所测程序,运行所测程序, 使得程序中每使得程序中每个判断的取个判断的取TURETURE分支和取分支和取FALSEFALSE分支至少经历一次。
分支至少经历一次 判断覆盖又称分判断覆盖又称分支覆盖 白盒测试用例设计白盒测试用例设计————逻辑覆盖逻辑覆盖9o判定判定- -条件覆盖就是设计足够的测试用例,使得判断中每个条件的所条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行一次 也就是说要求各个判断的所有可能的条件取值组合至少执也就是说要求各个判断的所有可能的条件取值组合至少执行一次 o条件组合覆盖就是设计足够得测试用例,条件组合覆盖就是设计足够得测试用例, 运行所测程序,运行所测程序, 使得每个使得每个判断得所有可能得条件取值组合至少执行一次判断得所有可能得条件取值组合至少执行一次o路径测试就是设计足够的测试用例,路径测试就是设计足够的测试用例, 覆盖程序中所有可能的路径覆盖程序中所有可能的路径 白盒测试用例设计白盒测试用例设计————逻辑覆盖逻辑覆盖10o是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
然后从每一个子集中选取少数具有代表性的数据作为测试用例 o 等价类是指某个输入域的子集合在该子集合中,各个输入数据对等价类是指某个输入域的子集合在该子集合中,各个输入数据对于揭露程序中的错误都是等效的并合理地假定:测试某等价类的代于揭露程序中的错误都是等效的并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试因此,可以把全部输入数据合理表值就等于对这一类其它值的测试因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据取得较好的测试结果件,就可以用少量代表性的测试数据取得较好的测试结果 黑盒测试用例设计黑盒测试用例设计————等价类(定义)等价类(定义)11o等价类划分可有两种不同的情况:有效等价类和无效等价类等价类划分可有两种不同的情况:有效等价类和无效等价类 n有效等价类:是指对于程序的规格说明来说是合理的,有意义有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合利用有效等价类可检验程序是否实现的输入数据构成的集合利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
了规格说明中所规定的功能和性能 n无效等价类:与有效等价类的定义恰巧相反无效等价类:与有效等价类的定义恰巧相反 黑盒测试用例设计黑盒测试用例设计————等价类(定义)等价类(定义)12o在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类效等价类和两个无效等价类o在输入条件规定了输入值的集合或者规定了在输入条件规定了输入值的集合或者规定了““必须如何必须如何””的条件的情的条件的情况下,可确立一个有效等价类和一个无效等价类况下,可确立一个有效等价类和一个无效等价类o在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类效等价类o在规定了输入数据的一组值(假定在规定了输入数据的一组值(假定n n个),并且程序要对每一个输入个),并且程序要对每一个输入值分别处理的情况下,可确立值分别处理的情况下,可确立n n个有效等价类和一个无效等价类个有效等价类和一个无效等价类o在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
符合规则)和若干个无效等价类(从不同角度违反规则)o在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类则应再将该等价类进一步的划分为更小的等价类 黑盒测试用例设计黑盒测试用例设计————等价类(方法)等价类(方法)13o为每一个等价类规定一个唯一的编号为每一个等价类规定一个唯一的编号o设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步直到所有的有效等价类都被覆盖为止类,重复这一步直到所有的有效等价类都被覆盖为止o设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步直到所有的无效等价类都被覆盖为止重复这一步直到所有的无效等价类都被覆盖为止 黑盒测试用例设计黑盒测试用例设计————等价类(设计)等价类(设计)14o使用边界值分析方法设计测试用例,首先应确定边界情况通常输入使用边界值分析方法设计测试用例,首先应确定边界情况。
通常输入和输出等价类的边界,就是应着重测试的边界情况应当选取正好等和输出等价类的边界,就是应着重测试的边界情况应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据中的典型值或任意值作为测试数据 黑盒测试用例设计黑盒测试用例设计————边界值(方法)边界值(方法)15o如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据以及刚刚超越这个范围边界的值作为测试输入数据o如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据数少一,比最大个数多一的数作为测试数据o如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例合的第一个元素和最后一个元素作为测试用例o如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
的边界上的值作为测试用例o分析规格说明,找出其它可能的边界条件分析规格说明,找出其它可能的边界条件 黑盒测试用例设计黑盒测试用例设计————边界值(方法)边界值(方法)16o比穷举法、正态分布法简单易懂;比穷举法、正态分布法简单易懂;o是一种半自动化设计测试例的方法,大大减少了设计测试例的工作量;是一种半自动化设计测试例的方法,大大减少了设计测试例的工作量;o有助于测试人员分析被测对象的属性及属性取值;有助于测试人员分析被测对象的属性及属性取值;o确保每个属性值都被取到,保证了测试的全面性;确保每个属性值都被取到,保证了测试的全面性;o已最少个数的测试例,覆盖最多的路径和功能点已最少个数的测试例,覆盖最多的路径和功能点 黑盒测试用例设计黑盒测试用例设计————直角排列法直角排列法17o第一步:理清被测对象;第一步:理清被测对象;o第二步:被测对象的属性;第二步:被测对象的属性;o第三步:各属性的取值;第三步:各属性的取值;o第四步:利用直角矩阵选择器,确定测试例个数;第四步:利用直角矩阵选择器,确定测试例个数;o第五步:删选优化测试例第五步:删选优化测试例 黑盒测试用例设计黑盒测试用例设计————直角排列法(步骤)直角排列法(步骤)18o各类技术文档作为测试用例设计的依据各类技术文档作为测试用例设计的依据o分析被测对象的规格分析被测对象的规格o分析测试要素分析测试要素o分析测试要素取值分析测试要素取值o构建初始测试用例构建初始测试用例o通过评审或其他方式确认测试用例通过评审或其他方式确认测试用例o在测试实现和执行的过程中修正测试用例在测试实现和执行的过程中修正测试用例. .黑盒测试用例设计黑盒测试用例设计————测试用例设计步骤测试用例设计步骤19内内 容容q测试用例设计概述测试用例设计概述q测试用例设计方法测试用例设计方法q实例实例20§一个程序模块一个程序模块实例实例————白盒测试用例设计实例白盒测试用例设计实例21o从上图可知该程序模块有从上图可知该程序模块有4 4条不同的路径。
条不同的路径 4 4 个可执行语句个可执行语句 这这4 4 条路径可分别表示为:条路径可分别表示为:oL1(a→c→e)L1(a→c→e),, 简化为:简化为: aceaceoL2(a→b→d)L2(a→b→d),, 简化为:简化为: abdabdoL3(a→b→e)L3(a→b→e),, 简化为:简化为: abeabeoL4(a→c→d)L4(a→c→d),, 简化为:简化为: acdacdo测试用例的设计格式如下:测试用例的设计格式如下:o[ [输入的输入的(A(A,,B B,,x)x),, 输出的输出的(A(A,,B B,,x)]x)] 实例实例————白盒测试用例设计实例白盒测试用例设计实例22o[(2[(2,,0 0,,4)4),, (2(2,,0 0,,3)]3)],, 覆盖覆盖ace [L1] ace [L1] o假如该程序段中的两个逻辑运算有问题,假如该程序段中的两个逻辑运算有问题, 例如,例如, 第一个判断中的逻第一个判断中的逻辑运算符辑运算符"∧""∧"错写成了错写成了"∨""∨",, 或者第二个判断中的逻辑运算符或者第二个判断中的逻辑运算符"∨""∨"错写成了错写成了"∧""∧",, 利用上面的测试用例,利用上面的测试用例, 仍然可覆盖所有仍然可覆盖所有4 4个可执行个可执行语句。
语句 这说明虽然做到了语句覆盖测试,这说明虽然做到了语句覆盖测试, 但可能发现不了判断中逻但可能发现不了判断中逻辑运算中出现的错误辑运算中出现的错误 o语句覆盖是最弱的逻辑覆盖准则语句覆盖是最弱的逻辑覆盖准则 实例实例————语句覆盖语句覆盖23o[(2[(2,,0 0,,4)4),, (2(2,,0 0,,3)]3)],, 覆盖覆盖ace[L1]ace[L1]o[(1[(1,,1 1,,1)1),, (1(1,,1 1,,1)]1)],, 覆盖覆盖abd[L2]abd[L2]o假如第二个判断中的条件假如第二个判断中的条件x>1x>1被错写成了被错写成了x<1x<1,, 利用上面两组测试用利用上面两组测试用例,例, 仍能得到同样的结果仍能得到同样的结果 实例实例————判定覆盖判定覆盖24实例实例————黑盒测试用例设计实例黑盒测试用例设计实例o对某一应用系统的转账功能进行测试对某一应用系统的转账功能进行测试 o分析:分析:n被测对象:转帐功能被测对象:转帐功能n分析要素:用户权限、票据号、账号、转帐金额、转帐方式分析要素:用户权限、票据号、账号、转帐金额、转帐方式n要素取值:要素取值:o用户权限:用等价类法分析得到(有转帐权限、无转帐权限)用户权限:用等价类法分析得到(有转帐权限、无转帐权限)o票据号:用等价类法分析得到(票据号有效、票据号无效)票据号:用等价类法分析得到(票据号有效、票据号无效)o账号:用等价类法分析得到(账号有效、账号无效)账号:用等价类法分析得到(账号有效、账号无效)o转帐金额:用等价类和边界值分析得到(转帐金额小于等于用户实际金额、转帐金额:用等价类和边界值分析得到(转帐金额小于等于用户实际金额、转帐金额大于用户实际金额)边界值是用户实际金额转帐金额大于用户实际金额)边界值是用户实际金额o转帐方式:(同城不同行转帐、同行转帐、异地电汇、异地信汇)转帐方式:(同城不同行转帐、同行转帐、异地电汇、异地信汇)25实例实例————黑盒测试用例设计实例黑盒测试用例设计实例标号测试要素取值1取值2取值3取值41用户权限有转账权限无转账权限2票据号票据号有效票据号无效3账号账号有效账号无效4转账金额转账金额小于或等于用户实际金额转账金额大于用户实际金额5转账方式同城不同行转账同行转账异地电汇异地信汇26o生成标准测试例集矩阵生成标准测试例集矩阵:根据以上约束条件分析得出的根据以上约束条件分析得出的P P==5 5、、L L==4 4,,对应直对应直角矩阵测试例生成工具得出以下测试例矩阵角矩阵测试例生成工具得出以下测试例矩阵 实例实例————黑盒测试用例设计实例黑盒测试用例设计实例27编号编号用户权限用户权限票据号票据号账号账号转账金额转账金额转账方式转账方式1111112122223133334144445212346221437234128243219313421032431113312412342131341423144231415432411644132实例实例————黑盒测试用例设计实例黑盒测试用例设计实例28o案例筛选优化过程:案例筛选优化过程:n首先分析第一个要素首先分析第一个要素““用户权限用户权限””,其取值只有,其取值只有2 2个,即个,即““用户权限用户权限””的的值只有可能是值只有可能是1 1或或2 2,这样,这样3 3和和4 4的取值所在的情况就可以删除,之后在考虑的取值所在的情况就可以删除,之后在考虑““用户权限用户权限””的的2 2个取值的具体情况,一个是用户权限有效(个取值的具体情况,一个是用户权限有效(1 1),另一个),另一个是用户权限无效(是用户权限无效(2 2),当取值为有效时,所有的情况都可以保留,当取),当取值为有效时,所有的情况都可以保留,当取值为无效时,只保留一个就可以了(一旦最高优先级的条件不能满足,那值为无效时,只保留一个就可以了(一旦最高优先级的条件不能满足,那么其他低优先级的条件就不需要考虑),然后用同样的方法判断其他的条么其他低优先级的条件就不需要考虑),然后用同样的方法判断其他的条件,最后得到一个临时结果件,最后得到一个临时结果( (编号编号1 1,,2 2,,5)5) 实例实例————黑盒测试用例设计实例黑盒测试用例设计实例29实例实例————黑盒测试用例设计实例黑盒测试用例设计实例编号编号用户权限用户权限票据号票据号账号账号转账金额转账金额转账方式转账方式111111212222313333414444521234622143723412824321931342103243111331241234213134142314423141543241164413230实例实例————黑盒测试用例设计实例黑盒测试用例设计实例o案例筛选优化过程:(续)案例筛选优化过程:(续)n这时可以从最后一个要素开始分析,要使最后一个要素有意义这时可以从最后一个要素开始分析,要使最后一个要素有意义那前那前4 4个要素必须都成立(值为个要素必须都成立(值为1 1),而要素),而要素““转帐方式转帐方式””有有4 4种取值而现在的结果中有效情况只有一种(种取值而现在的结果中有效情况只有一种(No1No1),),所以可以所以可以增加增加3 3种(即,见表中种(即,见表中No2No2,,3 3,,4 4))n现在考虑要素现在考虑要素““转帐金额转帐金额””,可以增加在前,可以增加在前3 3个要素都成立时,个要素都成立时,““转帐金额转帐金额””取值为大于用户实际金额的情况(即,见表中取值为大于用户实际金额的情况(即,见表中No5No5)。
n接着考虑要素接着考虑要素““帐号帐号””,可以增加在前,可以增加在前2 2个要素都成立时,个要素都成立时,““帐号帐号””取值为帐号无效的情况(即,见表中取值为帐号无效的情况(即,见表中No6No6)n接着考虑要素接着考虑要素““票据号票据号””,可以增加在第一个要素都成立时,,可以增加在第一个要素都成立时,““票据号票据号””取值为票据号无效的情况(即,见表中取值为票据号无效的情况(即,见表中No7No7)n这样就补齐了所有的情况,从而得到最终结果这样就补齐了所有的情况,从而得到最终结果31实例实例————黑盒测试用例设计实例黑盒测试用例设计实例编号编号用户权限用户权限票据号票据号账号账号转账金额转账金额转账方式转账方式11111121111231111341111451112-6112--712---82----32实例实例————黑盒测试用例设计实例黑盒测试用例设计实例编号编号用户权限用户权限票据号票据号账号账号转账金额转账金额转账方式转账方式1有转账权限票据号有效账号有效转账金额大于或等于用户实际金额同城不同行转账2有转账权限票据号有效账号有效转账金额大于或等于用户实际金额同行转账3有转账权限票据号有效账号有效转账金额大于或等于用户实际金额异地电汇4有转账权限票据号有效账号有效转账金额大于或等于用户实际金额异地信汇5有转账权限票据号有效账号有效转账金额小于用户实际金额同城不同行转账6有转账权限票据号有效账号无效转账金额大于或等于用户实际金额同城不同行转账7有转账权限票据号无效账号有效转账金额大于或等于用户实际金额同城不同行转账8无转账权限票据号有效账号有效转账金额大于或等于用户实际金额同城不同行转账o生成测试例生成测试例33测试用例设计培训回顾测试用例设计培训回顾o白盒测试白盒测试o黑盒测试黑盒测试o白盒测试用例设计方法白盒测试用例设计方法o黑盒测试用例设计方法黑盒测试用例设计方法34测试用例设计培训现场提问参考问题测试用例设计培训现场提问参考问题o什么是白盒测试?什么是黑盒测试?什么是白盒测试?什么是黑盒测试?o白盒测试方法有哪几种?白盒测试方法有哪几种?o逻辑覆盖测试分为哪几种?逻辑覆盖测试分为哪几种?o常用的黑盒测试方法有哪几种?常用的黑盒测试方法有哪几种?o什么是有效等价类?什么是有效等价类?o等价类划分的方法?等价类划分的方法?o边界值法选择测试用例的原则?边界值法选择测试用例的原则?o直角排列法的使用方法?直角排列法的使用方法?35Q&A36。
