0

私はいくつかの状態ベースのテストの概念に本当にこだわっています...

各状態からのすべての遷移をカバーするいくつかのチェック シーケンスを計算しようとしています。答えはありますが、理解できません。

代替テキスト http://www.gam3r.co.uk/1m.jpg

今私が持っている答えは次のとおりです。

代替テキスト http://www.gam3r.co.uk/2m.jpg

私はそれをまったく理解していません。たとえば、s1 からの遷移 a/x をチェックしたい場合、ab のみを実行しますか? すでに s1 にいるので、a/x を実行して s2 への移行をテストし、次に b を実行して前の正しい状態 (s1) にあるかどうかを確認します。なぜs1がabaなのかbbなのか理解できない...

誰か私に話してもらえますか?

ありがとう

4

1 に答える 1

1

4 つの状態のそれぞれで 2 つのイベントが利用可能であり、8 つの遷移が発生します。作成者は、これを 8 つの個別のテスト シーケンスでテストすることにしました。各シーケンス (S1 シーケンスを除く - 明らかにマシンの初期状態は S1 です) は、マシンをターゲット状態に駆動し、イベント a またはイベント b のいずれかを実行する必要があります。

彼が選択したシーケンスは、各遷移がカバーされているという点で十分です。ただし、それらは一意ではなく、おわかりのように最小でもありません。

より明白な選択は次のとおりです。

ab ab aa aaa aab ba bb

各シーケンスの最後に余分なトランジションを追加するという著者の目的がわかりません。システムは Mealy マシンです。マシンの動作は、現在の状態とイベントによって一意に決定されます。現在の状態に至るパスの記憶はありません。したがって、著者の追加のトランジションは、追加のカバレッジを提供せず、混乱を招くだけです。

また、グラフを通る一連の短いパスですべての遷移をカバーできることも正しいです。しかし、私はそれをするのは気が進まないでしょう。テスト コードの最適化よりも明確性の方が重要です。

于 2009-12-26T15:21:02.533 に答える