担当:名生
テストの目的と限界
- テストについて
- テスト担当者の目的
- テストの目的
テストについて
名生:「皆さんはテストをやる目的とか考えたことありますか? 今考えてみてください たとえばこんなことを浮かべたのではないでしょうか?」
プログラムが 正しく動くことを 担保する
名生:「これはそもそも間違いです」
名生:「え?って思った方いると思います」
名生:「私も似たようなことは思ってたので・・・」
名生:「なぜこれがバツなのか」
完全テスト
- 全テストケースが網羅されている
- テスト終了時に未発見のエラーが無い
- プログラムの正当性を保障できる
名生:「もしプログラムが正しく動くことを担保するとすれば、完全テストを行えば可能でしょう」
名生:「ただこれは現実的に無理があります。」
名生:「可能な組み合わせが多すぎてそもそも全てをテストし切れませんし、仮に最後のエラーを見つけたとしてもそのエラーが最後だと知る手立てはありません。」
名生:「多すぎるならテストケースを割愛しいくつかを選択すれば?と思うかもしれないですが、その時点で完全テストではありません。」
全テストケースをやったことになっていませんから
名生:「そもそも、設計時に問題があり、 仕様通りに動いたからといって仕様自体が間違っているかもしれません。」
名生:「なので、完全テストというのは出来ません。」
名生:「ではテストを行う人はどうすればよいのでしょうか。」
テスト担当者の目的
それは1%のバグをみつけること
名生:「コードには100行当たり1~3個のバグがあるそうです。」
名生:「ただ、これはエンジニアがバグの確認後のバグの数であり、そのもともとの数は1行あたり1.5個のバグがあるとされています。」
名生:「実際にはテストの前にエンジニア自身が99%のバグは発見しているそうです。」
名生:「で、その残りの1% これを見つけることがテストをする方の目的であり使命といえるでしょう」
名生:「なぜこのような1%がでるのかというと?」
名生:「どんな優秀な人物でも自分が作ったものには自然と気付かないうちに確認を避けたり、誤った解釈をしているということがあるそうです。」
名生:「まぁ1%といってますが人によっては2%なり3%なりはするかもしれません・・・」
テストの目的
「プログラムが正しく動くことを担保する」
これ以上に、「バグを見つけること」
最後に
「バグはあると思いテストをするとよりバグを見つけられる」
追加事項
完全テストは、実装者が行う
岩尾:「モジュールの全ルートケース(完全テスト)は、実装者が行ってください。」
藤田:「完全テストは、作成のエンジニア、カバレッジツール(最近の環境は、大抵備わっている)を使って行いましょう。」
参考書籍
(著)Cem Kaner, Hung Quoc Nguyen, Jack Falk, (翻訳)テスト技術者交流会(2001)『基本から学ぶソフトウェアテスト』日経BP社 488pp.
ISBN4-8222-8113-2
第2章 テストの目的と限界(p17-26)