私は以前、コードの変更によりめったに使用されていないページが壊れてしまい、経営陣が大声で文句を言っていたという状況がありました。失敗は、単にそのページをリクエストするだけで簡単に発見できたでしょうwget
-そして、それは私がJenkinsに定期的な仕事として追加したものです. その仕事はその後失敗することはなく、約 2 年間、毎日、毎月、2、3 ページを喜んで要求しました (その後、ページは削除されました)。
より良いテストが利用できない、または実装するのが面倒な状況にある場合は、HTTP ステータス コードのテストが有効なアプローチになります。しかし、システム全体を 1 つの大きなブラック ボックスとして常にテストする必要があるため、これは非常に遅くなりすぎます。そして、すべてがテスト環境で機能する必要があります。
現在、ほとんどテスト不可能なシステムを使用している場合、Selenium などでアプリケーションをリモート制御する機能テストを使用することは、障害を迅速に検出するための適切な第一歩です。おそらく、これらのテストを並行して実行する必要がありますが、これには適切なハードウェア パワーが必要であり、Selenium クライアントを実行するためだけに複数のマシンを使用する可能性が最も高いでしょう。
一方、より多くの単体テストを取得することを目指す必要があります。データベース接続などの実際のものの代わりにモック オブジェクトを挿入するため、これらは非常に高速に実行されます。バックグラウンドにデータベースがない場合、テストはネットワークと通信せず、ディスクからの書き込みと読み取りも行いません。モック オブジェクトはメモリ内にあり、必要な答えをほぼ瞬時に返します。
単体テストと選択した一連の機能テスト (および、アプリケーション全体ではなく、より大きな部分を組み合わせて個別にテストするいくつかの統合テスト) を組み合わせると、すべてが期待どおりに機能することが示されます。
しかし、機能テストだけでは、これは決して当てはまりません。