黑盒测试方法论
常用测试方法
- 等价类划分
- 边界值分析
- 因果图
- 判定表
- 决策树
- 探索式测试
等价类
- 输入域明确:把程序的输入域划分为若干子集
- 分类:从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。
- 常见分类:有效,无效等价类
边界值
- 根据经验大多数的错误都是来自于对边界值的处理不严谨,所以把边界值作为重点测试数据。
- 边界值测试法是对等价类的补充。
探索式测试
- 是一种基于上下文质量反馈的测试风格
- 基于上下文的反馈,适时调整测试执行
- 探索式测试通常被认为是黑盒测试技术,在白盒测试中也可以应用类似的思想去实施(基于实时反馈的精准化测试)
探索式测试优缺点
- 成本低,可以不用提前设计大量测试用例
- 可以激发测试工程师的创造性,更快的发现问题
- 对测试的覆盖度无法进行有效保障
- 多数测试活动都是由探索式测试与脚本式用例结合
白盒测试方法论
白盒测试的度量
- 根据待测产品的内部实现细节来设计测试用例
- 白盒测试的执行手段是可以涵盖单元测试/集成测试
- 使用代码覆盖率来作为白盒测试的主要度量指标
代码覆盖率常见概念
- 语句覆盖:每行代码都要覆盖至少一次
- 判定覆盖:判定表达式的真假至少要覆盖一次
- 判定/条件覆盖:判定覆盖与条件覆盖都必须覆盖
- 条件组合覆盖:判定表达式中的所有条件组合都需要覆盖
- 分支覆盖:控制流中的每条边都要被覆盖一次
- 路径覆盖:所有的路径都要覆盖
- 指令覆盖:一行代码会被编译成多条指令,尽可能的覆盖所有指令
- 方法覆盖:每个方法至少要被覆盖一次
- 类覆盖:每个类至少被覆盖一次
覆盖率统计的工具
- emma
- cobertura
- jacoco