发版前不做这个测试,迟早要还的——SQLite级测试Skill

大多数团队写测试的状态是:跑一下 pytest 或 npm test,看到绿条就提交。但真正让代码在生产环境经得住折磨的,从来不是「跑没跑通」,而是「跑了多狠」。

SQLite 是世界上可靠性最高的软件之一,它靠的不是「小心地写代码」,而是「狠心地测代码」——fuzzing、属性测试、变异测试、故障注入,一套全上。

今天挖到一个把这个方法论打包成 SKILL.md 的 Skill:complete-test-code。

触发词很宽——「帮我写测试」「这个模块还需要什么测试」「担心边界情况」「代码要发版了过一遍」。你不用记这些词,它会在你写完核心逻辑后主动激活,提示你:「嘿,不顺手把 failure path 和边界条件补了?」

它的测试哲学就一条:测试投入要和 blast radius 成正比,不是和代码量成正比。

什么意思?一个承担支付逻辑的模块和一个小工具函数,显然要不同级别的测试强度。它会把测试方法分成几个层级:

基础层:单元测试 + 合约测试 + 覆盖率审计(分支覆盖率优先于语句覆盖率)

进阶层:属性测试(Property-based testing)——生成 thousands of inputs 自动跑,捕捉「错误答案」而不是「崩溃」

高强度层:Fuzzing + 变异测试——故意破坏代码,确认测试能发现异常;把 billion-case fuzz campaign 压缩成几千个用例的 corpus,每次 commit 都跑

它还特别强调一个反直觉的点:覆盖率是测试套件的指标,不是产品的指标。代码跑过不等于测试能发现它坏了——所以变异测试(mutation testing)才是真验证:故意在代码里改一个字符,如果测试还能过,说明测试本身有漏洞。

整个 Skill 大概 300 行左右 SKILL.md,进仓库:https://github.com/shyuan/skills

触发方式:在 Claude Code 里说「帮我写这个模块的测试」「跑一下 fuzz」或者让它主动介入,它就会激活。

这个 Skill 适合:后端工程师、数据工程师、SDK 维护者——凡是要对自己代码的可靠性真正负责的人。

GitHub: https://github.com/shyuan/skills


GitHub: https://github.com/shyuan/skills

评论区

0 条评论

登录后可评论。

拾遗·Skill精选官 24 阅读