第8章 软件测试样式与用例设计_第1页
第8章 软件测试样式与用例设计_第2页
第8章 软件测试样式与用例设计_第3页
第8章 软件测试样式与用例设计_第4页
第8章 软件测试样式与用例设计_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、测试样式与测试用例可复用的测试用例模式测试用例设计8 软件测试样式与测试用例测试样式与测试用例可复用的测试用例模式测试用例设计8 软件测试样式与测试用例测试样式与测试用例n测试样式测试样式是对特定的、重复出现的软件测试问题提供的一个通解,它包括决定样式应用环境的上下问(即:周境),以及相关因素组成的部件。n测试用例测试用例是定义测试实现及其环境、测试输入、测试条件以及为一个特定目标所开发的预期结果的集合。3测试样式与测试用例可复用的测试用例模式测试用例设计8 软件测试样式与测试用例By Zhang Qifei可复用的测试用例模式n可复用的测试样式可复用的测试样式是对可复用的软件测试问题提供的一

2、个通解,它包括决定样式应用的周境,以及相关的因素组成的部件。5可复用的测试用例模式n可复用测试用例模式在通用测试用例属性的基础上,增加可复用性,如接口描述、功能粒度、复用频率和版本信息等,以利用已有测试用例资产来支持用例的复用。6可复用的测试用例模式在具体实现时,测试用例在可复用的测试用例库中是以树形结构方式组织的,从所属测试类型,领域到所属功能层次展开,以方便测试用例的检索。7可复用的测试用例模式n测试用例构件测试用例构件依据可复用测试用例定义设计的一个封装的、能独立完成某个或某组测试功能的、且具有显性的可交付使用的测试用例。测试用例构件采用四元组可免分类描述模型,可复用的测试用例构件=测试

3、目的、测试类型、被测试域、测试方法,共四个主刻面组成,其下各有若干个子刻面,每个刻面及子刻面描述的信息由上面的BNF范式给出。8可复用的测试用例模式n测试用例设计原则基于测试需求可追踪的原则。基于测试方法的原则。基于测试充分性和效率的原则。基于测试执行的可重复性原则。n测试用例设计考虑的因素测试用例的可追踪性测试初始化要求评价测试结果的准则9可复用的测试用例模式n测试用例的设计步骤设计的用例应满足测试准出条件,对于测试覆盖类方法,应按照覆盖具体要求设计用例,对于其他类型的测试种类,应该按照具体的测试方法要求进行用例设计。测试用例步骤如下10测试样式与测试用例可复用的测试用例模式测试用例设计8

4、软件测试样式与测试用例12黑盒测试n黑盒测试的概念n等价类划分法 n边界条件法 n决策表法 n因果图法 n黑盒测试的其他方法13黑盒测试的基本概念n黑盒测试是从一种从软件外部对软件实施的测试,也称功能测试或基于规格说明的测试或数据驱动的测试。n基本观点:任何程序都可以看作是从输入定义域到输出值域的映射,将被测程序看作一个打不开的黑盒,黑盒里面的内容(实现)是完全不知道的,只知道软件要做什么。因无法看到盒子中的内容,所以不知道软件是如何实现的,也不关心黑盒里面的结构,只关心软件的输入数据和输出结果。14黑盒测试发现的缺陷类型n黑盒测试发现软件的外部行为错误n功能错误或遗漏n界面错误n外部数据库访

5、问错误n性能错误n初始化和终止错误n15黑盒测试技术n根据选择测试用例的方式不同划分,黑盒测试技术主要有:n功能分解法n等价类划分法 n边界条件法 n决策表法 n因果图法 n正交实验法 n场景法n错误猜测法n16等价类划分法n等价类划分法测试技术是依据软件系统输入集合、输出集合或操作集合实现功能的相同性,对其进行子集划分,然后从每个子集选取典型的具有代表性的数据作为测试用例的测试用例设计方法。n等价类划分法设计测试用例的意义在于把可能的测试用例集缩减到可控制且仍足以测试软件的较小范围内。n等价类别或者等价区间是指测试相同目标或者暴露相同软件缺陷的一组测试。n在寻找等价区间时,想办法把软件的相似

6、输入、输出、操作分成组。这些组是等价区间。17等价类划分方法n到目前为止没有划分高质量等价类的标准方法,不同的功能说明可能使用不同的方法。n不同的等价类得到的测试用例质量不同。n常用的等价类划分原则(1)按区间划分(2)按数值划分(3)按数值集合划分(4)按限制条件或规则划分(5)细分等价类18等价类划分法 示例n三角形问题的等价类测试三角形问题是软件测试文献中使用广泛的一个例子。输入三个整数a、b和c分别作为三角形的3条边,通过程序判断由这3条边构成的三角形类型是:等边三角形、等腰三角形、一般三角形或非三角形(不能构成一个三角形)。n根据输入域进行等价类划分,从哪些方面考虑?n三个数n整数1

7、9等价类划分测试用例设计在设计测试用例时应同时考虑有效等价类和无效等价类测试用例的设计。根据等价类表设计测试用例,具体步骤如下:(1)为每个等价类规定一个唯一的编号。(2) 设计一个新的测试用例,尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到测试用例覆盖了所有的有效等价类。(3) 设计一个新的测试用例,使其覆盖并且只覆盖一个还没有被覆盖的无效等价类。重复这一步,直至测试用例覆盖了所有的无效等价类。20输入条件等价类编号有效等价类等价类编号无效等价类三个整数,取值范围在11001三个数4只有一条边5只有两条边6多于三条边2整数7一边为非整数8两边为非整数9三边为非整数31a1001b10

8、01c10010一边为011两边为012三边为013一边小于014两边小于015三边小于016一边大于10017两边大于10018三边大于100三角形问题的等价类表三角形问题的等价类表测试用例怎么设计?测试用例怎么设计?等价类划分法 示例21n三角形问题按照输出条件,将输出域划分等价类nR1=: 边为a, b, c的等边三角形nR2=: 边为a, b, c的等腰三角形nR3=: 边为a, b, c的一般三角形nR4=: 边a, b, c不能形成三角形n对应测试用例测试用例测试用例abc预期输出Test1555等边三角形Test2223等腰三角形Test3345一般三角形Test4412非三角形

9、等价类划分法 例22一些特殊情况的处理n一些特殊情况n默认值n空值n无n不同的软件对这些情况的处理可能是不一样的,采用等价类划分设计测试的时候一般要把它们作为单独的等价类。23边界条件法(边界值法)n边界值测试的基本原理: n大量的软件测试实践表明,故障往往出现在定义域或值域的边界上,而不是在其内部。n为检测边界附近的处理专门设计测试用例,通常都会取得很好的测试效果。n在等价类划分基础上进行边界值分析测试的基本思想是,选取正好等于、刚刚大于或刚刚小于等价类边界的值作为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。24边界条件n边界是一些特殊情况。程序在处理大量中间数值时都是正确,但

10、是在边界处可能出现错误。边界条件就是软件计划的操作界限所在的边缘条件。n一些可能与边界有关的数据类型有:数值,速度,字符,地址,位置,尺寸,数量等。考虑这些数据类型的下述特征: 第一个/最后一个,最小值最大值,开始完成,超过/在内,空满,最短最长,最慢/最快,最早/最迟,最高最低,相邻最远等。n如果在程序中的数据结构有指定的边界,那么选择这个数据结构边界上的值作为测试用例。n分析规格说明,找出其它可能的边界条件。25常见的边界值n对16-bit 的整数而言 32767 和 -32768 是边界n屏幕上光标在最左上、最右下位置n报表的第一行和最后一行n数组元素的第一个和最后一个n循环的第 0 次

11、、第 1 次和倒数第 2 次、最后一次n26边界条件法(边界值法)n边界条件分析测试 边界值分析利用被测试域变量的最小值(min),稍大于最小值(min+),域内任意值(nom),稍小于最大值(max-),最大值(max)来设计测试用例。即通过使所有变量取正常值,只使一个变量分别取最小值,略大于最小值、略小于最大值和最大值。27n函数y = f (x1,x2) 输入变量的取值范围分别为:x1 a,b, x2 c,d 。边界条件法(边界值法)abcdX2X1边界条件坐标边界条件坐标28n函数y = f (x1,x2) 输入变量的取值范围分别为:x1 a,b, x2 c,d 。边界条件法(边界值法

12、)abcdX2X1(一般)边界值(一般)边界值29边界条件法(边界值法) 示例n加法器程序功能描述n计算两个1100之间整数的和。n设计测试用例n对于加法器程序,根据输入要求可将输入空间划分为三个等价类,即1个有效等价类(1100之间),两个无效等价类(100)。n但这种等价类划分不是很完善,我们只考虑了输入数据的取值范围,而没有考虑输入数据的类型,我们认为输入应为整数,但用户输入什么都有可能。30加法器问题的加法器问题的边界条件法边界条件法设计的测试用例设计的测试用例测试用例测试用例输入数据输入数据预期输出预期输出加数加数1加数加数2和和Test1Test11 150505151Test 2

13、Test 22 250505252Test 3Test 399995050149149Test 4Test 41001005050150150Test 5Test 550501 15151Test 6Test 650502 25252Test 7Test 750509999149149Test 8Test 85050100100150150Test 9Test 90 05050提示提示“请输入请输入1100间的整数间的整数”Test 10Test 1050500 0提示提示“请输入请输入1100间的整数间的整数”Test 11Test 111011015050提示提示“请输入请输入1100间的

14、整数间的整数”31加法器问题的边界条件法设计的测试用例加法器问题的边界条件法设计的测试用例测试用例测试用例输入数据输入数据预期输出预期输出加数加数1加数加数2和和Test12Test125050101101提示提示“请输入请输入1100间的整数间的整数”Test13Test130.20.25050提示提示“请输入请输入1100间的整数间的整数”Test14Test1450500.20.2提示提示“请输入请输入1100间的整数间的整数”Test15Test15A A5050提示提示“请输入请输入1100间的整数间的整数”Test16Test165050A A提示提示“请输入请输入1100间的整数

15、间的整数”Test17Test175050提示提示“请输入请输入1100间的整数间的整数”Test18Test185050提示提示“请输入请输入1100间的整数间的整数”Test19Test19空格空格5050提示提示“请输入请输入1100间的整数间的整数”Test20Test205050空格空格提示提示“请输入请输入1100间的整数间的整数”Test21Test215050提示提示“请输入请输入1100间的整数间的整数”Test22Test225050提示提示“请输入请输入1100间的整数间的整数”32决策表法n决策表是分析和表达多逻辑条件下执行不同操作情况的工具。n优点n能够将复杂的问题按

16、照各种可能的情况全部列举出来,简明并避免遗漏。n在所有功能测试方法中,基于决策表的测试方法是最严格、最具有逻辑性的黑盒测试方法。 n软件开发中,某些操作的实施依赖于多个逻辑条件的组合,即针对不同逻辑条件的组合值,分别执行不同的操作。决策表很适合处理这类问题。if then elseif then else then(判定表法)33规则规则决策表通常由条件桩、条件项、动作桩和动作项4部分组成。任何一个条件组合的特定取值及其相应要执行的操作称任何一个条件组合的特定取值及其相应要执行的操作称为一条规则。为一条规则。在决策表中贯穿条件项和动作项的一列就是一条规则!在决策表中贯穿条件项和动作项的一列就是

17、一条规则!问题的条件的列表问题的条件的列表列出条件所有可能的取值列出条件所有可能的取值列出满足条件时系统可列出满足条件时系统可能产生的动作的列表能产生的动作的列表在条件项的各组取值情在条件项的各组取值情况下应采取的动作况下应采取的动作决策表法条件桩条件项动作桩动作项34决策表法 设计 测试用例 的步骤n建立决策表的步骤:(1)列出所有的条件桩和动作桩。(2)确定规则的个数。(3)填入条件项。(4)填入动作项,得到初始决策表。(5)简化决策表,合并相似规则(相同动作)。n根据简化决策表的规则设计测试用例,每一条规则对应一个测试用例。35决策表法设计测试用例 示例n三角形问题。三个整数a、b、c,

18、分别作为三角形的三条边,判断由此三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形(包括直角三角形)或非三角形。分析:三角形问题设计测试用例n条件nC1:a,b,c构成一个三角形?nC2:a=b?nC3:b=c?nC4:a=c?n动作nA1:非三角形nA2:一般三角形nA3:等腰三角形nA4:等边三角形36决策表法设计测试用例 示例n步骤如下:n列出所有条件桩和动作桩。n确定规则的个数。三角形问题的决策表有4个条件,每个条件可以取两个值(真值和假值),所以应该有24=16种规则。n填写条件项。n填写动作项,从而得到初始决策表。n简化决策表。合并相似规则后得到问题的简化决策表。n设计测试

19、用例。三角形问题设计测试用例37决策表法设计测试用例 示例测试用例abc预期输出Test Case 1Test Case 110104 44 4非三角形Test Case 2Test Case 24 44 44 4等边三角形Test Case 3Test Case 3? ? ? ?不可能Test Case 4Test Case 4? ? ? ?不可能Test Case 5Test Case 54 44 45 5等腰三角形Test Case 6Test Case 6? ? ? ?不可能Test Case 7Test Case 75 54 44 4等腰三角形Test Case 8Test Case

20、 84 45 54 4等腰三角形Test Case 9Test Case 93 34 45 5一般三角形根据根据简化决策表简化决策表,可设计测试用例,可设计测试用例三角形问题设计测试用例38决策表法n当测试逻辑时,决策表是一个非常好的选择 nIf-then-else逻辑很突出n条件和规则的顺序不影响执行哪些操作n输入变量之间存在逻辑关系n涉及输入变量子集的计算n输入与输出之间存在因果关系n很高的圈复杂度n为了降低测试用例个数,可以使用扩展项决策表n决策表并不是专用于设计测试用例的方法,它同样可以应用于其他方面,例如需求分析n决策表的设计一次不一定成功,迭代会有所帮助39n等价类划分法和边界值分

21、析方法都是着重考虑输入条件,如果程序输入之间没有什么联系,采用等价类划分和边界值分析是一种比较有效的方法。但如果输入之间有关系,例如,约束关系、组合关系,这种关系用等价类划分和边界值分析是很难描述的,测试效果难以保障,因此必须考虑使用一种适合于描述对于多种条件的组合,产生多个相应动作的测试方法,因果图正是在此背景下提出的。n因果图法就是一种利用图解法分析输入的各种组合情况,生成决策表,从而设计测试用例的方法,它适合于检查程序输入条件的各种情况的组合。因果图法40n在因果图中使用4种逻辑符号分别表示4种因果关系,如下图所示。用直线连接左右节点,其中左边节点表示输入状态(或称原因),右边节点表示输

22、出状态(或称结果)。 输入节点和输出接点都可取值0或1,0表示某状态不出现,1表示某状态出现。若若a是是1,则,则b也是也是1若若a是是1,则,则b是是0若若a、b全是全是1,则,则c为为1; a、b有一个是有一个是0,则,则c是是0。可以有多个输入!可以有多个输入!若若a、b、c有一个是有一个是1,则,则d为为1。可以有多个输入!可以有多个输入!因果图法41因果图的基本图形符号 n恒等:若原因出现,则结果出现;若原因不出现,则结果也不出现。n非():若原因出现,则结果不出现;若原因不出现,则结果出现。n 或():若几个原因中有1个出现,则结果出现;若几个原因都不出现,则结果不出现。n与():

23、若几个原因都出现,结果才出现。若其中有1个原因不出现,则结果不出现。42因果图的约束符号 nE(互斥):表示a、b两个原因不会同时成立,两个中最多有一个可能成立。nI(包含):表示a、b、c这3个原因中至少有一个必须成立。nO(惟一):表示a和b当中必须有一个,且仅有一个成立。nR(要求):表示当a出现时,b必须也出现。a出现时不可能b不出现。nM(屏蔽):表示当a是1时,b必须是0。而当a为0时,b的值不定。43(1)确定软件规格中的原因和结果。分析规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。(2)确定原因和结果之间的逻辑

24、关系。分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。(3)确定因果图中的各个约束。由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。(4)把因果图转换为决策表。(5)根据决策表设计测试用例。因果图法 设计测试用例步骤44因果图法 设计测试用例 示例n有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”和 “红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还角硬币。使用因果图法设计测试用例。45

25、因果图法 设计测试用例 示例46因果图法 设计测试用例 示例47因果图法n根据需求规格说明书,分析因果关系。n有助于用一个系统的方法选择出高效的测试用例集。n额外的好处,就是可以指出规格说明的不完整性和不明确之处。n因果图是一种形式语言,实际上是一种数字逻辑电路,但没有使用标准的电子学符号,而是使用了稍微简单点的符号。48白盒测试n白盒测试技术n静态白盒法 n路径覆盖法n基本路径法n白盒测试的其他方法 49白盒测试技术n白盒测试的定义白盒测试是基于代码的针对被测对象内部是如何进行工作的测试,通过程序代码或者通过开发工具找出软件的缺陷,也称作结构测试或逻辑驱动测试。n白盒测试的目的检测软件程序内

26、部结构,程序书写是否规范、是否按照项目需求规格说明正常运行。n白盒测试法检查程序内部逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。是基于覆盖的测试技术!n覆盖全部代码、分支、路径、条件 50为什么进行白盒测试n程序自身存在缺陷n逻辑错误(特别是备选流的逻辑)n笔误(设计正确,实施时出现错误)n51白盒测试的实施步骤n测试计划阶段n根据需求说明书,制定测试进度计划。n测试设计阶段n依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。n测试执行阶段n输入测试用例,得到测试结果。n测试总结阶段n对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。52白盒测

27、试方法白盒测试方法n采用白盒测试方法必须遵循以下几条原则,才能达到测试的目的:保证一个模块中的所有独立路径至少被测试一次。所有逻辑值均需测试真 (true) 和假 (false) 两种情况。在上下边界及可操作范围内运行所有循环。检查程序的内部数据结构,保证其结构的有效性。n白盒测试主要是检查程序的内部结构、逻辑、循环和路径。常用测试用例设计方法有:逻辑覆盖法(逻辑驱动测试)基本路径测试方法53白盒测试技术n重要说明即使每条路径都测试过了,仍然可能存在错误。原因在于:n穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序。n穷举路径测试不可能查出程序因遗漏路径而出错。n穷

28、举路径测试发现不了一些与数据相关的错误。n多数质量机构把分支覆盖准则作为测试覆盖的最低可接受级别。54白盒测试技术n白盒测试技术n静态方法(静态分析)检查软件的表示和描述是否一致,有没有冲突或歧义代码检查、静态结构分析,可能借助某些工具实现静态分析能够有效地发现30%70%的逻辑设计和编码错误定性分析软件质量n动态方法基于各种覆盖准则方法55静态白盒方法的四个要素n确定问题静态白盒测试的目的是找出软件的问题,全部的批评应该直指代码或设计,而不是其设计实现者。参与者之间不应该相互指责,应该把自我意识、个人情绪和敏感丢在一边。n遵守规则静态白盒测试要遵守一套固定的规则,如哪些内容要做评价等。其重要

29、性在于参与者了解自己的角色、目标是什么。有助于使审查进展更加顺利。n充分准备每一个参与者都尽力为审查做准备。根据审查的类型,参与者可能扮演不同的角色。他们需要了解自己的责任和义务,并积极参与审查。在审查过程中找出的问题大部分是在准备期间发现的,而不是实际审查期间。n编写报告审查小组必须做出审查结果的书面总结报告,并使报告便于开发小组的成员使用。56常见的控制流图的基本控制结构顺序结构IF选择结构WHILE重复结构UNTIL重复结构CASE多分支结构57不可能进行完全的白盒测试n左图是某程序的流程图,假设循环10次,请计算一下有多少条程序执行通路?n假设由图中得到的所有路径都是可执行路径,执行一

30、次循环大约需要10微秒(奔腾4 1.7G)。如果循环次数为10的话,遍历图中所有路径需要多长时间?n结论是:需要14秒左右的时间n如果循环次数为20次,100次时,结果又如何?n结论是:循环20次,需要约4072小时,循环100次则大约需要6.79*1047年58路径覆盖法n白盒测试是基于代码的针对被测对象内部是如何进行工作的测试。白盒测试法检查程序内部逻辑结构,常用的基本技术是覆盖率分析。n覆盖全部代码、分支、路径、条件n路径覆盖法即设计出足够的测试用例来完成对被测试程序可执行路径进行全方位的执行覆盖。n主要包括逻辑路径覆盖和物理路径覆盖的两种方法。59路径覆盖法n逻辑路径覆盖考察对程序逻辑

31、的覆盖程度,主要针对程序中由于判定条件所产生的逻辑分支结构进行测试。语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖n物理路径覆盖是从图论角度来测试所有可执行的物理路径。n逻辑路径测试与物理路径测试不能相互替代。60语句路径覆盖n语句路径覆盖是一个比较弱的逻辑路径覆盖标准。n它的涵义是指通过选择足够的测试用例,使得运行这些测试用例时,被测程序的每个语句至少被执行一次。 61TdbasFF入口入口返回返回(y1)&(z=0)(y=2)|(x1)x = x / yx = x +1Tce测试用例输入预期输出被测路径CASE1CASE1x=4x=4, y=2y=2,z=0z=0 x=3x=3

32、sacbedsacbed62语句路径覆盖n【优点】可以很直观地从源代码得到测试用例,无须细分每条判定表达式。n【缺点】由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件是无法测试的。如在多分支的逻辑运算中无法全面的考虑。语句覆盖是最弱的逻辑覆盖。n语句覆盖通常是实际测试过程中所要达到的最基本的逻辑路径覆盖度量标准。63判定路径覆盖n判定路径覆盖又称为分支路径覆盖。n它是指通过设计足够的测试用例,使得程序中的每一个判定至少都获得一次“真值”和“假值”,或者说使得程序中的每一个分支都至少通过一次。n判定路径覆盖比语句路径覆盖的标准稍强一些。64TdbasFF入口入口返回返回(y1)

33、&(z=0)(y=2)|(x1)x = x / yx = x +1Tce测试用例输入预期输出被测路径CASE2CASE2x=1x=1,y=3y=3,z=0 z=0 x=1/3x=1/3sacbd sacbd CASE3CASE3x=3x=3,y=2y=2,z=1 z=1 X=4 X=4 sabed sabed a真,真,b假假a假,假,b真真y=3, x=4, z=0a真,真,b真真y=3, x=0, z=1a假,假,b假假65判定路径覆盖n【优点】判定覆盖具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。n【缺点】往往大部分的判定语句

34、是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。判定覆盖仍是弱的逻辑覆盖。66条件路径覆盖n条件路径覆盖的涵义是指,对于每个判定中所包含的若干个条件,应设计足够多的测试用例,使得判定中的每个条件都至少取到一次“真值”和“假值”的机会。n也就是说,判定中的每个条件的所有可能结果至少出现一次。67TdbasFF入口入口返回返回(y1)&(z=0)(y=2)|(x1)x = x / yx = x +1Tce测试用例输入预期输出被测路径CASE4CASE4x=0 x=0,y=2y=2,z=0 z=0 x=1x=1sacbed sacbed CASE

35、5CASE5x=2x=2,y=1y=1,z=1 z=1 x=3 x=3 sabed sabed y1, y1, x1)&(z=0)(y=2)|(x1)x = x / yx = x +1Tce y1, z=0 y1, z!=0 y=1, z=0 y1 y=2, x1 y!=2, x1)&(z=0)(y=2)|(x1)x = x / yx = x +1Tce测试用例输入预期输出被测路径CASE8CASE8x=4x=4,y=2y=2,z=0 z=0 x=3 x=3 sacbed sacbed CASE9CASE9x=1x=1,y=2y=2,z=1 z=1 x=2 x=2 sabed sabed CA

36、SE12CASE12x=1x=1,y=3y=3,z=0 z=0 x=1/3x=1/3sacbd sacbd CASE11CASE11x=1x=1,y=1y=1,z=1 z=1 x=1 x=1 sabd sabd 和和和和和和和和a真真b真真a假假b真真a真真b假假a假假b假假 y1, z=0 y1, z!=0 y=1, z=0 y1 y=2, x1 y!=2, x=1aC1: T, aC2: TaC1: T, aC2: FaC1: F, aC2: TaC1: F, aC2: FbC1: T, bC2: TbC1: T, bC2: FbC1: F, bC2: TbC1: F, bC2: F76n

37、语句路径覆盖被测程序的每个语句至少被执行一次。n判定路径覆盖(分支路径覆盖)程序中的每一个判定至少都获得一次“真值”和“假值”,或者说使得程序中的每一个分支都至少通过一次。n条件路径覆盖判定中的每个条件都至少取到一次“真值”和“假值”。n判定/条件路径覆盖判定中的每个条件的所有可能结果至少出现一次,并且每个判定本身的所有可能结果也至少出现一次。n条件组合路径覆盖每个判定中条件结果的所有可能组合至少出现一次。n修正的条件/判定路径覆盖在一个程序中每一种输入输出至少得出现一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每一个判定中的每一个条件必须能够独立影响一个判定的输出,即在其

38、他条件不变的前提下仅改变这个条件的值,而使判定结果改变。n物理路径覆盖程序的每条可能执行的物理路径都至少经过一次(如果程序中有环路,则要求每条环路至少经过一次)。77内容提要n白盒测试技术n静态白盒法 n路径覆盖法n基本路径法n白盒测试的其他方法n软件缺陷分析 78基本路径法n即便一个不复杂的程序,特别是有循环存在的情况下,其路径的组合都可能是一个天文数字!要进行完全测试是不可能的。n在不能做到所有路径覆盖的前提下,如果某一程序的每一个独立路径都被测试过,那么可以认为程序中的每个语句都已经检验过了,即达到了语句覆盖。这种测试方法就是通常所说的基本路径测试方法。 79基本路径法n基本路径n本质上

39、是从程序入口到出口的一些通路。之所以称其为基本路径,原因在于可以通过对基本路径进行连接或者重复操作得到程序中的其它路径。n程序中的循环体只执行零次和一次,就成为基本路径测试。 n设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次。n基本路径法是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。 80基本路径法n基本路径测试方法是在控制流图的基础上,通过分析控制结构的环路复杂度,导出执行路径的基本集,再从该基本集设计测试用例。基本路径测试方法包括以下4个步骤:(1)画出程序的控制流图。(2)计算程序的环路复杂度,导出程序基本路径集

40、中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。(3)导出基本路径集,确定程序的独立路径。(4)根据(3)中的独立路径,设计测试用例的输入数据和预期输出。81示例n所示程序流程图描述了最多输入50个学生成绩(以 1作为输入结束标志),计算其中有效的学生分数的个数、总分数和平均值。n其中,score存放学生成绩的值,n2存放输入的学生成绩个数,n1存放输入成绩中有效成绩的个数,sum存放成绩总和,average存放平均值。开始开始 i=1i=1,n1=n2=0n1=n2=0,sum=0sum=0scorei-1 AND n250scorei-1 AND n2

41、0 AND scorei0 AND scorei0n10average=sum/n1average=sum/n1average = 1average = 1 输出输出n1, sumn1, sum和和averageaverageFFFTTT1 12 2和和3 34 45 5和和6 67 78 89 9101011111212 输入一个成绩输入一个成绩 scoreiscorei82导出控制流图123456789111012A A1 1A A2 2A A3 3A A4 4A A5 5A A6 6开始开始 i=1i=1,n1=n2=0n1=n2=0,sum=0sum=0scorei-1 AND n25

42、0scorei-1 AND n20 AND scorei0 AND scorei0n10average=sum/n1average=sum/n1average = 1average = 1 输出输出n1, sumn1, sum和和averageaverageFFFTTT1 12 2和和3 34 45 5和和6 67 78 89 9101011111212 输入一个成绩输入一个成绩 scoreiscorei83确定环路复杂性度量n方法1V(G)= 6 (个区域)n方法2V(G)=EN+2=1612+2=6n其中E为流图中的边数,N为结点数;n方法3nV(G)=P+1=5+1=6n其中P为判定结点的个数。在流图中,结点2、3、5、6、9是判定结点。123456789111012A A1 1A A2 2A A3 3A A4 4A A5 5A A6 684确定基本路径集合n确定基本路径集合(即独立路径集合)。于是可确定6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论