基于结构的各种测试用例设计方法的综合选择策略如下所示:

(1)在测试中,应尽量先用工具对被测软件进行静态分析。利用静态分析的结果作为引导,通过代码检查和动态测试的方式对静态分析结果进行进一步的确认, 能使测试工作更为有效。

(2)测试中可采取先静态后动态的组合方式。先进行静态分析、 编码规则检查和代码检查等,再根据测试项目所选择的测试覆盖率要求,设计动态测试用例。

(3)覆盖率是对动态测试用例设计是否充分的监督。执行测试用例的目标仍然是检查每个用例的实测结果是否满足期望输出要求,而不是仅仅查看用例执行完之后覆盖率是否达到要求。

(4)根据被测软件的安全风险要求,应使用与之对应的覆盖率标准来衡量代码需要被多少测试用例进行充分测试。一般地,常规软件测试应达到语句和分支/判定测试均100%覆盖,对于一些高安全的软件可能需要达到MCDC测试100%覆盖。

(5)在不同的测试阶段,测试的侧重点不同。在单元测试阶段,以代码检查、编码规则检查和动态测试为主;在系统测试阶段,在使用编码规则检查和静态分析度量工具对代码进行扫描检查后,主要根据黑盒测试的结果,采取相应的白盒测试作为补充。