计算 整数X和整数Y的最大公约数 的程序流程图如图4-9所示。 图4-9中的虚线框是为了记录 语句的执行次数而插入的,其 形式为: C(i) = C(i) +1 i=1,2,…6 开始 c(1) = c(1) +1 为X、Y赋值 c(2) = c(2) +1 T F X≠Y C(3) = C(3) +1 C(4) = C(4) +1 ? 程序从入口开始执行到出口结 束执行,经过的计数语句记录 下该程序点语句的执行次数。 若在程序的入口处插入了对计 数器C(i)初始化的语句,在程 序出口处则插入打印这些计数 器的语句,则构成了一个完整 的插桩程序。 T X >Y C(5) = C(5) +1 F 结束 C(6) = C(6) +1 X = X -Y Y=Y-X ? 设计程序插桩方法时需考虑如下问题: ?应探测程序中的哪些信息。 ?在程序的什么位置设置探测点。 4.3 白盒测试方法的综合使用策略 ? (1) 静态测试和动态测试的时序关系 一般可先进行静态测试,接着进行动态测试。 ? (2) 白盒测试的重点 覆盖率测试是白盒测试的重点,一般可使用基本路径测试方法来使 基本路径集合中的每条独立路径至少执行一次。 ? (3) 不同测试阶段使用的白盒测试方法 在单元测试阶段,以代码检查法、逻辑覆盖法、基本路径测试法为主。 ? 在集成测试阶段,需增加静态结构分析法、代码质量度量法。 ? 在集成测试之后的测试阶段,应尽量使用黑盒方法,有选择性地使用 白盒测试方法。 ? 4.4 对黑盒、白盒测试方法的总结 ? 黑盒测试: ? 优点:从程序外部进行测试,成本较低。 ? 不足:仅从外部测试,有时不准确;无法发现内存泄 漏、误差累积等隐患。 ? 白盒测试 ? 优点:深入到程序内部进行测试,能发现比黑盒测试 更多的错误,也更易于定位错误,并能得出测试对代 码的覆盖率。 ? 不足:测试成本较高。 ? 一般说来,在单元测试阶段,以使用白盒测试法 为主;在集成测试阶段,可使用黑盒、白盒相结 合的方法;在集成测试之后,应主要使用黑盒方 法。 ? 4.5 小结 ?本章介绍了白盒测试方法的含义,及各种典型的 白盒测试方法。白盒测试的方法很多,应根据被 测项目的具体情况灵活选择。还应注意把握白盒 测试和黑盒测试的关系。