テストの本質を探る ――30年の歴史を持つ 「ソフトウェア工学」の知恵に学ぶ
4)遷移テスト
遷移テストは,状態遷移図を用いて,到達できない状態や,そこからほかに遷移しない状態などを見つける方法です.例を見てみましょう.先ほどのVHDLコードの場合,変数は状態を有しているとみなすことができ,図6のような状態遷移を考えることができます.
この例では,到達できない状態も,遷移が存在しない状態もありません.したがって,正常と言えます(もちろん,ここでは人間が確認しているのだが...).しかし,一般には,もっと複雑な状態遷移が存在します.この場合,状態遷移図から状態遷移表に変換して空欄を見つけることで,上記に示したようなエラーを発見する方法などが用いられています.
〔図6〕図4に示したサンプル・コードの状態遷移図
図4のサンプル・コードでは,Iの状態によって処理が変わっている.すなわち,最大値('15')と非最大値('0'~'14')の状態を考える.ちなみに,状態遷移図の[]で囲まれている部分はガード条件を表している.また,状態遷移はイベント/アクションという形で表現することができる.例えば「/I<=0」の部分は,「最大値の場合,イベントによらずIに'0'を設定する」というアクションを実行することを表現している.