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

伊藤昌夫

tag: 組み込み

技術解説 2004年4月24日

3)ドメイン(領域)テスト

 プログラムを少し違った視点から見てみます.先のVHDLコードの例では,Iの値によって処理が変化します.'15'であればカウンタを'0'にします.それ以外では,カウンタを1増加させます.Iの値によって,このプログラムは二つの異なる処理を行うわけです.また,同時に'0'より小さい値も,'15'より大きな値もとらないことも明らかです.一般に,入力の値によって,ドメイン(領域)はいくつかに分割されます(図5)

 今回の例では変数が一つなので,図5のような直線上の領域を考えることになります.しかし,関係する変数の数が2個になれば,次元が増えて平面状の領域の分割になります.n個になれば,n次元上の領域の分割ということになります.

 テスト用の入力ベクトルを考えるとき,このドメインの考えかたが役に立ちます.一般に,ドメインの境界(の近く)の値には,バグが存在しやすいとされています.これは,単純に「判定条件をまちがえる」,あるいは「場合分けを適切にコーディングできていない」といったケースがよくあるためです.

 上記の例では,'0'や'15'の場合についてテストしたり,'16'という値を取ったときに(取り得るとしてだが...)どのような状況が生じるかをテストしようということです.これらは「境界値テスト」と呼ばれることもあります.

f05_01.gif
〔図5〕図4に示したサンプル・コードのドメイン分割
この場合,0~15のドメイン(領域)で,プログラムは動作する.Iは整数全体をとり得ると考えると,全体は三つのドメインに分割される.

組み込みキャッチアップ

お知らせ 一覧を見る

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