测试用例优先级排序的矛盾是有限的测试预算与尽可能早地暴露高价值缺陷之间的张力。
1. 风险优先
按风险发生概率乘以影响严重度排序,优先执行包括高风险模块、高风险场景的用例。
适合:安全重点、金融交易、合规约束强的系统。
优点:优先暴露高损失缺陷;局限:风险评分依赖跨职能输入,主观性较强。
2. 需求优先
根据需求业务作用、客户优先级、需求变更频率、需求级缺陷历史等排序。
适合:需求确定、验收驱动、业务方参与度高的项目。
优点:和业务作用对齐,易解释;局限:粒度一般粗于用例,对代码级变更响应滞后。
3. 历史优先
根据历史执行结果排序,如上次失败、近期失败频率、缺陷聚集模块、不稳定用例等。
适合:有连续测试数据的成熟产品、长期维护系统和 CI 回归。
优点:数据采集成本低、回归缺陷复现快;局限:可能自我强化,长期通过用例被降权,新风险区域被低估。
4. 包括优先
按用例对代码或需求的包括程度排序,常和变更感知结合,优先包括最近修改的代码。
适合:快速迭代、修改局部化程度高的代码库和CI/CD流水线。
优点:客观、可自动化采集、实施规则低;局限:高包括不等于高缺陷暴露能力。
5. 成本优先
在执行成本方面上排序,优先单位成本缺陷发现率更高的用例,考虑运行时长、环境占用、人工准备时间等。
适合:设备/环境资源紧张、长尾回归套件、时间窗口受限的场景。
优点:提升单位时间缺陷发现率;局限:不宜单独使用,否则可能把高风险但耗时的用例推到末尾。
单一方法往往不够的,常见做法是包括优先加历史优先做基础排序,再用风险优先上浮重点模块,最后用成本优先做时间窗口内的修正。