Bootstrap

软件测试区分:条件组合覆盖、语句覆盖、判定覆盖、条件覆盖、路径覆盖

  1. 语句覆盖(Statement Coverage)

    • 定义:确保测试套件中的每个可执行语句至少执行一次。
    • 特点:是最基本的覆盖方法,只关注语句是否被执行,而不关心逻辑或条件。
    • 缺点:可能遗漏某些逻辑错误,因为只关注语句执行,不关注条件或判定。
  2. 判定覆盖(Decision Coverage)或分支覆盖(Branch Coverage)

    • 定义:确保每个判定(分支点)的每个可能结果(真和假)至少发生一次。
    • 特点:关注判定(如if-else语句)的每个可能结果是否都被测试到。
    • 缺点:虽然比语句覆盖更强,但仍然可能遗漏某些路径,特别是当多个条件组合时。
  3. 条件覆盖(Condition Coverage)

    • 定义:确保每个条件(在判定中的每个子表达式)的每个可能结果(真和假)至少发生一次。
    • 特点:关注判定中的每个条件,确保它们的每个可能结果都被测试到。
    • 缺点:虽然测试了每个条件的结果,但可能没有测试到条件的组合。
  4. 条件组合覆盖(Multiple Condition Coverage)

    • 定义:确保判定中每个条件的每个可能结果组合至少发生一次。
    • 特点:这是条件覆盖的扩展,它考虑了条件之间的组合,确保所有可能的组合都被测试到。
    • 优点:比条件覆盖更强,能够发现更多逻辑错误。
    • 缺点:随着条件数量的增加,测试组合的数量会急剧增加,可能导致测试成本过高。
  5. 路径覆盖(Path Coverage)

    • 定义:确保程序中所有可能的独立路径至少执行一次。
    • 特点:这是最强的覆盖方法,因为它测试了程序的所有可能执行路径。
    • 缺点:对于复杂的程序,路径数量可能非常大,甚至是指数级的,因此实现路径覆盖可能是不切实际的。

对于逻辑表达式((a>0)&&(b>0))||(c<5),需要()个测试用例才能完成条件组合覆盖

A 、2   B、4  C、6  D、8

答案是D,2的3次方,等于8

;