Upgrade to Pro — share decks privately, control downloads, hide ads and more …

analyze the behavior with decision table

imtnd
December 12, 2021

analyze the behavior with decision table

デシジョンテーブルで振る舞いを整理しよう

in WACATE 2021 winter
https://wacate.jp/workshops/2021winter/

imtnd

December 12, 2021
Tweet

More Decks by imtnd

Other Decks in Programming

Transcript

  1. ⾃⼰紹介 • ⾓⽥ 俊 • 仕事 ソフトウェアエンジニア 最近︓ QAエンジニア •

    Twitter @imtnd • コミュニティ活動 • WACATE実⾏委員 • NaITE運営スタッフ • テストプロセス改善技術研究会
  2. デシジョンテーブルとは︖ • 別名︓決定表 • JIS X 0125:1986 • 仕様の⼊⼒(条件)と出⼒(アクション)の論理的関係を整理する⼿法 •

    ソフトウェアの設計などに使⽤される 例) 年齢が20歳以上で、⾞などの運転予定がなければ飲酒できる 年齢が20歳以上 Y Y N N 運転予定がない Y N Y N 飲酒可能 X - - - ⽇本産業規格(JIS=Japanese Industrial Standardsの略)。 ⽇本の産業製品に関する規格や測定法などが定められた⽇本の国家規格のこと。 本セッションで扱うのでは、制限指定(limited-entry)デシジョンテーブルであり、拡張指定(extended-entry)デシジョンテーブルは扱いません。 拡張指定(extended-entry)デシジョンテーブルはY/NやX/-などの2値ではなく、値を記述したものです
  3. Y: Yes N: No ⾃然⾔語記述: 年齢が20歳以上で、⾞などの運転予定がなければ飲酒できる モデリング:デシジョンテーブル ⾃然⾔語記述を読んだだけでは、次のような事柄を即時に理解するのが難しい。 • パターンが何パターンあるのか

    • 条件に⽭盾点はないのか • どういう条件のときに、飲酒可能という判定結果となるのか • 飲酒可能という条件のときはどういうときなのか モデリングされたデシジョンテーブルでは、上記のような情報を簡単に読み取ることができる 年齢が20歳以上 Y Y N N 運転予定がない Y N Y N 飲酒可能 X - - - X:該当 -:該当しない
  4. デシジョンテーブルテストにおけるデシジョンテーブル デシジョンテーブルテストを⾏う際に作成するデシジョンテーブルは、 因⼦と⽔準を意識して記述すると良い 原因 年齢 20歳以上 Y Y N N

    19歳以下 N N Y Y 運転予定 ある Y N Y N ない N Y N Y 結果 飲酒可能 - X - - 年齢が20歳以上 Y Y N N 運転予定がない Y N Y N 飲酒可能 X - - -
  5. 因⼦、⽔準は同値分割の関係 因⼦を具体化、分割し、まとめられるものをグループ化したものが⽔準となる。 20歳以上 19歳以下 年齢 ある ない 運転予定 Windows Linux

    OS macOS ※同値分割した⽔準をデシジョンテーブルにする際に、原因と結果に関係がない⽔準は省略することもあります。
  6. ズームイン、ズームアウト OS macOS Windows Linux Monterey Big Sur Windows 11

    Windows 10 ubuntu 21.04 CentOS 8 ・・・ ・・・ ・・・ ・・・ ・・・ ズームアウト 抽象的に捉えて、 全体を俯瞰する ズームイン 具体的に捉えて、 詳細な事柄を把握 する
  7. 同値分割法ワーク解説 検索ボタンが押せる ⽂字列の⻑さ 有効 無効 無効 1 1024 0 1025

    半⾓ ⽂字幅種 全⾓ 数字 記号 ⽂字種 英字 ⽇本語 ・ ・ ・ ハイフン記号 スペース記号 ・ ・ ・ カタカナ 漢字 ひらがな 旧字体 ・ ・ ・ 旧漢字 韓国語 記号 ⽇本語
  8. デシジョンテーブルの作成⼿順 原因 結果 原因 年齢 20歳以上 19歳以下 運転予定 ある ない

    結果 飲酒可能 原因と結果の表を作成する 因⼦、⽔準、アクションを記載する ⽔準は漏れが無いように書き出す
  9. デシジョンテーブルの作成⼿順 原因 年齢 20歳以上 19歳以下 運転予定 ある ない 結果 飲酒可能

    原因 年齢 20歳以上 T T F F 19歳以下 F F T T 運転予定 ある T F T F ない F T F T 結果 飲酒可能 ⽔準の組み合わせを網羅するように、 パターンを機械的に書き込んでいく。 因⼦内の⽔準がT、Fになるパターンとして、 次のパターンがある ・制約なし ・因⼦内の⽔準が常に⼀つのみがTになる ・因⼦内の⽔準が多くても⼀つがTになる ・因⼦内の⽔準が少なくても⼀つがTになる
  10. ⽔準の組み合わせパターン 原 因 A A-1 T F A-2 F T

    ・因⼦内の⽔準が常に⼀つのみがTになる ・因⼦内の⽔準が少なくても⼀つがTになる ・制約なし 原 因 A A-1 F T F T A-2 F F T T ・因⼦内の⽔準が多くても⼀つがTになる 原 因 A A-1 F T F A-2 F F T 原 因 A A-1 T F T A-2 F T T ディシジョンテーブルのサイズは、⽔準数をnとしたとき、最⼤で、2n個の組み合わせができる 何も考えず制約なしの組み合わせを書き出して、整理するのもあり
  11. デシジョンテーブルの作成⼿順 原因 年齢 20歳以上 T T F F 19歳以下 F

    F T T 運転予定 ある T F T F ない F T F T 結果 飲酒可能 期待結果になるところ、ならないところを埋めていく 原因 年齢 20歳以上 T T F F 19歳以下 F F T T 運転予定 ある T F T F ない F T F T 結果 飲酒可能 - X - -
  12. デシジョンテーブルテストワーク1解説 条件 お茶 カートにある T T F F カートにない F

    F T T 和菓⼦ カートにある T F T F カートにない F T F T 結果 5%割引 X - - -
  13. デシジョンテーブルテストワーク2 とある映画館の券売機をテストします。 ⼀般の料⾦は1800円で、20時以降は1300円になります。 シニア(70歳以上)は、1100円で、20時以降も1100円です。 ⼤学⽣、専⾨学⽣は1500円で、20時以降は1300円になります。 中学⽣、⾼校⽣は1000円で、20時以降も1000円です。 ⼩学⽣は1000円で、20時以降も1000円です。 ⼟⽇祝⽇は、⼀般の料⾦は1800円で、20時以降は1300円になります。 シニア(70歳以上)は、1100円で、20時以降も1100円です。 ⼤学⽣、専⾨学⽣は1500円で、20時以降は1300円になります。

    中学⽣、⾼校⽣は1000円で、20時以降も1000円です。 ⼩学⽣は1000円で、20時以降も1000円です。 ⽀払い⽅法は、ICカードかクレジットカードか、現⾦で決済が可能です。 複数の⾦額条件に⼀致した場合は⾦額が安くなる⽅を適⽤します。 ⽀払う⾦額に対してのデシジョンテーブルを作成してください。 個⼈ワーク:20分 グループディスカッション:15分
  14. デシジョンテーブルテストワーク2解説 原 因 曜⽇ 平⽇ T T T T T

    T T T T T T T T T T T F F F F F F F F F F F F F F F F ⼟⽇祝⽇ F F F F F F F F F F F F F F F F T T T T T T T T T T T T T T T T 時間 20時まで T T T T T T T T F F F F F F F F T T T T T T T T F F F F F F F F 20時以降 F F F F F F F F T T T T T T T T F F F F F F F F T T T T T T T T 年齢 70歳未満 T T T T F F F F T T T T F F F F T T T T F F F F T T T T F F F F 70歳以上 F F F F T T T T F F F F T T T T F F F F T T T T F F F F T T T T 学⽣ ⼤・専 F T F F F T F F F T F F F T F F F T F F F T F F F T F F F T F F 中・⾼ F F T F F F T F F F T F F F T F F F T F F F T F F F T F F F T F ⼩ F F F T F F F T F F F T F F F T F F F T F F F T F F F T F F F T 結 果 料⾦ 1800円 X - - - - - - - - - - - - - - - X - - - - - - - - - - - - - - - 1500円 - X - - - - - - - - - - - - - - - X - - - - - - - - - - - - - - 1300円 - - - - - - - - X X - - - - - - - - - - - - - - X X - - - - - - 1100円 - - - - X X - - - - - - X X - - - - - - X X - - - - - - X X - - 1000円 - - X X - - X X - - X X - - X X - - X X - - X X - - X X - - X X
  15. デシジョンテーブルテストワーク2解説 原 因 曜⽇ 平⽇ ⼟⽇祝⽇ 時間 20時まで 20時以降 年齢

    70歳未満 70歳以上 学⽣ ⼤・専 中・⾼ ⼩ 原 因 曜⽇ 平⽇ ⼟⽇祝⽇ 時間 20時まで 20時以降 年齢 70歳未満 70歳以上 学⽣属性 学⽣ではない 学⽣区分 ⼤・専 中・⾼ ⼩ 因⼦、⽔準の分け⽅は⼀通りではない
  16. デシジョンテーブルの圧縮 運転予定の条件は 結果に関係していない 原因 年齢 20歳以上 T T F 19歳以下

    F F T 運転予定 ある T F - ない F T - 結果 飲酒可能 - X - 原因 年齢 20歳以上 T T F F 19歳以下 F F T T 運転予定 ある T F T F ない F T F T 結果 飲酒可能 - X - - 列を圧縮することができる 圧縮して、条件がTでもFでも どちらでも良い場合は-で記載する ※条件が結果に関係なくてもテストを⾏いたい場合は、意図的に圧縮しない場合もあります
  17. デシジョンテーブルの整理 原因 年齢 20歳以上 T T T T F F

    F F 19歳以下 F F F F T T T T 運転予定 ある T T F F T T F F ない F F T T F F T T 運転免許 取得済み T F T F T F T F 未取得 F T F T F T F T 結果 飲酒可能 - - X X - - - - 原因の中に組み合わせられない項⽬(禁則)があった ※禁則でもテストを⾏いたい場合は、意図的に削除しない場合もあります 原因 年齢 20歳以上 T T T F F F 19歳以下 F F F T T T 運転予定 ある T F F T F F ない F T T F T T 運転免許 取得済み T T F T T F 未取得 F F T F F T 結果 飲酒可能 - X X - - -
  18. デシジョンテーブルの整理 原因 年齢 20歳以上 T T T T F F

    F F 19歳以下 F F F F T T T T 運転予定 ある T T F F T T F F ない F F T T F F T T 注⽂⾦額 1000円以上 T F T F T F T F 1000円未満 F T F T F T F T 結果 飲酒可能 - - X X - - - - 原因と結果を埋めたあとで、 注⽂⾦額が関係ないことがわかった(無則) ※条件が結果に関係なくてもテストを⾏いたい場合は、意図的に削除しない場合もあります 原因 年齢 20歳以上 T T F F 19歳以下 F F T T 運転予定 ある T F T F ない F T F T 結果 飲酒可能 - X - -
  19. デシジョンテーブルの圧縮、整理 圧縮、整理して簡単化したデシジョンテーブルを 簡単化したデシジョンテーブル(Collapsed decision table)と呼ぶ。 圧縮、整理していないデシジョンテーブルは 完全なデシジョンテーブル(Full decision table)と呼ぶ。 圧縮や整理を⾏い、⾏や、列を削除するときは本当に削除するべきかを検討する。

    レビューするときは削除せずに、グレーアウトなどをしておくと良い。 原因 年齢 20歳以上 T T T T F F F F 19歳以下 F F F F T T T T 運転予定 ある T T F F T T F F ない F F T T F F T T 運転免許 取得済み T F T F T F T F 未取得 F T F T F T F T 結果 飲酒可能 - - X X - - - - 値として2値を持つ指定制限(limited-entry)デシジョンテーブルで、 すべての条件が網羅されたもの(要素数がnで2nの列が存在するもの)を 完全な指定制限(complete limited-entry)デシジョンテーブルと呼ぶ。
  20. デシジョンテーブル圧縮ワーク解説 原 因 時間 20時まで T T - - F

    20時以降 F F - - T 年齢 70歳未満 T T - F T 70歳以上 F F - T F 学⽣ ⼤・専 F T F - - ⼩・中・⾼ F F T F F 結 果 料⾦ 1800円 X - - - - 1500円 - X - - - 1300円 - - - - X 1100円 - - - X - 1000円 - - X - - 今回の条件では、平⽇、⼟⽇祝⽇は料⾦に関係していない。 ⼩、中、⾼校⽣は時間帯、年齢によらず料⾦は⼀律。 20時以降の70歳以下の⼈は、 ⼩、中、⾼でなければ料⾦は⼀律となる。
  21. 参考資料 • SQuBOK V3 • SWEBOK V3.0 • JSTQB Advanced

    Level Test Analyst シラバス Version 3.1.1.J03 • ソフトウェアテスト設計ドリル • note:93号︓デシジョンテーブル https://note.com/akiyama924/n/ndd7dcbb2cd5b • ソフトウェアテストの最新動向︓7.テスト/デバッグ技法の効果と効率 https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_uri&item_id=60855&file_id=1&fi le_no=1 • ソフトウェアテストの展望 http://www.jasst.jp/archives/jasst07e/pdf/A7.pdf • WACATE2018 夏 原因結果グラフ解説 https://www.slideshare.net/softest/wacate2018-102550504 • かいてみようCFD https://www.slideshare.net/omn/wacate2012w-letsdrawcfdpublic