まえがき
今回は職場の勉強会でデシジョンテーブルについて学ぶ機会があったので、まとめてみようと思います。
何か間違っていることなどありましたらご教授ください!
デシジョンテーブルとは
デシジョンテーブル(決定表)とは、対象が取り得る条件(入力)と、その結果の動作(出力)を洗い出した上で整理し、マトリクス上に一覧化した表のことです。
ということですが簡単に言えば
- 対象についての条件とその結果を表にまとめ見やすくしたもの?
といったところですかね?
まあよくわからないので実際の例を見てみましょう!
具体例①
実際に勉強会の時に使った例が2つあるのでそれぞれ見ていきましょう!
↑が実際のデシジョンテーブルです
↑がこのお店の割引の条件です
このデシジョンテーブルではピザ屋の宅配時のクーポン利用などに関する条件を表にまとめています
1列目2行から4行までに注文の条件、5行から8行までに結果が置かれています
どの条件でどの割引が適応されるのかが見やすく表示されていますね
例えば「お会計1500円以上」「店頭受け取り」「クーポン無し」の時の割引を知りたければ4番の列を見てあげれば、「ポテトサービス」「2枚目無料サービス」が受けられるということがわかります
具体例②
二つ目の例です!
↑デシジョンテーブル
↑条件
この例は配送業者の配送料に関するデシジョンテーブルです
条件がいろいろ書いてありますがまとめると「プレミア会員」「5000円以上の購入」「お急ぎ便」の3つです
それぞれのyes/noの条件で配送料がいくらなのか見ることができますね
注意点
勉強会では条件からデシジョンテーブルを作るということをしました
その時に注意するべき点があるなぁと思ったので自分なりの理解を共有させていただきます!
- 簡易化
- 列数
についてですね
- まず「簡易化」についてです
具体例①のピザの宅配のデシジョンテーブルですがこちらは簡易化することができます。
具体例①では条件の中に「宅配の場合でクーポンがあれば20%OFF」とありますね
ですので「受取方法」の行が「店頭」の場合はクーポンのあり/なしを判定する必要はないので下記のデシジョンテーブルがより簡易的なものになります
- 2つ目が「列数」についてです
デシジョンテーブルを作成する時に条件の数と結果の数はすぐにわかりますが、判定の結果が何パターンになるのかが自分にはすぐ判断できませんでした
勉強会でわかりやすく説明していた人がいたので共有しておきますと
条件の分岐数を掛け合わせていけばいい
ということでした
一つ例を挙げて説明してみます
これはプリペイドカードの「会員のレベル」「チャージ額」「チャージ時の抽選」に関するデシジョンテーブルですが、ランクが3種類、チャージ額が3種類、抽選結果が2種類のデシジョンテーブルなので
3x3x2=18通りのパターンになる、ということですね
※このデシジョンテーブルも抽選に下記の条件があると「簡易化」できますね!
あとがき
この記事は勉強会に参加できなかった方のために書いてみましたが、人に説明することを考えて書くとすごく身になっている気がしますね。また機会があれば書こうと思います!
何か間違っている点、説明不足な点、わかりにくい点などあれば是非教えてください!
参考文献
書籍「ソフトウェアテスト技法練習帳 -知識を経験に変える40問-」著:梅津正洋、他
Webサイトhttps://shiftasia.com/ja/column/%E3%83%87%E3%82%B7%E3%82%B8%E3%83%A7%E3%83%B3%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%EF%BC%88%E6%B1%BA%E5%AE%9A%E8%A1%A8%EF%BC%89%E3%81%A8%E3%81%AF/