AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
[TOC] ## 白盒测试 白盒测试根据软件的内部逻辑设计测试用例,常用的技术是逻辑覆盖,即考察用测试数据运行被测程序时对程序逻辑的覆盖程度。主要的覆盖标准有6种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合条件覆盖和路径覆盖。 1. **语句覆盖(Statement Coverage)** 选择足够多的测试用例,使得运行这些测试用例时,被测程序的每个语句至少执行一次。 > 注意:语句覆盖是一种较弱的覆盖标准。 2. **判定覆盖/分支覆盖(Decision/Branch Coverage)** 要求不仅每个语句至少执行一次,而且每个判定的每种可能结果(分支)都至少执行一次。 **关注点**:整个判定语句(if/while 等)的**最终结果**是 true 还是 false。如`if (a > 0 || b < 5)`, 判断整体的`a > 0 || b < 5` 是否为true 或false > 判定覆盖比语句覆盖更严格,但覆盖程序逻辑的程度仍不高。 3. **条件覆盖(Condition Coverage)** 要求每个语句至少执行一次,并使判定表达式中的每个条件都取得各种可能的结果。 **关注点**:判定语句内部的**每个条件**(a>0、b<5)是否取到 true 和 false。 > 条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖。 4. **判定/条件覆盖(Decision/Condition Coverage)** 同时满足判定覆盖和条件覆盖的逻辑覆盖。 > 含义:选取足够的测试用例,使得判定表达式中每个条件的所有可能结果至少出现一次,并且每个判定本身的所有可能结果也至少出现一次。 5. **条件组合覆盖(Condition Combination Coverage)** 要求选取足够的测试用例,使得每个判定表达式中条件结果的所有可能组合至少出现一次。 > 条件组合覆盖是上述覆盖标准中最强的一种,但仍不能保证程序中所有可能路径都至少执行一次。 > 满足条件组合覆盖的测试用例,也一定满足判定/条件覆盖。 6. **路径覆盖(Path Coverage)** 要求选取足够的测试用例,使得程序的每条可能执行到的路径至少经过一次。 > 对于程序中有环路的情况,每条环路路径至少经过一次。