
201
5
5.2
機能テストの自動化
機能テスト自動化のテスト戦略
この節では、機能テストの自動化についてアーキテクトが行うべき作
業について説明します。図5.1.1 に示したとおり、機能テストは機能適
合性という品質特性に対応するテストタイプです。つまり、アプリケー
ションの各機能が仕様書に定められたとおりに振る舞うことを検証する
目的のテストであって、アーキテクチャ自体の検証ではありません。
ではなぜ機能テストについて取り上げるかというと、テストツールの
選定や、テストコードの作成や保守を容易にするための仕組み作りにお
いて、アーキテクトの持つ技術的な知見や経験を存分に発揮すべきだか
らです。
機能テストを自動化する際のテスト戦略としては図5.2.1のテストピ
ラミッドが有名です。ユニットテスト、インテグレーションテスト、
E2Eテストの順に作成する自動テストの量を少なくしていくべきだとい
うことを、ピラミッドの図で表現したものです。
なぜ自動テストの量をこのような比率とするのがよいのかを説明しま
しょう。
第一に、ピラミッドの上にあるテストほどコストが上がります。テス
トコードやスクリプトを作成する手間や、必要なテストデータを準備す
る手間が増えるということです。また、データベースサーバーをはじめ
とする連携先のミドルウェアやサービスを立ち上げる必要もあり、テス
ト実行時の環境利用コストも高くなる可能性があります。
次に、ピラミッドの上にあるテストほど実行時間が長くなります。一
つのテストケースで統合されるコンポーネントの数が増えるのに加え ...