正在加载图片...
(可加前缀NOT),复合条件由简单条件通过逻辑运算符(AND、OR、NOT)和括号连接而 成。如果条件出错,至少是条件中某一成分有错。条件中可能的出错类型有:布尔运算符错、 布尔变量错、布尔括号错、关系运算符错、算术表达式错。 如果在一个判定的复合条件表达式中每个布尔变量和关系运算符最多只出现一次,而且 没有公共变量,应用一种称之为BRO(分支与关系运算符)的测试法可以发现多个布尔运算 符或关系运算符错,以及其它错误 BRO策略引入条件约束的概念。设有n个简单条件的复合条件C,其条件约束为D=(D1 D2,…,Dn),其中D1(l≤i≤n)是条件C中第i个简单条件的输出约東。如果在C的执行过 程中,其每个简单条件的输出都满足D中对应的约束,则称条件C的条件约束D由C的执 行所覆盖。特别地,布尔变量或布尔表达式的输出约束必须是真(t)或假(f);关系表达式 的输出约束为符号 设条件为C1:B1&B2 其中B1、B2是布尔变量,C1的输出约束为(D,D2),在此,D1和D2或为t或为f。则 (t,f)是C1可能的一个约束。覆盖此约束的测试(一次运行)将令B1为t,B2为f。BRO 策略要求对C1的可能约束集合{(tt),(t),(t,f)}中的每一个,分别设计一组测试用例。 如果布尔运算符有错,这三组测试用例的运行结果必有一组导致C1失败 设条件为C2:B1&(E3=E4) 其中B1是布尔表达式,E3和E4是算术表达式,C2的输出约束为(D1,D2),在此,D 或为t或为f:D2则是<、=或>。因此,只有D2与C1中D2的不同,可以修改C1的约束 集合{(tt),(ft),(tf)},导出C2的约束集合。因为在(E3=E)中,"t相当于"=","f 相当于"<"或">",则C2的约束集合为{(L=),(f=),(t,<)(t>)}。据此设计4组测试 用例,检查C2中可能的布尔或关系运算符中的错误 设条件为C3:(E1>E2)&(E3=E4) 其中E1、E2、E3、E4都是算术表达式,C3的输出约束为(D1,D2),在此,D1和D2的约 束均为<、=、>。C3中只有D1与C2中的D1不同,可以修改C2的约束集合{(t1=)(£=) (t<),(t>)},导出C3的约束集合。因为在(E1>E2)中,"t"相当于">","T"相当于"< 或"=",则C3的约東集合为{(>,=),(<=)(=,=)(>,<)(>,>)}。根据这个约束集合设 计测试用例,就能够检测C3中的关系运算符中的错误。 ③循环测试 循环分为4种不同类型:简单循环、连锁循环、嵌套循环和非结构循环,见图5.1 嵌套循环 简单循环 连锁循环 非结构循环13 (可加前缀 NOT),复合条件由简单条件通过逻辑运算符(AND、OR、NOT)和括号连接而 成。如果条件出错,至少是条件中某一成分有错。条件中可能的出错类型有:布尔运算符错、 布尔变量错、布尔括号错、关系运算符错、算术表达式错。 如果在一个判定的复合条件表达式中每个布尔变量和关系运算符最多只出现一次,而且 没有公共变量,应用一种称之为 BRO(分支与关系运算符)的测试法可以发现多个布尔运算 符或关系运算符错,以及其它错误。 BRO 策略引入条件约束的概念。设有 n 个简单条件的复合条件 C,其条件约束为 D =(D1, D2, …, Dn),其中 Di(1≤i≤n)是条件 C 中第 i 个简单条件的输出约束。如果在 C 的执行过 程中,其每个简单条件的输出都满足 D 中对应的约束,则称条件 C 的条件约束 D 由 C 的执 行所覆盖。特别地,布尔变量或布尔表达式的输出约束必须是真(t)或假(f);关系表达式 的输出约束为符号>、=、<。 ▪ 设条件为 C1 : B1 & B2 其中 B1、B2 是布尔变量,C1 的输出约束为(D1, D2),在此,D1 和 D2 或为 t 或为 f。则 (t, f)是 C1 可能的一个约束。覆盖此约束的测试(一次运行)将令 B1 为 t,B2 为 f。BRO 策略要求对 C1 的可能约束集合 { ( t, t ), ( f, t ), ( t, f ) } 中的每一个,分别设计一组测试用例。 如果布尔运算符有错,这三组测试用例的运行结果必有一组导致 C1 失败。 ▪ 设条件为 C2 : B1 & ( E3 = E4 ) 其中 B1 是布尔表达式,E3 和 E4 是算术表达式,C2 的输出约束为(D1, D2),在此,D1 或为 t 或为 f;D2 则是 <、= 或 >。因此,只有 D2与 C1 中 D2 的不同,可以修改 C1 的约束 集合 { ( t, t ), ( f, t ), ( t, f ) },导出 C2 的约束集合。因为在 ( E3 = E4 ) 中,"t" 相当于 "=","f" 相当于 "<" 或 ">",则 C2 的约束集合为 { ( t, = ), ( f, = ), ( t, < ), ( t, > ) }。据此设计 4 组测试 用例,检查 C2 中可能的布尔或关系运算符中的错误。 ▪ 设条件为 C3 : ( E1 > E2 ) & ( E3 = E4 ) 其中 E1、E2、E3、E4 都是算术表达式,C3 的输出约束为(D1, D2),在此,D1 和 D2 的约 束均为 <、=、>。C3 中只有 D1与 C2 中的 D1 不同,可以修改 C2 的约束集合 { ( t, = ), ( f, = ), ( t, < ), ( t, > ) },导出 C3 的约束集合。因为在 ( E1 > E2 ) 中,"t" 相当于 ">","f" 相当于 "<" 或 "=",则 C3 的约束集合为 { ( >, = ), ( <, = ), ( =, = ), ( >, < ), ( >, > ) }。根据这个约束集合设 计测试用例,就能够检测 C3 中的关系运算符中的错误。 ③ 循环测试 循环分为 4 种不同类型:简单循环、连锁循环、嵌套循环和非结构循环,见图 5.11
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有