状態遷移テストの補助用に、Nスイッチカバレッジを計測するツールnswitchcov_aを公開しました。
https://github.com/hiro-iseri/nswitchcov_a
使い方の例
CUIツールです。状態遷移定義ファイルと実行フローファイルの2つを入力に実行します。
具体例として、以下の状態遷移を扱います:
この状態遷移を、以下のテストケースで網羅します:
- テストケース1 :初期状態→状態1→状態4
- テストケース2 :初期状態→状態1→状態2→状態3→初期状態
- テストケース3 :初期状態→状態1→状態3
このケースの2スイッチカバレッジを計測します。
作成するファイル
状態遷移定義ファイル(stateflow.txt)は例えば以下のようになります
初期状態 - イベント1 > 状態1 状態1 - イベント2 > 状態2 状態1 - イベント4 > 状態3 状態1 - イベント5 > 状態4 状態2 - イベント3 > 状態3 状態3 - イベント5 > 初期状態
実行フローファイル(exepath.txt)は例えば以下のようになります
#テストケース1 初期状態 - イベント1 > 状態1 - イベント5 > 状態4 #テストケース2 初期状態 - イベント1 > 状態1 - イベント2 > 状態2 - イベント3 > 状態3 - イベント5 > 初期状態 #テストケース3 初期状態 - イベント1 > 状態1 - イベント4 > 状態3
これらを入力としてコマンドラインで実行すると、2スイッチカバレッジ25.00%の結果が得られます。
nswitchcov_a.exe --exepath=exepath.txt --stateflow=stateflow.txt --n=2 nswitchcov_a(ver:1.01) number of execution path:3 number of n-switch path:8 n-switch coverage:25.00%(2/8)