Testing Trophyとは?

参考: https://rightcode.co.jp/blog/information-technology/testing-trophy-syain 参考: https://qiita.com/jinto/items/72706b61fab8c46b54c5

  • Kent C. Doddsという方(React Testing Libraryを作った人)が考案した、フロントエンドのテストにおける必要十分な各種類のテストの配分を表した概念
  • Testing Trophyでは、テストは次の4種類に分けられる
    • 静的テスト(Static)
      • コードを作成するときにタイプミスや入力エラーを検出するテスト
    • 単体テスト(Unit)
      • 個々の独立した部品が期待通りに動作することを確認するテスト
    • 結合テスト(Integration)
      • 複数の部品が調和して動作することを確認するテスト
    • E2Eテスト(End to End)
      • ユーザーのように振る舞うロボットがアプリをクリックしていき、正しく機能するかを確認するテスト
  • 重要なのは、コスト/速度と信頼性のトレードオフであり、トレードオフのバランスが優れているほどトロフィー内の体積が大きく表現されている
  • Testing TrophyではIntegration Testの層が一番厚くなっている
    • Testing Trophyでは、Integrationが最もコスト/速度と信頼性のバランスに優れており、テスト実装の労力の大半はここに費やすべきであると結論づけられている
  • React Testing LibraryもIntegrationの実装を重視した設計となっているので、Reactアプリのテスト方針を考える際には、この点を意識しておきたい