测试设计重要性

  设计是测试的灵魂,质量的龙头。

  测试设计面临问题

  1、测试对象的逻辑路径和测试输入数据的组合几乎是无穷的,而穷尽的测试是不可能的

  2、不同利益相关者对软件或者软件产品的质量要求是不同的

  3、测试时间和资源有限

  4、测试得到的需求和资源不完整

  5、测试设计语言规范

  穷尽的测试是不可能的

  1、如何有效减少测试用例的数目?

  2、如何避免测试用例之间的冗余?

  3、如何满足测试覆盖率的要求?

  如何有效减少测试用例的数目?

  1、等价类

  (1)有效等价类

  (2)无效等价类

  2、边界值

  如何避免测试用例之间的冗余?

  1、规范测试设计

  (1)按照一定的设计思路进行测试用例设计

  (2)减少热带风暴

  2、可复用的测试用例

  特性:通用性、有效性、独立性

  如何满足测试覆盖率的要求?

  测试覆盖率常用的计算公式:

  1、 功能覆盖率

  至少被执行一次的测试功能点数/ 测试功能点总数(功能点)

  2、 需求覆盖率

  被验证到的需求数量 /总的需求数量(需求)

  3、覆盖率

  至少被执行一次的测试用例数/ 应执行的测试用例总数

  4、语句覆盖率

  至少被执行一次的语句数量/ 有效的程序代码行数

  5、判定覆盖率

  判定结果被评价的次数 / 判定结果总数

  6、条件覆盖率

  条件操作数值至少被评价一次的数量 / 条件操作数值的总数

  7、判定条件覆盖率

  条件操作数值或判定结果至少被评价一次的数量/(条件操作数值总数+判定结果总数)

  8、上下文判定覆盖率

  上下文内已执行的判定分支数和/(上下文数*上下文内的判定分支总数)

  9、基于状态的上下文入口覆盖率

  累加每个状态内执行到的方法数/(状态数*类内方法总数)

  10、分支条件组合覆盖率

  被评测到的分支条件组合数/分支条件组合数

  11、路径覆盖率

  至少被执行一次的路径数/程序总路径数