テストの本質を探る ――30年の歴史を持つ 「ソフトウェア工学」の知恵に学ぶ
●○● Column ●○●
◆V&Vのいろいろ-1◆
ソフトウェアで用いられるV&V(検証と妥当性確認)にはいくつかの種類があります.これは「非形式的な手法」と「形式的な手法」に分けられます.多くの分野では前者が主流となっています.
●非形式的な手法:インスペクションとテストは補完関係
会社によって呼びかたは異なりますが,非形式的な手法としては,おおむね表C-1のような方法が使われています.レビュー(review)は,フェーズ(工程)やタスク(作業)の終了にかかわる公式の場になります.ここでは,良いかだめかの判断しか行いません.一方,ウォークスルー(walkthrough)は非公式の場で,自由に意見を交換し,解決策を考える場ということになります.
インスペクション(inspection)という用語は,通常,「コード・インスペクション」という形で使用します.これはコード中のエラーを発見する行為を指します.コード・インスペクションでは,1時間に100~200行のコードをチェックし,数名で行います.単純なエラーを事前に機械的に検出することにより,多くのエラーを見つけ出すことができます注C.コード・インスペクションには,以下のような利点があります.
- 早い段階でエラーを見つけることができる
- 参加者の間で一貫性のあるコードを作成できるようになる
- 1回のパスで多くのエラーを見つけることができる(一つのケースを実際に実行するのは確かに早いが,1度に複数のエラーを見つけることは困難).
ただし,そのソフトウェアの実行時のエラーや性能については,実際に動作させてみないとわかりません.つまり,実際に実行させて動作を確認する作業(狭義の「テスト」)が必要になります.コード・インスペクションと実際にコードを実行するテストは相互補完的な関係にあります.
注C;テストで見つかるのは,直接にはエラーではなく,あくまでも現象としての不ぐあいであることに注意.コード・インスペクションではエラーが見つかる.実際にどの程度のエラーを検出できるかは,その実施の方法に大きく依存する.1時間で200行の速度を超えると,エラーの検出率が大きく落ちる.
〔表C-1〕非形式的なV&Vの方法
手 法
|
内 容
|
監査(audit) | 第三者が検証を行う |
机上検査(desk checking) | 個々人が,成果物の確認を行う |
対面妥当性確認(face validation) | シミュレーションの結果に関して, 議論する |
インスペクション(inspection) | エラーを発見するために検査する |
レビュー(review) | あるフェーズの成果物を受け入れる かどうかの判断を行う |
ウォークスルー(walkthrough) | ミーティングによってエラーを見つ けたり,コメントを得る |