GIHOZを使ってみた - デシジョンテーブル編
デシジョンテーブルについて
アイスブレイクで「何でデシジョンテーブル書いてる?」って質問があって、大体がExcelだった
わかる。自分もスプレッドシートで書いてる
表形式だしね…
デシジョンテーブルは入力条件・データの組み合わせに対する処理や出力結果を表にまとめたもの
このテーブルを使ってやっていくテストがデシジョンテーブルテスト
デシジョンテーブルの歴史
条件の組み合わせをY/Nで書くかT/Fで書くか割と定まってないが、最近はT/Fで書くことが多い気がする
最近は結構拡張指定してたことがおおくて、2値があまりなかった
テスト技法ポジショニングマップ
へぇ、こんなものが。秋山さんだった
メリット
仕様を論理的に整理ができる
自然言語では難しいような複雑な仕様も表で表すことで分かりやすく
入力条件の網羅性を確認できる
デシジョンツリー次第では圧縮できる
デメリット
データが多いと表がでかくなって辛い
圧縮をミスすると本来やったほうがいいケースが抜ける
GIHOZを使う
https://scrapbox.io/files/619e12d5a6df540020c0b0ff.png
GIHOZでやるとこんな感じ
https://scrapbox.io/files/619e15658f3918001d92fdbc.png
Generate Combinationsすると勝手に組み合わせを出してくれる、便利。
https://scrapbox.io/files/619e159806f818001d1d876b.png
ありえない組み合わせに関しては上のチェックを外したり
https://scrapbox.io/files/619e15da1e5a2c00209a18fc.png
そもそも列を削除してしまってもよい。
https://scrapbox.io/files/619e15ee6e85e0001d1e1910.png
けした
https://scrapbox.io/files/619e16056e85e0001d1e19b2.png
テーブルの圧縮
デシジョンツリーとか書いて圧縮していくやつ。まずここはDon't Careですね
https://scrapbox.io/files/619e16ec91d487001d519b8d.png
消すとこうなる
https://scrapbox.io/files/619e1729b84c70001d28260e.png
ほかも消せそうなところがありますね
https://scrapbox.io/files/619e17581efb70001da14c69.png
最終形
https://scrapbox.io/files/619e18158855f8001dca1b94.png
階層化
因子のネストっぽいこともできる。子供の階層(ここではサービスタイムの下)はどれか1つになるように生成されるので、イブニングサービスかつナイトサービスみたいなケースが生成されないというメリットがある。
https://scrapbox.io/files/619e1939a6df540020c0d91e.png
デシジョンテーブル作った後どうする?
手順の記載をしたければ別に用意して…
デシジョンテーブルの1列をテストケースに変換するスクリプト
感想
条件が増えたとき、スプレッドシートでやると組み合わせ追加が虚無作業になるんですが、勝手に組み合わせを生成してくれてくれるので助かる
Enable/Disableにしておいて、メモに「なぜそのケースが無効か」を書いておけるのは良い
自動保存はほしい(ない理由ってなんでだろう)