PR

 ソフトウエアテストの計画について、前回はテスト対象の洗い出しと優先順位の決め方を解説した。テスト計画はこれだけでは終わらない。洗い出して優先順位を付けたテスト対象に対して、テストのやり方を決める必要がある。あるSIベンダーの若手社員「ワカテくん」はテストの初心者。指導役のセンパイさんに注意を受けているようだ。

ワカテ:テスト対象に優先度を付けたら、後はスケジュールを組んで順番にテストをやっていくだけかな。

センパイ:テスト対象はどうやってテストするの。テスト計画ではその内容も検討しないといけないよ。

ワカテ:それはテストケースを作る段階で考えるのでは駄目なのでしょうか。

センパイ:それだと遅すぎるんだ。テストには複数の実施タイミングがあるし、色々な種類がある。先に検討しておかないと、後になって未実施のテストが発覚したりするよ。テスト計画の段階で、どんなテストをいつやるのかを決めておくんだ。

 テスト計画の最初の手順では、テストの対象とその優先順位を決めた。これで「何(What)」をテストするのかが決まった。ただ、プロジェクトには納期があり、テスト対象すべてをあらゆる方法でテストすることはできない。効率が良く漏れのないテストにするには、テスト対象を適切な粒度で区切って、各単位でどういう方法で確認するのかといった方針が必要だ。

 テスト計画の次の手順では、こうした「どうやって(How)」テストを行うのか、つまりテストのやり方を決める。この手順は以下の3ステップで構成される。

STEP1 テストレベルを決める
STEP2 テストタイプを決める
STEP3 テストのやり方を決める

 以下、テストのやり方を決めるSTEP1~STEP3を順番に説明しよう。

STEP1 テストレベルを決める

 テストのやり方を決める上で、最初に検討すべきなのは「テストレベル」である。テストレベルとはテスト対象を区切る粒度のことだ。テスト対象やテストの目的、インプットとする情報によって分類される。組織やプロジェクトごとに違いがあるが、一般的には「コンポーネントテスト(単体テスト、ユニットテスト、UT、PT)」「結合テスト(統合テスト、IT)」「システムテスト(総合テスト、ST)」「受け入れテスト(UAT)」の4段階で区切る分類が多い。

 テスト計画では、テスト対象の業務や機能の検証を各テストレベルでどう行うかを定義する。具体的には、テスト計画書にテストレベルを定義し、テストレベルごとのテスト内容を明記する。テストレベルの区切り方は組織やプロジェクトによって異なる。チームの共通認識がないと、テスト担当によって各テストレベルでのテスト内容がばらばらになってしまう。