SuperAPI AI 工具集

tests-adversarial

测试与质量

查看项目

更新于 10-16 03:13

技能介绍

用途:该技能用于编写对抗性测试,主动压测失败路径,适用于加固错误处理、压力测试假设、验证边界行为等场景。核心理念是不信任而非覆盖率——只测正常路径的测试套件不能证明什么。

主要能力:提供一套“假设搜寻”方法,对被测函数或模块提出六类问题:对输入、顺序、时序、状态、资源以及“不会发生之事”的假设,并逐一违反。给出数据、状态、环境、协议四类攻击向量提示,例如零值、负数、NaN、空集合、双重关闭、并发修改、文件缺失、权限拒绝、网络超时、时钟跳变、乱序消息、部分写入、版本不匹配等。

使用方式:先阅读代码理解实际行为,再逐条列出隐含假设,为每条假设编写一个违反测试,并按所违反内容命名(如 test_rejects_negative_quantity)。验证错误质量,从两侧测试边界(上限100则测99、100、101)。最后运行 ASan、MSan、TSan、-race、Miri 等消毒器与竞态检测器。

验证门与退出码:需满足假设已记录、违反已测试、错误有意义、消毒器通过四项条件。退出码0表示全部假设已识别、违反并处理;1表示仍有未测试假设;2表示发现静默失败;3表示发现崩溃或未定义行为。

限制:仅通过公共 API 测试,若需私有访问才能破坏,应作为抽象泄漏问题记录;每个场景须在生产环境可信,不可用宇宙射线等不可信场景;无法用类型或契约证明“不可能”的场景就应测试。