ソフトウェアテスト (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 になぞらえて無理なく更新運用する。

関連