ソフトウェアテスト (E2E / TDD)
品質を担保するテスト手法と、コードとドキュメントの整合を保つ営み。_moc-web-infra
E2Eテスト
- 要素特定は id/class でなく
data-testidを付ける(idやclassでのテストはアンチパターン)。 - Cypress: E2Eフレームワーク。
cy.intercept()でAPIレスポンスを書き換えてテストできる。Page Object より App Actions を推す公式記事もある。testcafe/detox/NightWatch など選択肢多数。
単体テスト
- vitest(Vite向け)、クラスのモック手法に注意。
- 値ベースのテストは偽陽性(false-positive)で本当のバグを取り逃しうる。SQLの結果でなくクエリ・パラメータが正しいかをテストすべきという観点。
- Kotlin/Spring では
@Transactionalの挙動・モック注入の罠がある(spring-framework)。
TDD
テストを先に書き、実装を駆動する開発手法。
ドキュメントの鮮度
- validation(妥当性: 仕様が利用者価値に見合うか)⊃ verification(正当性: システムが仕様に見合うか)。
- コードとドキュメントの距離を最小化する(Rustのdoc commentはサンプルもコンパイル・テストされる理想形)。
- ライブドキュメント: ドキュメントに日付を持ち定期監視、HTTPキャッシュの revalidate になぞらえて無理なく更新運用する。