浅析条件覆盖测试用例的设计

  • 格式:pdf
  • 大小:99.42 KB
  • 文档页数:1

逻辑运算组成判定语句开始研究 , a、 、lb 为四个 不同的逻辑 设 1a b 、2 2 条件 , 组成两个判定语句 : & a,1 I2 a & 2b b 。 l l
表 2测试用例组 2
测试用例 输 入 a a l 2
Te tCa e s s 1 T T
a& a b l&2 l b 2
测试用例 输入
T髓 tC ae1 s T F Te C ̄ e n s 3 Cm e 4 F F
2 条件 覆盖案例 分析
设计以下 c语言程序段 的条件覆盖测试用例 :
i (> 0 & o> 0) f x 10  ̄/ 5 0
sor + 1; c e
a 2
a 3
T F F
bI2 1I b

Tet ae sC s2
Tet Cae s s 3










在表 2中,一” “ 表示任意取值 , 因为不管 a 取什么值 , a 为假 2 当 1 值时 , 都被屏蔽。实际设计测试用例 时, 一” a 2 将“ 任意取真值或假值 , 再根据各逻辑条件 的取值设计输入数据就形成 了满 足条件 覆盖的测 试用例。 三个逻辑条件组成 的判定语句测试用例 又如何设 计?根据相 同 的道理 , 可以得到表 3 。 表 3 测试用例组 3
1 引 题
白盒测试法的覆盖标准有逻辑覆盖 、 循环覆 盖和基 本路径测试 。 其中逻辑覆盖包括语句覆盖 、 判定覆盖 、 条件覆盖 、 判定/ 条件覆盖 、 条 件组合覆盖和路径覆盖 。六种覆盖发现错误 的能力呈由弱至强的变 化。其中 , 条件覆盖 需要设计足够多的测试用例 , 得每一判定语句 使 中每个逻辑条件的可能值至少满足一次 , 条件覆盖率的公式可以表示 如下 :条件 覆盖 率= 被评 价到 的条 件取值 的数 量/ 条件取 值的总 数 X 0%。优点 : 10 对每个判定语句中每个逻辑 条件进行了测试 ; 缺点 : 不 定能够满足判定覆盖 。 对 于单一逻辑条件组成的判定语句 , 设计测试用例比较 简单 , 选 择逻辑 条件 的真值和假值两个测试用例即可 。但对于两个和两个 以 上逻辑 条件组成 的判定语句 , 设计测试用例就不是那么容易 , 并不 是 将每个逻辑条件 的真值和假值进行组合形成 的测试用例组就能满足 条件覆盖测试 的要求 。这是 由于组合逻辑条件的逻辑运算具 有短路 的特性 , 某些测试用例 由于前项逻辑条件 的设定 , 使后项逻辑条件不 能完成判断 , 从而无法实现条件覆盖 。
a&& 2 2 1 a&&a
b b b l 2 3
F F F T
b l b I3 1 l2lb
i (> 1 0 5 0 ) f x = 0 0 z 0 0 I > I
sor + 5: c e
实际上 , 这种规律可以推广到由 N 个逻辑 条件通 过逻辑与或者 分析 : 本题中有两个判定语句 , 有四个逻辑条件 ( 以下分别用 e 、 1 N个逻辑条件 完成条 e、3e 表示 )每个逻辑条件有两种逻辑取 值真值 ( T表示) 2e、4 , 用 和假 逻辑或运算组成的判定语 句。对于逻辑与运算 , 件覆盖只需要 N+ 个测试用例 , 1 测试用例从逻辑 条件全真开始 , 然后 值 ( F表示 ) 用 。表 1是某高职《 软件测试》 课程教材给 出的答案 。 从最后~个逻辑条件取假值 ,逐个过渡 到第一个逻辑条件取假值 , 当 表 1测试用例组 1 前一个逻辑条件取假值时 , 的逻辑条件取任意值 。对于逻辑或运 后面 测试 用例 x - Y x 1o y =0 x = 00 z = O0 e & 2 > o > 50 >1 0 ) 5O l e e l 4 & 3l e 算, N个逻辑 条件完成条件覆盖 也只需要 N 1 + 个测试用例 , 测试用例 从逻辑条件 全假 开始 , 然后从最后一个逻辑条件取真值 , 个过渡 到 逐 1 C s2 ’ 哑 ae 5 ,0 , O 0 02 O 6 O F F F F F 第一个逻辑 条件取真值 , 当前一个逻辑条件取真Байду номын сангаас 时, 后面 的逻辑 条 件 取任意值 。 从 表面看 , 个 测试用例保 证了四个 逻辑条件 都取了真 值和假 3 4 总结 值, 满足了条件覆盖测试。但 由于 C语言的逻辑 运算具有短路特性 , 不难发现 , 以上规律设计的测试用例 , 实现 了条件覆盖 , 根据 不仅 例如在第一个判定语句中 , x 10 F 当 >0 取 值时,> 0 就 不用判断了 ; y 50 而且实现了判定覆盖和判定/ 条件覆盖 ,甚至还可以认为实现 了条件 在 第二个判定语句中 , x = O 0 T值时 , 5 0 也不用判断了 。 当 > l0 取 z 00 > 组合覆盖 。这是 由于将判定语句中的各逻辑条件的各种真假取值组 因此, 在表 1 中前三个逻辑 条件都进行 了真值和 假值的判断 , 而第四 合一遍 实现条件组合覆盖时 , 由于逻辑 运算的短路特性一 些测试用 个逻辑条件根本 不可能进行真值判断 。 例对逻辑条件 的测试效果是相同的。例如在表 3 的第四个测试用 中 解决的方法 , 将第三个测试用例 中的第三 个逻辑条件改为假值 , 例, 可以拆分为四个测试用例 , 这四个 测试用例的测试效果是相 同 但 ( ,,)输入数据改为 8 02 0 60 就使得第四个逻辑条件能够进 xY z 0 ,0 ,00 的。 测试一个就可以了。 行真值判断 , 从而实现 条件覆盖测试 。 以上的分析研究 , 涉及单 一逻辑运 算的判定语句 , 仅 由于混合逻 3 解 决方案 辑运算组成 的判定语句并不完全适用以上规律, 本论文未探讨 。本人 在上例 中 . 依据原 有测试用例组进行相应修改 , 到了正确的条 得 在《 软件测试技术》 课程的教学过 程中, 针对 高职学生的认知特点 , 不 件覆盖测试用例。那么 , 对于含有逻辑运算 的判定语句是否有一种规 仅讲授了条件覆盖的基本概念 , 还传授了条件覆盖的测试用例 的设计 范的设计测试用例的方法 ? 方法 , 了较好的教学效果 。 取得 对于逻辑与运算 , 前项为假值时就会对后项短路 。 因此将 逻辑 条 参考 文献 : 件首先全部设为真值, 再逐步从最后项 开始 , 将真值过渡 到假值 , 直到 [】朱 少 民.软 件 测试 方 法和技 术》[ . 清华 大学 出版社 , 1 《 M 】 首项, 这样设计的测试用例 中每个逻辑条件必然包括真值和假值并且 2 O . 057 都 会执行 。同样 的道理 , 对于逻辑或运算 , 前项为真值时就会对后项 []杜文浩等. 软件测试基础教程》 M . 中国水利水电出版社, 2 ( ( 【 】 短路 , 因此将逻辑条件首先全部设为假值 , 再逐步从最后项开始 , 将假 20 0 8年 3 月第一版. 值 过渡到真值 , 直到首项 , 这样设计的测试用例中每个逻辑条件必然 作者简介: 张武洪 。 工程硕 士, 讲师 , 研究方向: 计算机应用技术。 包括真值和假值 并且都会执行。首先, 从最简单的两个逻辑条件进行
垦!
! 垒
! 圆 工
Q:巳 垒 :曼 皇 墨
浅析条件覆盖测试用例的设计
◎张 武 洪
( 湖北省成宁职 业技术学院计算机科学系, 湖北 成 宁 4 7 ) 31 0 O 摘要 : 针对逻辑运 算的短路 特性 , 出了条件覆盖 测试用例设计 的一般 方法。 提 关键词 : 条件覆盖 ; 逻辑条件; 测试用例; 短路 特性 中图分类号 :2 5 文献标识码 : 0 4 A 文章编号 :6 3 09 (0 )9- 04 0 17 - 9 2 2 1 0A 06 - 1 0