2026年8月23日 Symbolic Execution 发现了我 94% 测试覆盖率都遗漏的整数溢出 你的单元测试只检查特定输入,而 symbolic execution 检查所有可能的输入。以下是它的工作原理、成本以及从何入手。 additional-strategiessymbolic-executiontestingverification
2026年8月16日 Metamorphic testing 发现了 147 个编译器 bug 和一个自动驾驶汽车缺陷。它是这样工作的。 Metamorphic testing 在 GCC、LLVM、Vulkan shader 编译器和 ADAS 模拟器中发现了真实 bug。本文用可运行的代码解释这项技术,并说明它在你 test suite 中的定位。 metamorphic-testingcase-studyproduction-bugstesting
2026年8月14日 大多数 Metamorphic Relations 都是摆设。以下是如何挑出真正有用的。 并非所有 metamorphic relations 都能捕获 bug。弱关系给你虚假信心,强关系才能发现真正的缺陷。以下是如何区分两者,并构建一组真正有效的关系。 metamorphic-testingmetamorphic-relationstestingoracle-problem
2026年8月13日 正确答案未知时,我该如何测试代码? Metamorphic testing 让你无需知道确切的预期输出就能验证代码正确性。本文介绍它的工作原理、局限性以及如何开始使用。 metamorphic-testingoracle-problemtestingml
2026年7月20日 我把测试、代码和散文都放在一个 Markdown 文件里,再也不用往文档里复制代码了 Literate programming 将 Markdown 文件作为单一事实来源,使文档、测试和实现保持同步。以下是如何用三十行 Python 实现它。 literate-programmingdocumentationtestingsingle-source-of-truth
2026年7月7日 干等 race condition 是最烂的测试策略 model checking 如何在数秒内碾压你在生产环境跑几天才能发现 concurrency bug 的做法,以及如何把它用在自己的代码上。 model-checkingrace-conditionsconcurrencytesting
2026年5月26日 单元测试全绿,但你的数据照样消失 Mock 数据库测试验证的是 SQL 语法,而不是数据行能否在崩溃、并发写入或 schema 不匹配时存活。下面介绍如何真实地测试持久化。 deep-divesdatabasetestingpersistence
2026年5月25日 不被 mock action 淹没地测试 Redux 为每个 Redux action 写 mock 会让你的测试变成 changelog 校验器。下面介绍如何用真实的状态流转来测试 store。 deep-divesreduxtestingstate-management