用途:变异测试用于验证测试套件的真实有效性。它通过对代码注入变异(如把 + 改成 -、>= 改成 >、删除语句),再运行测试,检验测试能否捕获这些变异(杀死变异体),从而判断测试是否真能发现缺陷。资料强调高代码覆盖率不等于好测试,100%覆盖率但断言薄弱等于无效。
主要能力:注入多种变异算子,包括算术、关系、逻辑、条件与语句删除;运行测试并统计杀死、存活、无覆盖和超时数量;计算变异分数(Killed / (Killed + Survived)),目标通常高于80%;识别存活变异体以定位薄弱测试;针对存活变异体补充边界值测试。
用法:以 JavaScript/TypeScript 生态为例,安装 @stryker-mutator/core 与 @stryker-mutator/jest-runner,运行 npx stryker init 初始化,在配置中指定 testRunner、coverageAnalysis、mutate 范围与 thresholds,然后执行 npx stryker run 查看分数与存活变异体。资料还给出智能体驱动方式:调用 qe-test-generator 分析目标文件的变异分数并生成缺失测试,调用 qe-coverage-analyzer 关联覆盖率与变异数据识别薄弱覆盖。
适用场景:评估测试套件质量、发现断言缺口、证明测试能捕获缺陷、关键发布前验证;优先针对支付、认证、数据完整性等关键路径,而不是对全部代码做变异测试。
限制:资料未提供具体支持的编程语言全集、运行环境要求、执行耗时、价格或收费信息、平台兼容性及与其他工具的集成细节,这些暂未提供。应避免在低价值代码上全量运行,且变异测试不能替代对业务需求的正确性判断。