
213
5
テスト戦略検討のポイント
それぞれのテストの特徴を考えると、やはりテストピラミッドに従っ
てユニットテストの割合を大きくし、ソフトウェアの構成要素の品質を
しっかりと担保することがテスト戦略の土台となります。その上で、シ
ステム全体としての振る舞いの正しさを検証するために、インテグレー
ションテストやE2Eテストをどのように活用するかを考えます。
ユニットテストのポイント
低コストで高速なユニットテストの割合を大きくすることはテスト戦
略の基本ですが、ではあらゆるプログラムやコンポーネントに対してユ
ニットテストを作成し、テストカバレッジも100%を目指すべきでしょ
うか。
筆者はその問いにはNOと答えたいと思います。もちろんカバレッジ
が高いに越したことはなく、100%というのは理想的な状態かもしれま
せん。しかし、その状態に持っていくには相当のコストを要します。ま
た、その状態を維持し続けることも大変ですし、それが重荷となって開
発速度が落ちてしまうリスクもあります。ソフトウェア開発においてテ
スト自動化は正当な投資と言えますが、ROI(Return On Investment)
は最大化したいものです。
ユニットテストの作成単位として、振る舞いの単位(コンポーネント
単位)とする方法が優れていると述べました。ここで、振る舞いを実現
するコードには中核ロジックと処理フローロジックの二種類があるとい
う話を思い出してください(2.3 節を参照)。
中核ロジックはビジネスルールのようなまとまった振る舞いを表すの ...