基于图的MC/DC最小测试用例集快速生成算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
口点至少被执行 一次. / C准则要求中④ 是现在 编 MC D 程规则一般要求,关键 的是前 三项要求p 】 .
条件表示 不含有布 尔操作符 号的布尔表 达式.判
定表 由条件和零或者多个布尔操作符号组成 的布尔表
A pi eh iu p ldTcnq e应用 技术 1 5 e 4
计 算 机 系 统 应 用
3 算法分析
根据上面算 法的步骤和规则便可快速 实现 自动和
手动生成 MC/D C最 小测试用例集 的具体方法.与最
获得这个节点独立影响判定 结果 的 MCD / C对 . 如此循 环,直到最 后一个节 点被替换. 根据 C i nk 原则,为 hl si e 了直接获得最 小测试用例 集,在 以新 的关键 路径 生成
ht:ww csa r. t / w. -. ge p/ - o n
21 0 2年 第 2 卷 第 1 1 1期
达式 . 果一个判 定 中的某一条件 多次 出现 , 么其 如 那
每次 出现均为不同的条件【 4 J . 定义 1 MC D . / C对是 由两个不 同的布尔取值项构
节点 结合,视为一个特 殊条件 , 次取值 时要做一个 每
测试用例 时, 我们 以第 1 组测试用例为对象,进行转换.
由图 3的当前状态, 我们可直接得到表 1中第 1组测
试用例.同时,根据定义 1 我们可 以由关键路径获得 , 与第 1组测试用例 构成 MCD 对 的其他三组测试用 /C
图 1 语法树
例.由于隶属于关键路 径的节 点取值 的变化可 以独立 影响 o t u 端的结果 , 因此直接把在第 1 组测试用 例中隶 属于关键 路径 的节 点的值进行翻转,就可 得到表 1中 的 2 、4三组测试用例, 、3 它们和第 1 组形成 MCDC /
问题 .
① 收稿 时间 : 1-31; 到修 改稿 时 间:020 -3 2 20 -5收 0 2 1-42
有结果 也至少 出现 一次 ; 每一个 条件 都能 单独地 ③
影响判 定的结果,即在其他 条件不变 的情况下 改变 这
个条件 的值, 得判定结果改变 ; 每一个 入 口与 出 使 ④
图 2 不带布尔运算符 的图 为 了说 明算法 原理,我们可进一步,将 图 2简化 为一个 电路 图.图 2的简化形式如 图 3所示.
2 算法设计与验证
任 何一 个布 尔表达 式都 可 以归结为 一个语 法树 。
布 尔表达式 的条件 由树 的叶节 点表 示, 尔表达式 中 布
的 ad o、 o、 o 等布 尔运算符 由非叶节点表示. n 、 rxrnt 对
系为研究对象,采用将原始布 尔表 达式转化为语法树,再将语法树 转化为图,分析 图中节点对判定结果 的影 响的 方法, 究了基于 图快速 生成最小测试用例集 的算法 . 研 最后 结合实例对该算法进行 了验证,并与其他算法进行 了
比较,结果表明该算法在手动和 自动生成最小测试用例集 时具有实用 性和优越 性.
代数 的基本定律和规则沿子树下移, 如遇 a d子节 点, n
则改为 O r子节 点,反之亦然,直到叶子节 点, 与叶子
21 年 第2 卷 第 1 02 1 l期
ht:w . sa r. t / wwc -. gc p/ - o n
计 算 机 系 统 应 用
点 p ) 如 果有,就进行替换( p 打开, 2 闭) 2, 即 l p关 ,每次 仅替换一个节 点,这样形成 了新 的关键路径(2p .5. p -3p ) 与之 前 的关键路 径相 比,只 改变 了一 个节 点,我们 可
关键词: / ; MCDC 测试 用例:语法树;图
Ra i l Ge r tngAl o ihm o i i um s s to C/ p d y ne a i g rt f rM n m Te tCa eSe n M DC s d o a Ba e n Gr ph
2 1 年 第 2 卷 第 1 期 02 1 1
ht:w . Sa r. t / wwc —. g n p/ ・ o c
计 算 机 系 统 应 用
基 于图的 MC D / C最小测试用例集快速生成算法①
黄孝伦
( 重庆信息技术职业学院 软件学 院,重庆 4 4 o o o d
摘
要:依针对 MC/ DC最 小测试用例集 生成效 率的 问题,依据 MC/ C准则,以条件判定组合 的复杂逻辑关 D
非运算.图 1中的语法树经转换赋默认值后得到的图 如图 2所示, 中顶 点 V 、v、v 其 S i e是为便于描述添加 的虚顶 点.在 图中,以同一个顶 点为弧头 的邻接 点称 之为并联节点( p , , 4,否则为串联 节点( p ) 如 l2 p) p 如 3. 每个顶点 的默认值赋值规则为:串联节点赋默认值 1 , 在构成并联关系 的节 点中任选一个 并联 节点赋默认值 1 其余赋默认值 0 , .
算法 ,该算法利用 二叉树 对布 尔表达 式进行 转化,然
后将 二叉树依据规 则转换为 图结构,最后直接 从图 中
快速得 出最 小化测试用例集.
1 MCDC / 相关概念
MC D 准 则要求 : 判 定中的每一个条件 的所 /C ① 有可 能结果至 少 出现一 次:② 每 一个判 定本 身 的所
兰 式,然后 归约得 到真值 表,最后化 解真值 表到 最小 测 试集合 【 l 】 .快速 生成 法算法 不对布 尔表达 式进行 任 何转化,而 是根据 布尔 表达式 与语法 树对应特 征,绕
过语法树直对布尔表 达式进行归 约得 出最小化测试用 例 集【 2 】 .目前这些方法只适合处理 由标准运算符 ad n、 o r构成 的非平 凡布 尔表达式,而且难 以避免手工基于 MC/ C准 则分析 复杂的逻辑关系而造成 的考虑不全 D
MCD (P 正条件 判定覆 盖 / C  ̄修 标准 是由欧美 的航
空/ 天制 造厂 商和 使用 单位 联合制 定 的 “ 空运输 航 航
本文结合快速 生成法 与布尔表达式 的树 型结构的 思想,设计 了一种基于 图结构快速 生成测试用 例集 的
和 装备系 统软 件认 证标 准” .与完 全节 点式 、完 全边
路 p -3 5 使得 o t l - , pp u 端有输 出, 我们把这条路径称之 为 图的关键 路径,下述生成测试用 例集 的方法称之 为 关键路径法.由于隶属于关键路径 的每个 开关 p 可 以 i
独立影响 o t u 端的结果, 其特征符合 MCDC准 则要求, /
因此,根据 关键路径法可 以直接生成最小测试用例集 .
按照一 定的转换规则 , 我们 可 以将语法树 转换为 不带布尔运算符的 图, 其转换规则如下: d 点包含 n a 节 的子节 点,子节 点之 间 由串联关系表示;o r节 点包含
的子节点, 子节 点之 间由并联关系表示; O 节 点同 o Xl " T 节点处理规则; 于 n t 对 o 节点, 则将 n t o 运算符按布尔
式 、定义. 应用对等测试标准相 比较, / MCDC标准是一 种 非常严格 的测试 标准,已在 国外 的国防、航 空航 天 领域得到广泛应用.在 国内, 对 MCD 针 / C的测试用例 集 生成 算法研 究方 面,主要有 最小真值表 法和快速 生 成 法.最小真值表 法将原 始的布尔表达 式转换 为逆波
集就是不完整 的.
C i nk hl si原则:对于使用 MCD 方法的任何表 e /C
来自百度文库
达式 当具有 N 个条件 时, 一个测试集合最少含 有 N 1 + _
组元素【 引.
定义 2 .设 A是一布 尔表达式, lp ,…, n 为 A p,2 p 中 n个分量记为 p(≤i ) i 1 ≤n称为 A 的条件,当 p每 i 个只 出现一次则称 A为非平凡布尔表达式 [ 6 】 .
对. 接下来,再考 虑其他 的节 点,为了满 足 MCD / C准 则要 求,我们 只需 改变关 键路径 ,纳入其 他节 点,然
后按照上述方式生成测试用例.改变关键路径 的规则: 以当前关键路径为对象(1 3p ) p . -5,考虑每个节点是否 p 有并联节点与之形成并联关系( p 如 l顶 点存在并联节
HUAN G io Lu Xa- n
( h n qn fr t n eh oo y ol e C o g ig 0 0 1C ia C o g ig nomai cn lg l g , h n qn 4 0 , hn ) I oT C e 4
A b tac : rt e p o e fe ce c o i i u e tCa e S to C/ C,b s d o C |D C rt ra a d te sr t Fo h r blm o f i n y f rM nm m T s s e n M i D ae nM c e n h i i
s n a r e t e u n d t es tx te n o a g a h y tx te , n tr e y a r e it r p .Ac o dn o te e e to o e ft e g a h t h e iin h e h h n c r ig t h f c n n d so h p o te d c so ,t r
c mp e eai n h p f o i ai n o n i o sa d d cso , h a e mn d ao g n l o l a x r s in i t o lx r lt s i so mb n t f o d t n n e ii n t ep p r u e r i a o e n e p e s o a o c o c i t i b o n
成,分别 使得判 断结 果为 “ ” “ ” T 和 F ,同时构成 这两
个布尔取值项 中的条件 有且只有一个条件 的布尔取值
发生变化,而其他条件 的布 尔取值 不变【. / C 准 4 MCD 】
则要 求测试用例集 覆盖所有条件,即任一条件 存在测 试用例对应 其至少一个 MCD 对,否则该测试用例 /C
于布尔表达式( lr 2adp r 4 ad(5o p ) 其 ( op ) p n 3 p) O n p r 6,
.
图 3 简化 图 在 图 3中假设 o t u 端有输 出表示为 1 ,无输 出表示
语法树如 图 1 所示.
为0 ;每个开关 p 闭合表示为 1 打开表示为 0 按照 i , . 上述默认值 赋值规则赋值之 后, 以获得唯一 一条通 可
pa e r p s d te g a h ba e a tag rt m o ge e ae t e s l s e fts a e . n l , e p pe e fe n p rp o o e r p - s d f lo h t n r t mal tsto tc s s Fi al t a rv ri d a d h s i h e e yh i c mpae eag rt m t t e s t er s lss o t a eag rt m a r ci ai n u e o i . o r dt l o i h h wiho r . e ut h w t lo h h sp a tc l y a d s p r r y h h h t h i t i t Ke ywo d : C/ r sM DC; e tc s ; y txte ; r p ts a e s n a r e g a h
条件表示 不含有布 尔操作符 号的布尔表 达式.判
定表 由条件和零或者多个布尔操作符号组成 的布尔表
A pi eh iu p ldTcnq e应用 技术 1 5 e 4
计 算 机 系 统 应 用
3 算法分析
根据上面算 法的步骤和规则便可快速 实现 自动和
手动生成 MC/D C最 小测试用例集 的具体方法.与最
获得这个节点独立影响判定 结果 的 MCD / C对 . 如此循 环,直到最 后一个节 点被替换. 根据 C i nk 原则,为 hl si e 了直接获得最 小测试用例 集,在 以新 的关键 路径 生成
ht:ww csa r. t / w. -. ge p/ - o n
21 0 2年 第 2 卷 第 1 1 1期
达式 . 果一个判 定 中的某一条件 多次 出现 , 么其 如 那
每次 出现均为不同的条件【 4 J . 定义 1 MC D . / C对是 由两个不 同的布尔取值项构
节点 结合,视为一个特 殊条件 , 次取值 时要做一个 每
测试用例 时, 我们 以第 1 组测试用例为对象,进行转换.
由图 3的当前状态, 我们可直接得到表 1中第 1组测
试用例.同时,根据定义 1 我们可 以由关键路径获得 , 与第 1组测试用例 构成 MCD 对 的其他三组测试用 /C
图 1 语法树
例.由于隶属于关键路 径的节 点取值 的变化可 以独立 影响 o t u 端的结果 , 因此直接把在第 1 组测试用 例中隶 属于关键 路径 的节 点的值进行翻转,就可 得到表 1中 的 2 、4三组测试用例, 、3 它们和第 1 组形成 MCDC /
问题 .
① 收稿 时间 : 1-31; 到修 改稿 时 间:020 -3 2 20 -5收 0 2 1-42
有结果 也至少 出现 一次 ; 每一个 条件 都能 单独地 ③
影响判 定的结果,即在其他 条件不变 的情况下 改变 这
个条件 的值, 得判定结果改变 ; 每一个 入 口与 出 使 ④
图 2 不带布尔运算符 的图 为 了说 明算法 原理,我们可进一步,将 图 2简化 为一个 电路 图.图 2的简化形式如 图 3所示.
2 算法设计与验证
任 何一 个布 尔表达 式都 可 以归结为 一个语 法树 。
布 尔表达式 的条件 由树 的叶节 点表 示, 尔表达式 中 布
的 ad o、 o、 o 等布 尔运算符 由非叶节点表示. n 、 rxrnt 对
系为研究对象,采用将原始布 尔表 达式转化为语法树,再将语法树 转化为图,分析 图中节点对判定结果 的影 响的 方法, 究了基于 图快速 生成最小测试用例集 的算法 . 研 最后 结合实例对该算法进行 了验证,并与其他算法进行 了
比较,结果表明该算法在手动和 自动生成最小测试用例集 时具有实用 性和优越 性.
代数 的基本定律和规则沿子树下移, 如遇 a d子节 点, n
则改为 O r子节 点,反之亦然,直到叶子节 点, 与叶子
21 年 第2 卷 第 1 02 1 l期
ht:w . sa r. t / wwc -. gc p/ - o n
计 算 机 系 统 应 用
点 p ) 如 果有,就进行替换( p 打开, 2 闭) 2, 即 l p关 ,每次 仅替换一个节 点,这样形成 了新 的关键路径(2p .5. p -3p ) 与之 前 的关键路 径相 比,只 改变 了一 个节 点,我们 可
关键词: / ; MCDC 测试 用例:语法树;图
Ra i l Ge r tngAl o ihm o i i um s s to C/ p d y ne a i g rt f rM n m Te tCa eSe n M DC s d o a Ba e n Gr ph
2 1 年 第 2 卷 第 1 期 02 1 1
ht:w . Sa r. t / wwc —. g n p/ ・ o c
计 算 机 系 统 应 用
基 于图的 MC D / C最小测试用例集快速生成算法①
黄孝伦
( 重庆信息技术职业学院 软件学 院,重庆 4 4 o o o d
摘
要:依针对 MC/ DC最 小测试用例集 生成效 率的 问题,依据 MC/ C准则,以条件判定组合 的复杂逻辑关 D
非运算.图 1中的语法树经转换赋默认值后得到的图 如图 2所示, 中顶 点 V 、v、v 其 S i e是为便于描述添加 的虚顶 点.在 图中,以同一个顶 点为弧头 的邻接 点称 之为并联节点( p , , 4,否则为串联 节点( p ) 如 l2 p) p 如 3. 每个顶点 的默认值赋值规则为:串联节点赋默认值 1 , 在构成并联关系 的节 点中任选一个 并联 节点赋默认值 1 其余赋默认值 0 , .
算法 ,该算法利用 二叉树 对布 尔表达 式进行 转化,然
后将 二叉树依据规 则转换为 图结构,最后直接 从图 中
快速得 出最 小化测试用例集.
1 MCDC / 相关概念
MC D 准 则要求 : 判 定中的每一个条件 的所 /C ① 有可 能结果至 少 出现一 次:② 每 一个判 定本 身 的所
兰 式,然后 归约得 到真值 表,最后化 解真值 表到 最小 测 试集合 【 l 】 .快速 生成 法算法 不对布 尔表达 式进行 任 何转化,而 是根据 布尔 表达式 与语法 树对应特 征,绕
过语法树直对布尔表 达式进行归 约得 出最小化测试用 例 集【 2 】 .目前这些方法只适合处理 由标准运算符 ad n、 o r构成 的非平 凡布 尔表达式,而且难 以避免手工基于 MC/ C准 则分析 复杂的逻辑关系而造成 的考虑不全 D
MCD (P 正条件 判定覆 盖 / C  ̄修 标准 是由欧美 的航
空/ 天制 造厂 商和 使用 单位 联合制 定 的 “ 空运输 航 航
本文结合快速 生成法 与布尔表达式 的树 型结构的 思想,设计 了一种基于 图结构快速 生成测试用 例集 的
和 装备系 统软 件认 证标 准” .与完 全节 点式 、完 全边
路 p -3 5 使得 o t l - , pp u 端有输 出, 我们把这条路径称之 为 图的关键 路径,下述生成测试用 例集 的方法称之 为 关键路径法.由于隶属于关键路径 的每个 开关 p 可 以 i
独立影响 o t u 端的结果, 其特征符合 MCDC准 则要求, /
因此,根据 关键路径法可 以直接生成最小测试用例集 .
按照一 定的转换规则 , 我们 可 以将语法树 转换为 不带布尔运算符的 图, 其转换规则如下: d 点包含 n a 节 的子节 点,子节 点之 间 由串联关系表示;o r节 点包含
的子节点, 子节 点之 间由并联关系表示; O 节 点同 o Xl " T 节点处理规则; 于 n t 对 o 节点, 则将 n t o 运算符按布尔
式 、定义. 应用对等测试标准相 比较, / MCDC标准是一 种 非常严格 的测试 标准,已在 国外 的国防、航 空航 天 领域得到广泛应用.在 国内, 对 MCD 针 / C的测试用例 集 生成 算法研 究方 面,主要有 最小真值表 法和快速 生 成 法.最小真值表 法将原 始的布尔表达 式转换 为逆波
集就是不完整 的.
C i nk hl si原则:对于使用 MCD 方法的任何表 e /C
来自百度文库
达式 当具有 N 个条件 时, 一个测试集合最少含 有 N 1 + _
组元素【 引.
定义 2 .设 A是一布 尔表达式, lp ,…, n 为 A p,2 p 中 n个分量记为 p(≤i ) i 1 ≤n称为 A 的条件,当 p每 i 个只 出现一次则称 A为非平凡布尔表达式 [ 6 】 .
对. 接下来,再考 虑其他 的节 点,为了满 足 MCD / C准 则要 求,我们 只需 改变关 键路径 ,纳入其 他节 点,然
后按照上述方式生成测试用例.改变关键路径 的规则: 以当前关键路径为对象(1 3p ) p . -5,考虑每个节点是否 p 有并联节点与之形成并联关系( p 如 l顶 点存在并联节
HUAN G io Lu Xa- n
( h n qn fr t n eh oo y ol e C o g ig 0 0 1C ia C o g ig nomai cn lg l g , h n qn 4 0 , hn ) I oT C e 4
A b tac : rt e p o e fe ce c o i i u e tCa e S to C/ C,b s d o C |D C rt ra a d te sr t Fo h r blm o f i n y f rM nm m T s s e n M i D ae nM c e n h i i
s n a r e t e u n d t es tx te n o a g a h y tx te , n tr e y a r e it r p .Ac o dn o te e e to o e ft e g a h t h e iin h e h h n c r ig t h f c n n d so h p o te d c so ,t r
c mp e eai n h p f o i ai n o n i o sa d d cso , h a e mn d ao g n l o l a x r s in i t o lx r lt s i so mb n t f o d t n n e ii n t ep p r u e r i a o e n e p e s o a o c o c i t i b o n
成,分别 使得判 断结 果为 “ ” “ ” T 和 F ,同时构成 这两
个布尔取值项 中的条件 有且只有一个条件 的布尔取值
发生变化,而其他条件 的布 尔取值 不变【. / C 准 4 MCD 】
则要 求测试用例集 覆盖所有条件,即任一条件 存在测 试用例对应 其至少一个 MCD 对,否则该测试用例 /C
于布尔表达式( lr 2adp r 4 ad(5o p ) 其 ( op ) p n 3 p) O n p r 6,
.
图 3 简化 图 在 图 3中假设 o t u 端有输 出表示为 1 ,无输 出表示
语法树如 图 1 所示.
为0 ;每个开关 p 闭合表示为 1 打开表示为 0 按照 i , . 上述默认值 赋值规则赋值之 后, 以获得唯一 一条通 可
pa e r p s d te g a h ba e a tag rt m o ge e ae t e s l s e fts a e . n l , e p pe e fe n p rp o o e r p - s d f lo h t n r t mal tsto tc s s Fi al t a rv ri d a d h s i h e e yh i c mpae eag rt m t t e s t er s lss o t a eag rt m a r ci ai n u e o i . o r dt l o i h h wiho r . e ut h w t lo h h sp a tc l y a d s p r r y h h h t h i t i t Ke ywo d : C/ r sM DC; e tc s ; y txte ; r p ts a e s n a r e g a h