PR

 ソフトウエアテストではどんな作業を実施しなければならないのか。改めて聞かれると、自信を持って回答できる人は多くないだろう。もしかすると、あなたの現場はやるべき作業を不用意に飛ばしてしまっているかもしれない。そうした現場では、プロジェクトの終盤で影響の大きいバグが見つかったり、最悪の場合、確認漏れでシステム障害を発生させてしまったりする。あるSIベンダーの若手社員「ワカテくん」もテストの作業を勘違いしているようだ。

ワカテ:ソフトウエアテストが「ソフトウエアが想定通りに出来上がっているかどうかを確認する」ということは分かりました。となると、テスト担当は開発が終わるまで何もしなくていいんでしょうか。

センパイ:いやいや、それは違うよ。確かにシステム開発で「テストをする」というと、普通は「テストの実行」だけを指すよ。でも、テスト担当の仕事は実行フェーズより前にもあるんだ。

ワカテ:あ、そうか。テストケースを作らなくちゃいけないんでしたね。

センパイ:結構分かってきたようだね。でも、それも合格点をあげられる回答じゃないな。テストの実行前にやるべき作業は、テストケースの作成以外にも色々あるんだ。

 テストというと、開発が終わった後のテストフェーズを思い浮かべる人が多い。あらかじめ決めたテスト手順の操作を実行して「テストケース」(テストで確認すべき事項を記述したドキュメント)を消化していくというイメージが強いようだ。だが、これは「テスト実行」という、テスト全体のプロセスのごく一部。しかも、ひたすらテストケースを消化するのは、テスト実行プロセスの一面にすぎない。

 今回はテストの準備段階から終了段階までの一連の作業を概観しよう。一連の作業のことを「テストプロセス」と呼ぶ。テストプロセスには、「テスト計画」「テスト設計」「テスト実行」と、各プロセスの状況を確認する「テスト管理」の4つがある。

 テストの“主軸”となるのはテスト計画、テスト設計、テスト実行の3つのプロセスだ。基本的にはこの順番で実施する。テスト管理は3つのプロセスが計画通りに行われているかを確認し、うまくいっていない場合に対策を実行するプロセスとなる。テスト実行まで終わった後、品質に関する評価を実施して、プロジェクト関係者向けに評価を報告するのもテスト管理のプロセスだ。

テストプロセスの全体像
テストプロセスの全体像
[画像のクリックで拡大表示]

 以下ではテスト計画、テスト設計、テスト実行の3つのプロセスについて、各プロセスで実施する必須の作業を紹介しよう。現場によって細かい実施方法は違うが、必要な作業項目や流れはどこもほぼ同じだ。なお、今回紹介する15の作業は最低限必須の作業だ。プロジェクトによってはほかにも必要な作業が存在する場合がある。その点は注意してほしい。

テスト計画で必須の6つの作業

 テスト計画は、ソフトウエアテストで最初に行うプロセスだ。何をテストするか、どのような種類のテストをするかを決め、それに従って役割分担やスケジュール、管理方法を検討する。テストの大枠を決めるプロセスだ。

 目的に沿ったテストを着実にやりきるには欠かしてはいけない。テスト計画が不十分だと、後続のプロセスであるテスト設計やテスト実行を場当たり的に進めることになる。これは時間やコストの無駄だし、やるべきだったテストを実施し損ねるといった抜け漏れも生じる。

 テスト計画で実施する作業は(1)テスト対象の決定、(2)テスト種類の決定、(3)役割分担の決定、(4)準備対象の洗い出し、(5)スケジュールの決定、(6)管理方針の決定、の6つである。