计算机软考软件测评师考试小结(20)
白盒测试方法-动态测试(即设计测试用例的方法)
1. 白盒测试的动态测试原则-根据程序的控制结构设计测试用例
(1) 保证每个模块的所有独立路径至少被使用一次
(2) 对所有的逻辑值均测试true和false
(3) 上下边界及可操作范围内运行所有循环
(4) 检查内部数据结构以确保其有效性
2. 逻辑覆盖法
(1) 概述:逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖
(2) 分类-依据覆盖源程序语句的详尽程度:语句覆盖SC(Statement Coverage)、判定覆盖DC(Decision coverage)、条件覆盖CC(Condition Coverage)条件判定组合覆盖CDC(Condition/ Decision Coverage)、多条件覆盖MCC(Multiple Condition Coverage)、修改条件判定覆盖 MCDC(Multiple Condition Decision Coverage)。
(3) 语句覆盖
l 选择足够多的测试数据,使被测程序中每条语句至少执行一次
l 缺点:对程序执行逻辑的覆盖很低
(4) 判定覆盖
l 设计足够多的测试用例,使得程序中的每一个判定至少获得一次‘真’值和‘假’值,或者使得程序中的每一个取‘真’分支或取‘假’分支至少经历一次,因此又称分支覆盖
l 可以满足语句覆盖
l 缺点:主要对整个表达式最终取值进行度量,忽略了表达式内部取值
(5) 条件覆盖
l 设计足够多的测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次
l 不能够满足判定覆盖
(6) 条件判定组合覆盖
l 设计足够多的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果也至少出现一次
l 缺点:没有考虑单个判定对整体结果的影响,无法发现逻辑错误
(7) 多条件覆盖
l 也称条件组合覆盖,设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)
l 满足条件覆盖一定满足判定覆盖、条件覆盖、条件判定组合覆盖
l 缺点:判定语句较多时,条件组合值比较多
(8) 修正条件判定覆盖
l 每一个程序模块的入口和出口点都要考虑至少要被调用一次,每个程序的判定到所有可能的结果值要至少转换一次
l 程序的判定被分解为通过逻辑操作符(and,or)连接的bool条件,每个条件对于判定的结果值是独立的