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

テスト設計技法の説明 -思い出してみよう-/wacate2016summer

テスト設計技法の説明 -思い出してみよう-/wacate2016summer

「WACATE2016 夏 〜走りきるテスト設計〜」の中で発表した、テスト設計技法の説明資料です。

i_echiuyan

June 18, 2016
Tweet

More Decks by i_echiuyan

Other Decks in Technology

Transcript

  1. みなさん、予習してきましたか? ~予習範囲(WACATEブログより)~ JSTQBのシラバスの1,2,4章をさらりと一読しておいて頂く (必須) ※Foundation Level シラバス 日本語版 Version 2011.J02

    ソフトウェアテスト技法ドリル―テスト設計の考え方と実際 (こちらは任意なので余力があればで結構です) COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  2. 同値分割法 例)映画館のチケット料金を 同値分割法でテスト 種類 金額 一般 ¥1,800 小人(3才~15才) ¥1,000 シニア(60才以上)

    ¥1,100 有効 (映画館に行ける) 無効 無効 (映画館に行けない) システム 的に無効 業務的に 無効 小人料金 一般料金 シニア料金 システ ム的に 無効 3才 15才 60才 200才 0才 COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  3. 同値分割法 例)映画館のチケット料金を 同値分割法でテスト 種類 金額 一般 ¥1,800 小人(3才~15才) ¥1,000 シニア(60才以上)

    ¥1,100 無効 有効 無効 システム的に 無効 業務的に 無効 小人料金 一般料金 シニア料金 システム的に 無効 -1才 1才 4才 25才 65才 203才 COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  4. 境界値分析 種類 金額 一般 ¥1,800 小人(3才~15才) ¥1,000 シニア(60才以上) ¥1,100 有効

    (映画館に行ける) 無効 無効 (映画館に行けない) システム 的に無効 業務的に 無効 小人料金 一般料金 シニア料金 システ ム的に 無効 3才 15才 60才 200才 0才 例)映画館のチケット料金 を境界値分析でテスト COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  5. 一般料金 小人料金 境界値分析 種類 金額 一般 ¥1,800 小人(3才~15才) ¥1,000 シニア(60才以上)

    ¥1,100 15才 15才は「小人」 例)映画館のチケット料金 を境界値分析でテスト COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  6. 一般料金 小人料金 境界値分析 種類 金額 一般 ¥1,800 小人(3才~15才) ¥1,000 シニア(60才以上)

    ¥1,100 15才 16才は「一般」 16才 例)映画館のチケット料金 を境界値分析でテスト COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  7. 境界値分析 種類 金額 一般 ¥1,800 小人(3才~15才) ¥1,000 シニア(60才以上) ¥1,100 有効

    (映画館に行ける) 無効 無効 (映画館に行けない) システム 的に無効 業務的に 無効 小人料金 一般料金 シニア料金 システ ム的に 無効 3才 15才 60才 200才 0才 例)映画館のチケット料金 を境界値分析でテスト COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  8. 有効 (映画館に行ける) 無効 無効 (映画館に行けない) システム 的に無効 業務的に 無効 小人料金

    一般料金 シニア料金 システ ム的に 無効 境界値分析 種類 金額 一般 ¥1,800 小人(3才~15才) ¥1,000 シニア(60才以上) ¥1,100 3才 15才 60才 200才 0才 59才 16才 2才 -1才 201才 例)映画館のチケット料金 を境界値分析でテスト COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  9. 境界値分析 種類 金額 一般 ¥1,800 小人(3才~15才) ¥1,000 シニア(60才以上) ¥1,100 0才

    3才 15才 60才 200才 -1才 0才 2才 3才 15才 16才 59才 60才 200才 201才 例)映画館のチケット料金 を境界値分析でテスト COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  10. 同値分割法・境界値分析参考文献 リー・コープランド著、宗 雅彦訳 「はじめて学ぶソフトウェアのテスト技法」 日経BP社、2005年 秋山 浩一著 「ソフトウェアのテスト技法ドリル-テスト設計の考え方と実際-」日科技連出版社、2010年 ボーリス・バイザー著 「実践的プログラムテスト入門-ソフトウェアのブラックボックステスト-」日経BP社、

    1997年 SQuBOK策定部会編 「ソフトウェア品質知識体系ガイド(第2版)」日経BP社、2005年 テスト技術者資格制度 シラバス ◼http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.J02.pdf ◼http://jstqb.jp/dl/JSTQB-Syllabus.Advanced_TA_Version2012.J01.pdf COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  11. デシジョンテーブルテスト 1 2 3 4 5 6 7 9 条件

    学生 Y Y Y Y N N N N 小人(3才~15才) N N N N N N Y N シニア(60歳以上) Y Y N N Y Y N N 身分証明書あり Y N Y N Y N ー ー 結果 ¥1,800 X X X X ¥1,500 X ¥1,100 X ¥1,000 X X →ここからテストケースにおとす デシジョンテーブルからテストケースを作成する デシジョンテーブル: 複数の入力条件があった場合にその条件を組み合わせて成立するか、 またその組み合わせにより異なる出力結果(動作)を表形式に表したもの COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  12. デシジョンテーブルテスト デシジョンテーブルは、4つで構成されます 1 2 3 4 5 6 7 8

    9 10 11 12 条件 学生 Y Y Y Y N N N N N N N N 小人(3才~中学生) N N N N N N N N Y N N N シニア(60歳以上) Y Y N N Y Y N N N Y Y N 身分証明書あり Y N Y N Y N Y N ー Y N ー 結果 ¥1,800 X X X X X X ¥1,500 X ¥1,100 X X ¥1,000 X X X 動作指定部 (組み合わせに対する結果) 条件指定部 (条件組み合わせ) 条件記述部 (条件の一覧) 動作記述部 (出力結果の一覧) COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  13. デシジョンテーブルテスト ②動作記述部を書き出す 条件 学生 小人(3才~15才) シニア(60歳以上) 身分証明書あり 結果 ¥1,800 ¥1,500

    ¥1,100 ¥1,000 起こりうる動作や結果を記述する部分 今回の例では、 チケット代をここに書き出します COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  14. デシジョンテーブルテスト ③条件指定部を書き出す 1 2 3 4 条件 学生 Y Y

    Y Y 小人(3才~15才) N N N Y シニア(60歳以上) N N Y N 身分証明書あり N Y N N 結果 ¥1,800 ¥1,500 ¥1,100 ¥1,000 描き出した条件に対して 「Yes」「No」の組み合わせを 全て書き出す 今回の例のケース1では 学生であり、ほかの条件には 当てはまらない場合の ケースとなる Y:その条件に該当する N:その条件に該当しない COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  15. デシジョンテーブルテスト ④動作指定部を書く 1 2 3 4 条件 学生 Y Y

    Y Y 小人(3才~15才) N N N Y シニア(60歳以上) N N Y N 身分証明書あり N Y N N 結果 ¥1,800 X X ¥1,500 X ¥1,100 ¥1,000 X 書き出した条件指定部の 組み合わせに対して 取りうる結果に「X」を書く 今回の例のケース1は、 学生だが、 身分証明書がないので 一般の料金と同じ ¥1,800となる COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  16. デシジョンテーブルテスト 条件を書き出していくと・・・ 1 2 3 4 5 6 7 8

    9 10 11 12 条件 学生 Y Y Y Y Y Y N N N N N N 小人(3才~15才) N N Y Y N N N N Y Y N N シニア(60歳以 上) Y Y N N N N Y Y N N N N 身分証明書あり Y N Y N Y N Y N Y N Y N 結果 ¥1,800 X N/A N/A X X X X ¥1,500 N/A N/A X ¥1,100 X N/A N/A ¥1,000 N/A N/A X X X 小人の場合、身分証明に よる影響を受けない →テストケース省略 一般の人の場合、 身分証明による 影響を受けない →テストケース 省略 学生かつ小人の組み合わ せは成り立たない →テストケース削除 COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  17. デシジョンテーブルテスト テストケースを圧縮する 1 2 3 4 5 6 7 9

    条件 学生 Y Y Y Y N N N N 小人(3才~15才) N N N N N N Y N シニア(60歳以上) Y Y N N Y Y N N 身分証明書あり Y N Y N Y N ー ー 結果 ¥1,800 X X X X ¥1,500 X ¥1,100 X X ¥1,000 X 省略 省略 成り立たない組み合わせを削除 ※圧縮時は 処理順を意識しよう COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  18. デシジョンテーブルテスト テストケースに書き出す ケース 条件1 条件2 条件3 期待される結果 (チケット代金) 1 学生

    シニア 身分証明書あり ¥1,100 2 学生 シニア 身分証明書なし ¥1,800 3 学生 ー 身分証明書あり ¥1,500 4 学生 ー 身分証明書なし ¥1,800 5 シニア ー 身分証明書あり ¥1,100 6 シニア ー 身分証明書なし ¥1,800 7 小人 ー ー ¥1,000 8 一般 ー ー ¥1,800 COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  19. 状態遷移テスト 例)自動券売機からのチケット購入 自動券売機からの映画館のチケット購入の流れ 1. 上映スケジュールから、映画を選択する 2. 座席を指定する 3. チケット代金を確認する 4.

    チケット代金を入金する 5. チケット購入完了 エラーの時は、エラーのメッセージが表示され、次画面に遷移できない キャンセルボタンでチケット購入をキャンセルできる COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  20. 状態遷移テスト 例)自動券売機からのチケット購入 自動券売機からの映画館のチケット購入の流れ 1. 上映スケジュールから、映画を選択する 2. 座席を指定する 3. チケット代金を確認する 4.

    チケット代金を入金する 5. チケット購入完了 エラーの時は、エラーのメッセージが表示され、次画面に遷移できない キャンセルボタンでチケット購入をキャンセルできる まず、 仕様から状態を導き出す 今回の例では ・映画選択中 ・座席指定中 ・入金待ち ・購入完了 が、状態としてありそう COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  21. 状態遷移テスト 例)自動券売機からのチケット購入 自動券売機からの映画館のチケット購入の流れ 1. 上映スケジュールから、映画を選択する 2. 座席を指定する 3. チケット代金を確認する 4.

    チケット代金を入金する 5. チケット購入完了 エラーの時は、エラーのメッセージが表示され、次画面に遷移できない キャンセルボタンでチケット購入をキャンセルできる つぎに、 状態が変化するイベントを探す 今回の例では ・映画選択 ・座席指定 ・チケット代入金 ・キャンセルボタン選択 ・エラーメッセージ表示 が、イベントとしてありそう COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  22. 状態遷移テスト 状態遷移図に書き出す 映画 選択中 座席 選択中 入金 待ち 購入 完了

    必要な 金額を 入金 入金エラー 座席を選択 戻るボタン キャンセル ボタン キャンセル ボタン 映画選択エラー (無効な選択) 映画を 選択 「はい」を選択 キャン セル確 認中 「いいえ」 を選択 「いいえ」 を選択 OKボタン COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  23. 状態遷移テスト 状態遷移図をもとに、状態遷移表を書く 映画を 選択 座席を 選択 必要な金 額を入金 戻る ボタン

    映画選択 エラー 入金 エラー キャンセ ルボタン キャンセ ル:はい キャンセ ル:いい え OKボタ ン 映画選択中 座席 選択中 ー ー ー 映画選択 中に戻る ー ー ー ー ー 座席選択中 ー 入金待ち ー ー ー ー キャンセ ル確認中 ー ー ー 入金待ち ー ー 購入完了 座席 選択中 ー 入金待ち に戻る キャンセ ル確認中 ー ー ー 購入完了 ー ー ー ー ー ー ー ー ー 終了 キャンセル 確認中 ー ー ー ー ー ー ー 終了 前の画面 に戻る ー 状態 イベント COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  24. 状態遷移テスト 状態遷移図をもとに、状態遷移表を書く ※一部抜粋 映画を 選択 座席を 選択 必要な金 額を入金 戻る

    ボタン 映画選択 エラー 入金 エラー キャンセ ルボタン 映画選択中 座席 選択中 ー ー ー 映画選択 中に戻る ー ー 座席選択中 ー 入金待ち ー ー ー ー キャンセ ル確認中 入金待ち ー ー 購入完了 座席 選択中 ー 入金待ち に戻る キャンセ ル確認中 状態 イベント COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  25. 状態遷移テスト 状態遷移図から、テストケースを作る 映画 選択中 座席 選択中 入金 待ち 購入 完了

    必要な 金額を 入金 入金エラー 座席を選択 戻るボタン キャンセル ボタン キャンセル ボタン 映画選択エラー (無効な選択) 映画を 選択 「はい」を選択 キャン セル確 認中 「いいえ」 を選択 「いいえ」 を選択 OKボタン ① ② COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  26. ユースケーステスト 顧客が映画館のチケットをオンラインで購入する 1 顧客 映画を選ぶ 2 システム 選択可能なチケット種類を表示する … 7

    顧客 購入ボタンを押す 8 システム 購入情報を登録し、決済システムに情報を送信する 9 システム チケット番号をメールで送信する COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  27. ユースケーステスト 顧客が映画館のチケットをオンラインで購入する ✓「顧客が映画館のチケットをオンラインで購入する」テスト ◦ 画面を開いて映画を選択する ◦ →チケット種類が画面に表示されるので、選択する ◦ → …

    ◦ →購入したチケット番号をメールで確認できることを確認する 1 顧客 映画を選ぶ 2 システム 選択可能なチケット種類を表示する … 7 顧客 購入ボタンを押す 8 システム 購入情報を登録し、決済システムに情報を送信する 9 システム チケット番号をメールで送信する COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  28. ユースケーステスト 顧客がチケットを購入する 1 顧客 映画を選ぶ 2 システム 選択可能なチケット種類を表示する … 7

    顧客 購入ボタンを押す 8 システム 購入情報を登録し、決済システムにデータを送信する 9 システム チケット番号をメールで送信する STEP2:どんなシナリオになる? COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  29. 顧客がチケットを購入する 1 … 1 顧客 映画を選ぶ 2 システム 選択可能なチケット種類を表示する …

    7 顧客 購入ボタンを押す 8 システム 購入情報を登録し、決済システムにデータを送信する 9 システム チケット番号をメールで送信する 2 7 8 9 8a 決済に失敗する 8a-1 システム 決済エラーを登録し購入失敗を表示する 8a-2 顧客 トップページに戻る 8a-1 9a 8a-2 3パターンのテストができる 1→2→…7→8→9 1→2→…7→8a-1→8a-2 1→2→…7→9a … 9a メールアドレスが登録されていない 9a システム チケット番号を画面に表示する(メール送信なし) COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  30. 顧客がチケットを購入する 1 … 1 顧客 映画を選ぶ 2 システム 選択可能なチケット種類を表示する …

    7 顧客 購入ボタンを押す 8 システム 購入情報を登録し、決済システムにデータを送信する 9 システム チケット番号をメールで送信する 2 7 8 9 8a 決済に失敗する 8a-1 システム 決済エラー情報を登録し購入失敗を表示する 8a-2 顧客 トップページに戻る 8a-1 9a 8a-2 3パターンのテストができる 1→2→…7→8→9 1→2→…7→8a-1→8a-2 1→2→…7→9a … 9a メールアドレスが登録されていない 9a システム チケット番号を画面に表示する(メール送信なし) COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  31. 顧客がチケットを購入する 1 … 1 顧客 映画を選ぶ 2 システム 選択可能なチケット種類を表示する …

    7 顧客 購入ボタンを押す 8 システム 購入情報を登録し、決済システムにデータを送信する 9 システム チケット番号をメールで送信する 2 7 8 9 8a 決済に失敗する 8a-1 システム 決済エラー情報を登録し購入失敗を表示する 8a-2 顧客 トップページに戻る 8a-1 9a 8a-2 3パターンのテストができる 1→2→…7→8→9 1→2→…7→8a-1→8a-2 1→2→…7→9a … 9a メールアドレスが登録されていない 9a システム チケット番号を画面に表示する(メール送信なし) COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  32. ユースケーステスト 参考文献 ◼ はじめて学ぶソフトウェアのテスト技法, リー・コープランド (著), 宗 雅彦 (翻訳), 日経BP社

    (2005/11/3) ◼ユースケース実践ガイド―効果的なユースケースの書き方 (OOP Foundations), アリスター コーバーン (著), Alistair Cockburn (著), ウルシステムズ株式会社 (著), 山岸 耕二 (著), 矢崎 博英 (著), 水谷 雅宏 (著), 篠原 明子 (著) , 翔泳社 (2001/11) ◼【改訂版】初歩のUML:第8回 顧客の要求をユースケースに反映させる ◼ http://www.itmedia.co.jp/im/articles/0307/05/news002.html ◼テスト技術者資格制度 シラバス ◼ http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.J02.pdf ◼ http://jstqb.jp/dl/JSTQB-Syllabus.Advanced_TA_Version2012.J01.pdf COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  33. 今回取り上げたテスト設計技法 技法 メリット ポイント 使いどころ 同値分割法 テストケースをまとめる 同値クラスを見誤る可能性 あらゆる対象 境界値分析

    よくバグが発生する場所 →効率的にバグを発見 同値クラスを見誤る可能性 基準(単位)に気をつける あらゆる対象 チェックなど デシジョンテーブル 複数の条件による組み合 わせの結果を明確にする 条件をもれなく出す 複数の条件があり、 それにより結果が変 わる場合 状態遷移 状態が遷移するルートに過 不足がないかを明確にでき る 状態やイベントをもれなく出 す システムが複数の状 態に変化する場合 画面遷移など ユースケーステスト ユーザ視点で仕様を整理、 テストできる フローを洗い出す 外部システムも相手になる ユーザ・外部システム が複数、相互作用が 複雑な場合 COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  34. 参考文献 ・はじめて学ぶソフトウェアのテスト技法 リー・コープランド(著)、宗 雅彦(訳) 日経BP社 (2005/11/3) ・ソフトウェアのテスト技法ドリル-テスト設計の考え方と実際- 秋山 浩一(著) 日科技連出版社

    (2010/10) ・知識ゼロから学ぶソフトウェアテスト【改訂版】 高橋 寿一 (著) 翔泳社; 改訂版 (2013/12/10) ・ソフトウェアテスト教科書 JSTQB Foundation 第3版 大西 建児 (著), 勝亦 匡秀 (著), 佐々木 方規 (著), 鈴木 三紀夫 (著), 中野 直樹 (著), 町田 欣史 (著), 湯本 剛 (著), 吉澤 智美 (著) 翔泳社; 第3版 (2011/11/12) ・JSTQB-SyllabusFoundation_Version2011.J02 COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED