開発が完了し、テスト工程まできたらプロジェクトも終盤となり、完成までもう一息であるが、テストは大きな山といってよい。
テストは開発会社が行うものだが、発注側は黙って見ているだけという訳ではない。
開発工程と同じく、課題や状況の把握、スケジュールは間に合うのかなど常に気をつける必要があるため、テスト工程で何をすべきか確認していこう。
テスト工程までに確認しておくべきこと
「テスト」は開発の「最後の砦」である。
その砦が機能しなかった場合、終盤や終了後にトラブルになることがあるため、テスト工程に入る前にテスト内容のレビューを開発会社に依頼しよう。
テスト完了後やリリース後にバグが発見されトラブルに発展した場合、下記のようなやりとりはよく耳にする話である。
発注側 :「今頃バグが出るとは何をテストしていたのか?」
開発会社:「テストが甘かった。漏れがあった。」
「想定外だった。」
「以前は問題なかったが◯◯を修正した影響で発生していて気が付かなかった。」
「御社も一応受け入れを了承したので責任は御社にもある。」
などである。
開発会社からテスト工程の完了や、進捗や品質が問題ないと報告されたとしても、何をもって完了とするか、何をもって品質に問題がないとするのか、目安や考えを擦り合わせておけば両社納得感をもって進められ、余計なトラブルをさけることができるだろう。
テスト内容のレビューは、下記項目を確認しよう。
- テストとバグ修正の体制・詳細スケジュール、テストサイクル(何回繰り返し行うか)
- 実際のテスト項目の共有(一部でも良い)
- テストの自動化など、効率化と安全対策を行っているか
- 正常系はもちろん、異常系のテスト項目が入っているか
- バグの報告(起票)ルール、修正完了ルールの有無
- 重点的にテストを行う項目
- バグが収束しない場合の対策有無
- コード品質、テスト品質、テスト終了の判断基準有無
これらを事前に把握しておき、問題がある場合は内容を補完して貰うなどで対策していこう。
レビューでのポイントは、アプリ開発の発注が初めてでよくわからなくても、疑問に思ったことは率直にぶつけよう。経験が浅い人ほど、意外に的を得た質問になることが多いものである。
テスト工程が順調に進んでいるのかを知るには
テスト項目の消化状況だけで進捗の判断をすることは難しい。
テストはそもそも不具合を発見するために行うもので、不具合、すなわちバグの発見・修正・再テストが完了して漸くタスクをクローズできるもののため、テスト項目の消化が進んでいても、バグの修正が進んでいなければ順調とは言えない。
テスト工程の状況把握手段としては、下記方法が考えられる。
- テスト密度とバグ密度を確認する
- バグ収束曲線を確認する
- 発注側でアプリの動作チェックを行う
1.テスト密度とバグ密度を確認する
バグは「少なければ良い」というものではない。
テストで発見されるバグの数が少ない場合、プログラマーのスキルが高くてバグがないだけのか、テストの品質が悪いのか判断できない部分がある。
そこで、テスト密度やバグ密度の数値を出すことによって、開発会社が作成したテスト項目が十分か、バグが発見できているかなどの目安のひとつにすることができる。
指標として一般的に使われるもののため、開発会社に報告して貰い、テスト中のアプリの状態がどこに位置しているのか、また、問題がある場合はどのような対策がとれるか、開発会社と協議すると良いだろう。
だだし、テスト駆動開発やアジャイル開発のスタイルでは、開発時点で多くのバグが既に発見され、修正が完了していることがあるので、あまり参考にならない可能性があるため注意されたい。
2.バグ収束曲線を確認する
テストが進むにつれ当然バグは収束していくが、今現在、中盤なのか、終盤なのかわからない。そこで、「バグ収束曲線」が目安になる。
テストを開始するとバグは随時発見されていき、一定を超えるとバグ発見数のカーブが緩くなる。
グラフを描いたときに、どういったグラフになっているかで安心してよい状況なのか、対策が必要なのか判断材料のひとつにできるため、これも開発会社に報告を依頼すると良い。
3.発注側でアプリの動作チェックを行う
テスト工程が進んでいるのか確認する一番手っ取り早い方法は、テスト中のアプリを発注側でも操作し、どの程度正しく動くのかをユーザ観点で確認することである。
1,2は、指標を決めたり分析したり、開発会社にある程度作業が必要であるため、嫌がられることがあるが、この方法の場合は問題なく対応してくれるだろう。
いずれにしても納品されたあとには発注側の「受け入れ作業」があるため、テスト工程から受け入れを兼ねて行っても問題ない。
ただし、テスト工程序盤で本格的に行うことは効率的ではないので、中盤から終盤で着手し、バグを発見したらどうするかなども開発会社と予め決めておきたい。
以上、テスト工程について述べてきた。
テスト工程も開発工程と同じく、問題が発生しそうな状況をいち早く察知しアクションが取れるよう、また、状況を常に把握しながらリスクをひとつでも減らせるようにふるまうことが重要である。