SuperAPI AI 工具集

tests-adversarial

测试与质量

查看项目

更新于 10-16 03:13

技能介绍

用途:该技能用于编写对抗性测试,像攻击者一样思考,系统性地找出代码中的隐含假设并故意违反它们。目标是“不信任”而非追求覆盖率,因为只测正常路径的测试套件无法证明可靠性。

核心方法:假设猎取。针对每个被测函数或模块,检查其对输入、顺序、时序、状态、资源和“不该发生之事”的假设,并逐一违反,例如类型强制、边界值、空集合、乱序、超时、半初始化状态、资源耗尽、并发修改与递归重入。

常见攻击面:数据(零、负数、NaN、无穷、空字符串、多字节 Unicode、容量边界);状态(重复关闭、错误后读取、并发修改、崩溃中断的半写入状态);环境(文件缺失、权限拒绝、磁盘满、网络超时、时钟跳变、清理时 OOM);协议(乱序、重复投递、部分写入、版本不匹配、超时后响应)。

使用策略:先阅读代码理解真实行为,逐条列出假设,每个假设写一个违反测试并按违反点命名,例如 test_rejects_negative_quantity、test_handles_empty_result_set、test_recovers_from_mid_write_crash;检查失败是否给出有意义的错误;边界两侧都测(如 99、100、101);并在 ASan、MSan、TSan、-race、Miri 等净化器下运行。

限制与规则:只通过公共 API 测试,不借助私有访问;不能用类型或契约证明“不可能”的场景就必须测试;每个场景须在生产中合理。验证门槛包括假设已记录、违反已测试、错误有意义、净化器零警告。退出码:0 全部已处理;1 仍有未测假设;2 发现静默失败;3 发现崩溃或未定义行为。具体安装与使用命令暂未提供。