2026年6月16日 TypeScript が order ID が必要な場所に user ID を通してしまった TypeScript の型エイリアスは区別された型を作らない。ブランド型は作る。コンパイル時に識別子を混同するのを防いでくれる。 type-level-correctnesstypescriptbranded-typesnewtypes
2026年6月15日 Differential Testingは形式的証明なしで機能するが、Common-Mode Failureが落とし穴だ Differential testingを使えば、正解を知らなくてもバグを見つけられる。問題は、相関した誤りが合意に見えることだ。盲点を見つける方法は以下の通り。 n-version-programmingdifferential-testingformal-methodstrust
2026年6月14日 テストでは2つの関数が等価であることは証明できない。では何ができるのか。 N-version programmingは実装が一致することを前提とする。テストがなぜ不十分なのか、SMT solverがいかにして等価性を実際に証明できるのか、そして「十分に良い」と「形式的に検証済み」の境界線をどこに引くべきかを見ていく。 n-version-programmingequivalence-testingformal-methodsverification
2026年6月13日 LLMの複数バリアントが異なる結果を出したら?どちらが正しい? 複数のLLMを並列実行すると、どの単一モデルも見逃すエラーを捕捉できる。実際に機能する不一致解決システムの構築方法を解説する。 n-version-programmingllmdifferential-testingdisagreement-resolution
2026年6月12日 5つの実装と多数派なし:実際に最良のものを選ぶ方法 N-version programmingは単純に聞こえる。複数の実装を実行して最良の答えを選ぶ。しかし実際には、「最良」を定義することは「最も一般的」を定義するよりはるかに難しい。 n-version-programmingimplementation-selectiondifferential-testingai-engineering
2026年6月11日 同じLLMで関数を5通りに書ける。本当に異なる実装を引き出す方法。 LLMによるN-version programmingに複数のモデルは不要。プロンプト、ペルソナ、推論の制約を変えることで、単一モデルから多様で正しい実装を引き出せる。 n-version-programmingllmdiverse-implementationsai-engineering
2026年6月10日 NASAは同じプログラムを27個並列実行した。バグは票を固めて投票した。 N-version programmingは、独立したチームが独立したミスをすると約束した。KnightとLevesonの1986年の実験はその逆を証明し、NASAは静かに撤退した。 n-version-programmingnasafault-tolerancesoftware-history
2026年6月9日 Cucumberのシナリオの半分がスキップされている。そのステータスがあなたに嘘をついている理由。 Cucumberの「skipped」ステータスには、全く異なる3つの問題が隠れている。テストスイートを蝕んでいるのがどれか診断し、それを止める方法を解説する。 deep-divescucumberbddtest-maintenance
2026年6月8日 Gherkin仕様があなたに嘘をついている Gherkin仕様は、人間に手動更新を任せた瞬間から乖離し始める。featureファイルを正直に保つための自動検証の方法を紹介する。 deep-divesgherkinbddliving-documentation
2026年6月7日 コンパイラは構文をチェックする。テストはアーキテクチャをチェックすべきだ。 多くのチームはアーキテクチャルールをWikiに記載している。依存グラフが逸脱した時にCIを失敗させる実行可能なテストとして書く方法を紹介する。 deep-divesarchitecture-testingclean-architectureci-cd