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)语句覆盖
● 选择足够多的测试数据,使被测程序中每条语句至少执行一次
● 缺点:对程序执行逻辑的覆盖很低
(4)判定覆盖
● 设计足够多的测试用例,使得程序中的每一个判定至少获得一次‘真’值和‘假’值,或者使得程序中的每一个取‘真’分支或取‘假’分支至少经历一次,因此又称分支覆盖
● 可以满足语句覆盖
● 缺点:主要对整个表达式最终取值进行度量,忽略了表达式内部取值
(5)条件覆盖
● 设计足够多的测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次
● 不能够满足判定覆盖
(6)条件判定组合覆盖
● 设计足够多的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果也至少出现一次
● 缺点:没有考虑单个判定对整体结果的影响,无法发现逻辑错误