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

伊藤昌夫

tag: 組み込み

技術解説 2004年4月24日

●開発現場の二つの戒律

 Beizerの本1)には,次の二つの戒律が示されています.

1)良いプログラムしか良いテストはできない(プログラマの戒律)

 テスト担当者に次のように言わせてはいけないとされています.すなわち,「テストが終わらない!
やればやるだけエラーが出てくる」,「このプログラムには,いったいいくつのパスがあるんだ!」,「なんと迷路のようなプログラムであることよ.期待値は何なんだ」....

 不良プログラムは,最後までテストすることができません.不ぐあいが出続けるからです.そうでなくても,きちんと書かれていないプログラムはテストが困難です.テストには,入力用のデータの組(入力ベクトル)と期待値(oracle,すなわち「神託」と呼ばれる)を用意する必要があります.

 例えば,パス・テストを実施する場合,プログラムの構造から適切な入力ベクトルを見つける必要があります.しかし,雑に書かれたプログラムから入力ベクトルを見つけることは容易ではありません.また,期待値自身の計算も困難になります.良いプログラムは,エラーが少なく,しかもテストしやすいプログラムなのです.

2)テスト・プログラムは磨滅する(テスト担当者の戒律)

 もちろん,これは比ゆ的な言いかたです.テストを実行する人が,ある特定の不ぐあいを発見し続けたとします.そうするとそのプログラマは注意するようになります.つまり,その不ぐあいだけは生じないように意識します.一方,ほかのことには注意力が散漫になるかもしれません.一つのテスト・プログラムで,すべての種類の不ぐあいを網羅することはできません.したがって,単一のテスト手法によって見つけ出すことのできるバグは減っていきます.単一のテスト手法による効果がしだいに薄れてくる,というのが「磨滅」の意味です.

 また,開発対象や開発方法が変化すると,必然的に発生する不ぐあいも変化します.このときも注意して新たなテスト手法を考えないと,同じような問題が生じる可能性があります.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日