2011年1月7日金曜日

ホワイトボックステスト

『知識ゼロから学ぶ ソフトウェアテスト』   高橋寿一著  
ホワイトボックス

2. ソフトウェアテストの基本 ~ホワイトボックス~

ホワイトボックステスト手法を説明します。この手法はすべてのソフトウェアテストの基盤となるもので、盛んに研究された手法です。実務においてかならずしも有用でよく使われるテスト手法とは限りませんが、知っておく必要はあります。

一言で表すと、「プログラムの内部構造を徹底的に分析する」ということです。

何が問題なのか?
まだ、プログラムのファイルサイズが数キロバイトといった一昔前には、内部構造を徹底的に分析することができました。しかし、現代のソフトウェアは巨大で、ファイルサイズが数百メガのソフトウェアを扱うことが多々あります。そんなときに、ホワイトボックステストだのと言っている余裕はありません。

しかし、ホワイトボックステストを使用することで、ソフトウェアの品質が改善されることが証明されているのは確かです。大切なのは、テストをはじめる前にテスト手法を十分吟味・選択することでしょう。

では、具体的なテスト手法を紹介していきます。

制御パステスト法
制御パステスト法は、プログラムがどのような振る舞いをして、どうのように制御され実行されていくかをテストします。
主に、カバレッジ率(coverage rate) の値をとるために使われます。

if文などの分岐条件に対して、判定条件となる値をいれ、結果をチェックするテストです。
ステートメントカバレッジや、より厳密な判定条件でチェックするブランチカバレッジなどがあります。

さて、カバレッジテストで全てのバグを見つけることが理論的に不可能であることを先に述べておきます。
100%カバレッジを達成したからといって、ソフトウェアの品質がよいとはいえません。
なぜなら、カバレッジテストでは、以下に示すようなバグが見つけられないからです。
・プログラムのループに関するバグ
・仕様自体が間違っていたり、機能が備わっていないバグ
・データに関するバグ
・タイミングに関するバグ

まとめると、カバレッジテストはあくまで、数あるテストの一部です。他のテストの兼ね合いや予算等を考慮に入れて、製品によって品質の目標を妥当に設定することが必要です。

0 件のコメント:

コメントを投稿