2026年8月15日 大语言模型能建议 Metamorphic Relations,但它们无法保证正确性 大语言模型在发现 test oracles 时是个不错的头脑风暴伙伴,但它们会产生幻觉性质,并遗漏领域约束。以下是如何在不发布虚假测试的前提下使用它们。 metamorphic-testingllmtest-oraclesai-engineering
2026年8月14日 大多数 Metamorphic Relations 都是摆设。以下是如何挑出真正有用的。 并非所有 metamorphic relations 都能捕获 bug。弱关系给你虚假信心,强关系才能发现真正的缺陷。以下是如何区分两者,并构建一组真正有效的关系。 metamorphic-testingmetamorphic-relationstestingoracle-problem
2026年8月13日 正确答案未知时,我该如何测试代码? Metamorphic testing 让你无需知道确切的预期输出就能验证代码正确性。本文介绍它的工作原理、局限性以及如何开始使用。 metamorphic-testingoracle-problemtestingml
2026年8月12日 TypeScript 不会让你发出那次调用:在类型系统中编码协议状态 如何使用 phantom types 和 `this` 参数,将非法的协议转换从运行时 bug 变成编译期错误。 session-typestypescriptprotocol-statetype-systems
2026年8月11日 OpenAPI 给了你词汇表,Session Types 需要的是语法 OpenAPI 规范描述了请求和响应的 schema,但并未规定合法的消息序列。本文介绍你能从中提取什么,以及哪些地方仍需手动补全。 session-typesopenapiprotocol-specsapi-design
2026年8月10日 会话类型是有效的。大多数语言只是拒绝实现它们。 会话类型将通信协议编码到类型系统中,将运行时协议错误转化为编译时错误。以下是它们为何在论文中停留三十年才被生产代码采用的原因。 session-typesresearchadoptiontype-systems
2026年8月9日 会话类型如何将死锁转化为编译器错误 会话类型将通信协议编码到你的类型系统中,在代码运行之前将消息传递不匹配转化为编译器错误。 session-typesdeadlockscompile-timeprotocols
2026年8月8日 抽象诠释听起来像博士学位的要求。现在已经不是了 如何使用Infer在CI管道中运行形式化静态分析,包含可工作的配置和现实权衡。 abstract-interpretationci-cdstatic-analysisinfer
2026年8月7日 LLM可以为你的静态分析警告排序。只是无法解释原因。 大语言模型可以帮助分流静态分析中的误报,但它们无法像抽象解释那样理解程序语义。以下是如何将两者结合。 abstract-interpretationllmstatic-analysisfalse-positives
2026年8月6日 Facebook用抽象诠释实现了Android并行化。以下是它的工作原理。 Facebook如何利用抽象诠释和有意的不完整性,在数百万行Android代码中大规模发现竞态条件。 abstract-interpretationconcurrencyandroidrace-conditions