テストの本質を探る ――30年の歴史を持つ 「ソフトウェア工学」の知恵に学ぶ

伊藤昌夫

tag: 組み込み

技術解説 2004年4月24日

●○● 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) ミーティングによってエラーを見つ けたり,コメントを得る
組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日