November 2021
Intermediate to advanced
684 pages
10h 37m
Japanese
Joseph Graves 著
Tom Manshreck 編
これまでの章では、Googleでのテスト文化がどのように確立され、小規模なユニットテストがどのようにして開発者のワークフローの基盤部分となったかについて詳しく語ってきた。しかし、他の種類のテストについてはどうだろうか。結論から言うと、実際にはGoogleは大規模テストを多数用いており、大規模テストは健全なソフトウェアエンジニアリングに必要となるリスク緩和戦略を構成する重要な一要素である。しかし大規模テストは、テストが価値のある資産であってリソースの浪費ではないよう担保しようとすると、小規模テストより多くの課題を突きつける。「大規模テスト」という言葉の意味するもの、どんな場合に大規模テストを実行するか、そして大規模テストを効果的に保つためのベストプラクティスについて、本章では論じていくことになる。
前に言及したように、Googleには具体的なテスト規模の観念がある。小テストは、1つのスレッド、1つのプロセス、1つのマシンに限定される。大規模テストには同様の制約がない。しかしGoogleにはテスト範囲の概念もある。ユニットテストはインテグレーションテストより必然的に範囲が小さい。そして範囲が最大のテスト(エンドツーエンドテストまたはシステムテストと呼ばれることがある)は一般に、いくつかの本物の依存関係と、比較的少数のテストダブルを伴う。
大規模テストは、小テストとは異なる多数の要素から成る。そして小テストと同じ制約には縛られていない。それ故に、下記のような特徴を示すことがある。