Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

WACATE2010w テスト技法ワーク_スライド

1,104 views

Published on

  • Be the first to comment

WACATE2010w テスト技法ワーク_スライド

  1. 1. 「デシジョンテーブルを使いこ なそう!」 加瀬 正樹(WACATE実行委員会) 1 Copyright (C) 2010 WACATE All rights reserved
  2. 2. 少し自己紹介 名前 加瀬 正樹 所属 ニフティ株式会社 http://www.nifty.co.jp/ 会員向けのメールサービスのシステム開発 や迷惑メール対策への取り組み 主な活動 WACATE http://wacate.jp/ 若手テストエンジニアをターゲットにした ソフトウェアテストワークショップ TEF勉強会 http://www.swtest.jp/wiki/index.php 技法ドリル勉強会 主にテスト技法をテーマにしたオフライン やってるよ! 勉強会を不定期開催 Copyright (C) 2010 WACATE All rights reserved
  3. 3. 今日の流れ 講義のお時間 ・解説 30分 ・例題 演習のお時間 ・個人演習 90分 ・グループ演習 ・発表 ・補足解説など Copyright (C) 2010 WACATE All rights reserved
  4. 4. デシジョンテーブル入門 まずはおさらい! Copyright (C) 2010 WACATE All rights reserved 4
  5. 5. デシジョンテーブルとは? 定義 起こりうる入力条件と、それらの組合せに対応 する出力結果(動作や処理)をまとめた表 特徴 複雑な論理関係をもつ分析対象を漏れなく整理 しやすい プログラムの論理構成を表現できる テーブルからプログラムへ変換できる テスト設計における効果 テストケースの削減 仕様バグの検出 Copyright (C) 2010 WACATE All rights reserved
  6. 6. 具体的なデシジョンテーブル例 月の末日 指定した月の末日(28日~31日)を出力するプロ グラムのデシジョンテーブルを作成しなさい。 タイトル:月の末日 #1 #2 #3 #4 Copyright (C) 2010 WACATE All rights reserved
  7. 7. 条件スタブ例 月の末日 指定した月の末日(28日~31日)を出力するプロ グラムのデシジョンテーブルを作成しなさい。 タイトル:月の末日 #1 #2 #3 #4 大の月 条件スタブ: 小の月(2月以外) •考慮すべき入力条件を記入 2月 •判定する順序で上から並べる うるう年 Copyright (C) 2010 WACATE All rights reserved
  8. 8. 動作スタブ例 月の末日 指定した月の末日(28日~31日)を出力するプロ グラムのデシジョンテーブルを作成しなさい。 タイトル:月の末日 #1 #2 #3 #4 大の月 小の月(2月以外) 2月 うるう年 28日 動作スタブ: 29日 •出力結果を記入 30日 •処理する順序で上から並べる 31日 Copyright (C) 2010 WACATE All rights reserved
  9. 9. 条件エントリ例 月の末日 指定した月の末日(28日~31日)を出力するプロ グラムのデシジョンテーブルを作成しなさい。 タイトル:月の末日 #1 #2 #3 #4 動作エントリ: 大の月 Y N N N Y ⇒ Yes, 真である N ⇒ No, 偽である 小の月(2月以外) - Y N N - ⇒ 真偽は無関係 2月 - - Y Y うるう年 - - N Y 28日 29日 30日 31日 Copyright (C) 2010 WACATE All rights reserved
  10. 10. 動作エントリ例 月の末日 指定した月の末日(28日~31日)を出力するプロ グラムのデシジョンテーブルを作成しなさい。 タイトル:月の末日 #1 #2 #3 #4 大の月 Y N N N 小の月(2月以外) - Y N N 2月 - - Y Y うるう年 - - N Y 動作エントリ: 28日 ○ ○ ⇒ 動作を実行 29日 ○ 空欄⇒ 動作は実行せず 30日 ○ 31日 ○ Copyright (C) 2010 WACATE All rights reserved
  11. 11. ルールの解釈例 月の末日 指定した月の末日(28日~31日)を出力するプロ グラムのデシジョンテーブルを作成しなさい。 タイトル:月の末日 #1 #2 #3 #4 大の月 Y N N N 小の月(2月以外) - Y N N 2月 - - Y Y うるう年 - - N Y 28日 ○ 指定した月が「大の月」 29日 ○ の場合、末日は「31日」 30日 ○ 31日 ○ Copyright (C) 2010 WACATE All rights reserved
  12. 12. ルールの解釈例 月の末日 指定した月の末日(28日~31日)を出力するプロ グラムのデシジョンテーブルを作成しなさい。 タイトル:月の末日 #1 #2 #3 #4 大の月 Y N N N AND 小の月(2月以外) - Y N N AND 2月 - - Y Y AND うるう年 - - N Y THEN 28日 ○ 29日 ○ 指定した月が「2月」かつ 30日 ○ 「うるう年」の場合、末 31日 ○ 日は「29日」 Copyright (C) 2010 WACATE All rights reserved
  13. 13. テーブル表記には3種類ある• 制限エントリテーブル エントリ記入方法が真理値(Y/N)に制限された テーブル タイトル:月の末日 #1 #2 #3 #4 大の月 Y N N N Y/Nの代わりに T/Fを用いる場合 小の月(2月以外) - Y N N もあるよ 2月 - - Y Y うるう年 - - N Y 28日 ○ 29日 ○ XやT/Fで書く場 30日 ○ 合もあるよ 31日 ○ Copyright (C) 2010 WACATE All rights reserved
  14. 14. テーブル表記には3種類ある• 拡張エントリテーブル スタブに変数名を記述し、エントリに値を記入し たテーブル タイトル:月の末日 #1 #2 #3 #4 入力月 大の月 小の月 2月 2月 平年・うるう年 - - 平年 うるう年 末日 31日 30日 28日 29日 Copyright (C) 2010 WACATE All rights reserved
  15. 15. テーブル表記には3種類ある• 混合エントリテーブル 制限エントリテーブルと、拡張エントリテーブル をまとめたテーブル タイトル:月の末日 #1 #2 #3 #4 大の月 Y N N N 小の月(2月以外) - Y N N 2月 - - Y Y うるう年 - - N Y 末日 31日 30日 28日 29日 Copyright (C) 2010 WACATE All rights reserved
  16. 16. テーブル表記には3種類あるテーブル表記 特徴制限エントリ 真偽値で表現されていて、プログラムへの 変換や網羅漏れチェックがしやすい拡張エントリ 因子・水準で表現されていて、テーブルサ イズ(タテ方向)が小さくなる混合エントリ 制限・拡張のよいところを利用でき、ド キュメントとしての読みやすさがある ビジネスルールを記述する場合は拡張エントリや混 合エントリを使うことが多いです 今日の演習では制限エントリを扱います Copyright (C) 2010 WACATE All rights reserved
  17. 17. テーブルの圧縮 テーブルの圧縮方法を 学ぼう!Copyright (C) 2010 WACATE All rights reserved 17
  18. 18. テーブルの大きさ• 入力条件数からテーブルサイズが決まる• 特に制限エントリテーブルは 2n 個 タイトル:IF A AND (B OR C) THEN X ELSE Y のルール #1 #2 #3 #4 #5 #6 #7 #8 条件A Y Y Y Y N N N N 3個 条件B Y Y N N Y Y N N 条件C Y N Y N Y N Y N 処理X ○ ○ ○ 処理Y ○ ○ ○ ○ ○ 23 = 8個 Copyright (C) 2010 WACATE All rights reserved
  19. 19. テーブルの圧縮• 出力に影響を及ぼさない入力条件はまとめられる (これをテーブルの圧縮という) タイトル:IF A AND (B OR C) THEN X ELSE Y のルール #1 #2 #3 #4 #5 #6 #7 #8 条件A Y Y Y Y N N N N 条件B Y Y N N Y Y N N 条件C Y N Y N Y N Y N 処理X ○ ○ ○ 処理Y ○ ○ ○ ○ ○ 条件Cは無関係 ⇒ 記号「-」 Copyright (C) 2010 WACATE All rights reserved
  20. 20. テーブルの圧縮• 下から順番にテーブルの圧縮を繰り返す タイトル:IF A AND (B OR C) THEN X ELSE Y のルール #1 #2 #3 #4 #5 条件A Y Y Y N N 条件B Y N N Y N 条件C - Y N - - 処理X ○ ○ 処理Y ○ ○ ○ 条件Bは無関係 ⇒ 記号「-」 Copyright (C) 2010 WACATE All rights reserved
  21. 21. テーブルの圧縮• テーブルの圧縮が完成 タイトル:IF A AND (B OR C) THEN X ELSE Y のルール #1 #2 #3 #4 条件A Y Y Y N 条件B Y N N - 条件C - Y N - 処理X ○ ○ 処理Y ○ ○ 8個のルールが4個に圧縮できた。 けど、あってるかな?? Copyright (C) 2010 WACATE All rights reserved
  22. 22. 圧縮後の検算• テーブル圧縮が正しく行われたかを、記号「-」 の個数を使って検算できる タイトル:IF A AND (B OR C) THEN X ELSE Y のルール #1 #2 #3 #4 条件A Y Y Y N23 条件B Y N N -=8個 条件C 1回 - Y N - 2回 処理X ○ ○ 処理Y ○ ○ 21 1 1 22 =8個 漏れをなくすために、検算方法も覚えておこう! Copyright (C) 2010 WACATE All rights reserved
  23. 23. デシジョンテーブルを描いてみよう さあ、例題を解きながら 解説していきます! Copyright (C) 2010 WACATE All rights reserved 23
  24. 24. 4つの手順を覚えよう1. 入力条件と出力(結果)を見つける2. テーブルサイズを決定して、真理値(Y/N )を記入する3. 各ルールの出力(結果)を記入する4. テーブルを圧縮する まずは基本の手順をしっかり身に つけよう! Copyright (C) 2010 WACATE All rights reserved
  25. 25. 例題参議院被選挙権 日本国民で年齢満30年以上の者は参議院議員の被選挙権を 有する。ただし、例外的に被選挙権を有しない者につい ては公職選挙法に規定がある。 ウィキペディア(改) Copyright (C) 2010 WACATE All rights reserved
  26. 26. 入力と結果を見つける参議院被選挙権 日本国民で年齢満30年以上の者は参議院議員の被選挙権を 有する。ただし、例外的に被選挙権を有しない者につい ては公職選挙法に規定がある。 ウィキペディア(改) 日本国民 満30年以上 2×2×2 = 公職選挙法の規定 8 ルール 被選挙権あり 被選挙権なし Copyright (C) 2010 WACATE All rights reserved
  27. 27. サイズを決定してテーブルを作成する参議院被選挙権 日本国民で年齢満30年以上の者は参議院議員の被選挙権を 有する。ただし、例外的に被選挙権を有しない者につい ては公職選挙法に規定がある。 ウィキペディア(改)参議院被選挙権 #1 #2 #3 #4 #5 #6 #7 #8日本国民 Y Y Y Y N N N N Yを半分、Nを半分満30年以上 並べて書き込む Y Y N N Y Y N N公職選挙法の規定 Y N Y N Y N Y N被選挙権あり 上段の1/2分だけ被選挙権なし 同じ規則で書き込む Copyright (C) 2010 WACATE All rights reserved
  28. 28. 各ルールの結果を記入する参議院被選挙権 日本国民で年齢満30年以上の者は参議院議員の被選挙権を 有する。ただし、例外的に被選挙権を有しない者につい ては公職選挙法に規定がある。 ウィキペディア(改)参議院被選挙権 #1 #2 #3 #4 #5 #6 #7 #8 結果をそれぞれ日本国民 Y Y Y Y N N N N 書き込む満30年以上 Y Y N N Y Y N N公職選挙法の規定 Y N Y N Y N Y N被選挙権あり ○被選挙権なし ○ ○ ○ ○ ○ ○ ○ Copyright (C) 2010 WACATE All rights reserved
  29. 29. テーブルを圧縮する参議院被選挙権 日本国民で年齢満30年以上の者は参議院議員の被選挙権を 有する。ただし、例外的に被選挙権を有しない者につい ては公職選挙法に規定がある。 ウィキペディア(改)参議院被選挙権 #1 #2 #3 #4 #5 #6 #7 #8日本国民 Y Y Y Y N N N N満30年以上 Y Y N N Y Y N N公職選挙法の規定 Y N Y N Y N Y N被選挙権あり ○被選挙権なし ○ ○ ○ ○ ○ ○ ○ Copyright (C) 2010 WACATE All rights reserved
  30. 30. テーブルを圧縮する参議院被選挙権 日本国民で年齢満30年以上の者は参議院議員の被選挙権を 有する。ただし、例外的に被選挙権を有しない者につい ては公職選挙法に規定がある。 ウィキペディア(改)参議院被選挙権 #1 #2 #3 #4 #5日本国民 Y Y Y N N満30年以上 Y Y N Y N公職選挙法の規定 Y N - - -被選挙権あり ○被選挙権なし ○ ○ ○ ○ Copyright (C) 2010 WACATE All rights reserved
  31. 31. テーブル圧縮結果参議院被選挙権 日本国民で年齢満30年以上の者は参議院議員の被選挙権を 有する。ただし、例外的に被選挙権を有しない者につい ては公職選挙法に規定がある。 ウィキペディア(改)参議院被選挙権 #1 #2 #3 #4日本国民 Y Y Y N満30年以上 Y Y N -公職選挙法の規定 Y N - -被選挙権あり ○被選挙権なし ○ ○ ○ Copyright (C) 2010 WACATE All rights reserved
  32. 32. それでは演習の時間です 個人で解いて、 隣どうしで説明してみよう! Copyright (C) 2010 WACATE All rights reserved 32
  33. 33. イタリア料理屋さんの割引問題 12月中の月曜日のコース料理ご利用で¥5000から2割引き ! Copyright (C) 2010 WACATE All rights reserved
  34. 34. パスワード登録プログラム問題 入力された文字列がパスワードとして適切かどうかを以下 の順序で判定する。 (1) 長さが、5~16文字でない場合はエラー表示 (2) アカウント名と同一文字列であればエラー表示 (3) 記号を含む場合はエラー表示 Copyright (C) 2010 WACATE All rights reserved
  35. 35. 運転免許の有効期限問題 免許証の有効期限は次のようになっている。このルールを デシジョンテーブルで表せ。 優良運転者 更新時の年齢が69歳以下 5年間 更新時の年齢が70歳 4年間 更新時の年齢が71歳以上 3年間 一般運転者 3年間 初回更新者 2年間 Copyright (C) 2010 WACATE All rights reserved
  36. 36. 三色旗判定プログラム問題 縦三色旗の画像を入力すると、4カ国の国名を出力するプロ グラムがある。該当しない場合は「不明」と出力 ・フランスは左から青・白・赤 ・イタリアは左から緑・白・赤 ・メキシコは左から緑・白・赤で中央に鷲マーク ・ルーマニアは左から青・黄・赤 ・左→中央→右の順で色とマークを判定 ※色の濃淡は無視してくださいフランス イタリア メキシコ ルーマニア Copyright (C) 2010 WACATE All rights reserved
  37. 37. グループ演習・解答を説明してみよう・工夫したところ、悩んだところ・仕様などで確認したいところ Copyright (C) 2010 WACATE All rights reserved 37
  38. 38. 発表してみようCopyright (C) 2010 WACATE All rights reserved 38
  39. 39. 最後にCopyright (C) 2010 WACATE All rights reserved 39
  40. 40. デシジョンテーブルの補足 注意したいこと 経験が必要 デシジョンテーブルが適切かどうかの判断 テスト対象の分析 テーブル作成や圧縮作業 開発と連携してテーブル作成 判定順序・動作順序が重要 関連するテスト技法・手法を利用 原因結果グラフ CFD法 Copyright (C) 2010 WACATE All rights reserved
  41. 41. 技と術と芸Copyright (C) 2010 WACATE All rights reserved 41
  42. 42. 技と術と芸技[わざ]• 特定の目的を持ち、その目的を果たすた めの手段・手法 参考:ウィキペディア Copyright (C) 2010 WACATE All rights reserved
  43. 43. 技と術と芸術[じゅつ]• 技を体系的にまとめ、改変が施されて流 派に分かれたり、統一されたすべ 参考:ウィキペディア Copyright (C) 2010 WACATE All rights reserved
  44. 44. 技と術と芸芸[げい]• 個性的・独創的で継承することが困難だ が、作品を確認することで業績を知るこ とができる技能 参考:ウィキペディア Copyright (C) 2010 WACATE All rights reserved
  45. 45. 技法はこれにて つぎは近江さん&井芹さん Copyright (C) 2010 WACATE All rights reserved 45

×