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

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

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

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

F27c302513136da4e9004e055f31136e?s=128

i_echiuyan

June 18, 2016
Tweet

Transcript

  1. テスト設計技法の説明 ー思い出してみようー WACATE実行委員 越中谷 郁美 山口 寛子 近江 久美子 COPYRIGHT

    (C) 2016 WACATE ALL RIGHTS RESERVED
  2. このセッションでは・・・ 今回の演習でテスト設計時に使われる 代表的なテスト設計技法について説明します。 COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED

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

    ソフトウェアテスト技法ドリル―テスト設計の考え方と実際 (こちらは任意なので余力があればで結構です) COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  4. 予習してみて・・・ 予習して技法の使い方は完璧!という人も 予習したけれどわからなかった という人も このセッションで振り返りしていきましょう。 COPYRIGHT (C) 2016 WACATE ALL

    RIGHTS RESERVED
  5. JSTQB FLシラバスVersion2011.J02 4.2テスト設計技法 のカテゴリ テスト設計技法の目的は、 テスト条件とテストケース、 テストデータを決定することである テスト設計とは何? COPYRIGHT (C)

    2016 WACATE ALL RIGHTS RESERVED
  6. 概略的なテスト目的を具体的なテスト条件とテスト ケースに変換するプロセスになります。 テスト目的や仕様を分析した内容をもとに、 テスト設計では、評価すべき機能、パラメータ、動作 環境などや、それらの組み合わせからテストケースを 検討していきます。 テスト設計とは COPYRIGHT (C) 2016

    WACATE ALL RIGHTS RESERVED
  7. やみくもにテストケースを作成すると テストケース数が爆発したり、 漏れや偏りが発生します テスト設計技法を使ってテスト設計を行うことにより、 テストケース数を絞りつつ、必要な条件を網羅するこ とができるようになります 少ない工数で障害を多く見つけるためには、テスト設 計技法は有効です テスト設計技法を使おう COPYRIGHT

    (C) 2016 WACATE ALL RIGHTS RESERVED
  8. テスト設計技法は、 仕様ベース 構造ベース 経験ベース などによって使用する技法が分かれています テスト設計技法について COPYRIGHT (C) 2016 WACATE

    ALL RIGHTS RESERVED
  9. 仕様ベースのテスト設計技法の説明 今回の演習では、 「仕様ベースのテスト設計技法」を使用します JSTQB FoundationLevelでは以下が挙げられています ・同値分割法 ・境界値分析 ・デシジョンテーブル ・状態遷移 ・ユースケーステスト

    COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  10. 仕様ベースの技法とは ブラックボックステスト技法、とも言う システムの内部構造は見ず、要件や仕様書などのド キュメントを分析しテストケースを作成していきます 機能テスト、非機能テスト両方が含まれます COPYRIGHT (C) 2016 WACATE ALL

    RIGHTS RESERVED
  11. 同値分割法 【概要・やり方】 ①システムやソフトウェアの入力で「同じ処理が行 われる」グループに分け、そのグループ内は同じ ものとして扱う(同値クラス) ②同値クラスから代表のデータを選びテストする 有効な同値クラスだけでなく、無効な同値クラスも存 在する COPYRIGHT (C)

    2016 WACATE ALL RIGHTS RESERVED
  12. 同値分割法 例)映画館のチケット料金を 同値分割法でテスト 種類 金額 一般 ¥1,800 小人(3才~15才) ¥1,000 シニア(60才以上)

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

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

    ¥1,100 無効 有効 無効 システム的に 無効 業務的に 無効 小人料金 一般料金 シニア料金 システム的に 無効 -1才 1才 4才 25才 65才 203才 COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  15. 同値分割法 【メリット】 同じ機能でのテスト。 1つのテストで障害が見つかれば、残りのテストでも 見つかると予想できるテスト。 1つのテストで障害が見つからなければ、残りのテス トでも見つからないと予想できるテスト。 同値分割法を行って、テストケースをまとめることができる COPYRIGHT (C)

    2016 WACATE ALL RIGHTS RESERVED
  16. 同値分割法 【使いどころ】 入力値、出力値、内部変数、時間に依存する値、インターフェー スパラメータ 【いつ使うか】 あらゆるテスト(単体テスト~受け入れテストまで) COPYRIGHT (C) 2016 WACATE

    ALL RIGHTS RESERVED
  17. 同値分割法 【注意事項】 同値クラスを見誤る可能性。 プログラムの作り方で何か同値クラスを作っていないか。 If(age == 2) {check = false;}

    elseIf(age ==3){check =true;} elseIf(age ==4){check =true;} ・・・ COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  18. 境界値分析 【概要・やり方】 境界値分析は境界値に着目してテストする。 ①境界値を見つける。 (同値分割で見つけることが多い) ②境界値を分析してテストケース・データを洗いだす。 (多くは境界値と境界値に隣接する値) COPYRIGHT (C) 2016

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

    ¥1,100 COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  20. 境界値分析 種類 金額 一般 ¥1,800 小人(3才~15才) ¥1,000 シニア(60才以上) ¥1,100 有効

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

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

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

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

    一般料金 シニア料金 システ ム的に 無効 境界値分析 種類 金額 一般 ¥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
  25. 境界値分析 種類 金額 一般 ¥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
  26. 境界値分析 【メリット】 同値分割したグループの境界上の動作は、グループ内 部での(境界ではない)動作よりも正しくないことが多 く、境界には多くの欠陥が潜んでいる可能性が大きい。 境界値に着目したテストを行えば バグが効率的に見つけられる COPYRIGHT (C) 2016

    WACATE ALL RIGHTS RESERVED
  27. 境界値分析 【使いどころ】 入力値、出力値、内部変数、時間に依存する値、インター フェースパラメータ 【いつ使うか】 あらゆるテスト(単体テスト~受け入れテストまで) COPYRIGHT (C) 2016 WACATE

    ALL RIGHTS RESERVED
  28. 境界値分析 【注意事項】 ・境界値を見誤る可能性。 プログラムの作り方で何か別の同値クラス・境界値を 作っていないか。 ・基準(単位)に気をつける (例)映画館は10:00~22:00まで 10:00 22:00 9:59?

    22:01? COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  29. 同値分割法・境界値分析参考文献 リー・コープランド著、宗 雅彦訳 「はじめて学ぶソフトウェアのテスト技法」 日経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
  30. デシジョンテーブルテスト 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
  31. 例)映画館でのチケット料金 ※学生及びシニアは身分証明の提示が必要です デシジョンテーブルテスト 区分 料金 一般 ¥1,800 学生(高校生・大学生・専門学校生) ¥1,500 小人(3才~15才)

    ¥1,000 シニア(60才以上) ¥1,100 COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  32. デシジョンテーブルテスト デシジョンテーブルは、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
  33. デシジョンテーブルテスト ①条件記述部を書き出す 条件 学生 小人(3才~15才) シニア(60歳以上) 身分証明書あり 結果 考慮すべき条件を記述する部分 今回の例では、

    チケット代が変化する条件を ここに書き出す COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  34. デシジョンテーブルテスト ②動作記述部を書き出す 条件 学生 小人(3才~15才) シニア(60歳以上) 身分証明書あり 結果 ¥1,800 ¥1,500

    ¥1,100 ¥1,000 起こりうる動作や結果を記述する部分 今回の例では、 チケット代をここに書き出します COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  35. デシジョンテーブルテスト ③条件指定部を書き出す 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
  36. デシジョンテーブルテスト ④動作指定部を書く 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
  37. デシジョンテーブルテスト 条件を書き出していくと・・・ 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
  38. デシジョンテーブルテスト テストケースを圧縮する 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
  39. デシジョンテーブルテスト テストケースに書き出す ケース 条件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
  40. デシジョンテーブルテスト 使いどころ:条件の組み合わせによって、 結果(動作)が分かれているときに有効 条件や結果が複雑な場合に、より効果を発揮する ただし、条件が多すぎるとテストケース数が 爆発するので注意 条件の粒度を変えたりなど、工夫が必要 COPYRIGHT (C) 2016

    WACATE ALL RIGHTS RESERVED
  41. 状態遷移テスト 「状態遷移図」や「状態遷移表」をもとにテストケースを 作成する ・状態遷移図 システムがもつ複数の状態について、どのように遷移 するのかを図に表したもの 状態が変わるきっかけとなるイベントも書き込まれる ・状態遷移表 状態遷移図の内容を表に表したもの 無効な組み合わせを見つけやすい

    COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  42. 状態遷移テスト 例)自動券売機からのチケット購入 自動券売機からの映画館のチケット購入の流れ 1. 上映スケジュールから、映画を選択する 2. 座席を指定する 3. チケット代金を確認する 4.

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

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

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

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

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

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

    必要な 金額を 入金 入金エラー 座席を選択 戻るボタン キャンセル ボタン キャンセル ボタン 映画選択エラー (無効な選択) 映画を 選択 「はい」を選択 キャン セル確 認中 「いいえ」 を選択 「いいえ」 を選択 OKボタン ① ② COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  49. 状態遷移テスト 使いどころ: システムが複数の状態に変化する場合に有効 図や表に表すことで状態の遷移ルートに過不足がない ことを確認できる COPYRIGHT (C) 2016 WACATE ALL

    RIGHTS RESERVED
  50. ユースケーステスト 「ユースケーステスト」知っている人? COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED

  51. ユースケーステスト ユースケースをもとにしたテスト。 使いどころ:利用者(役割)・システムが複数の場面、 複雑な相互作用がある場面で効果的。 受け入れテスト、統合テストが主。 今日のお話: ◼ユースケース記述からテストまで、特徴、注意点 →説明します ユースケース図、他のモデルとの関係、… →説明しません

    V COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  52. ユースケーステスト ユースケーステストの話の前に… 「ユースケース」 ユーザ・他システムとの相互作用を、ユーザ視点で表現したモデル。 利用例やユーザが求める機能が書かれる。 ユースケーステストと密接に関係する「ユースケース記述」 相互作用の内容が、シナリオ(脚本)のように書かれる。 COPYRIGHT (C) 2016

    WACATE ALL RIGHTS RESERVED
  53. ユースケーステスト 顧客が映画館のチケットをオンラインで購入する 1 顧客 映画を選ぶ 2 システム 選択可能なチケット種類を表示する … 7

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

    ◦ →購入したチケット番号をメールで確認できることを確認する 1 顧客 映画を選ぶ 2 システム 選択可能なチケット種類を表示する … 7 顧客 購入ボタンを押す 8 システム 購入情報を登録し、決済システムに情報を送信する 9 システム チケット番号をメールで送信する COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  55. ユースケーステスト ユースケースをもとに確認するテスト。 ユースケースを元にユーザの視点に立って システムとの相互作用を実際に行ってテストする。 COPYRIGHT (C) 2016 WACATE ALL RIGHTS

    RESERVED
  56. ユースケーステスト 映画館のオンラインチケット購入システム チケットを買いたい 座席を予約したい 顧客 劇場の窓口の 受付担当者 システム管理者 … …

    STEP1:どんな利用例がある? 利用者や関係する外部システムは? COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  57. ユースケーステスト 顧客がチケットを購入する 1 顧客 映画を選ぶ 2 システム 選択可能なチケット種類を表示する … 7

    顧客 購入ボタンを押す 8 システム 購入情報を登録し、決済システムにデータを送信する 9 システム チケット番号をメールで送信する STEP2:どんなシナリオになる? COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  58. ユースケーステスト 顧客がチケットを購入する 購入できるチケットが ないときは? 決済に失敗する場合は? メールアドレス未登録なら? 入力された決済情報に 誤りがあったら? それぞれのシナリオも考える STEP3:他にフローはない?

    中断や、エラーになることは? … … COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  59. 顧客がチケットを購入する 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
  60. 顧客がチケットを購入する 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
  61. 顧客がチケットを購入する 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
  62. ユースケーステスト 事前条件はない? 事後条件は? 終わったときにどうなっている? 顧客がチケットを購入する 事前条件 チケット購入可能な映画があること 事後条件 成功時はチケット番号が採番され顧客に渡ること STEP2-3とあわせて:

    前提になる条件はない? 終了後はどうなっていればよい? COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  63. ユースケーステスト フローごとにテストをする。 顧客がチケットを購入する ✓ チケットが購入できる場合のテスト 映画を選ぶ→…→チケット番号をメールで確認する … ✓ 決済に失敗する場合のテスト …

    ✓ チケットは購入できるがメール送信されない場合のテスト STEP5:フローごとにテストをする。 COPYRIGHT (C) 2016 WACATE ALL RIGHTS RESERVED
  64. ユースケーステスト 実際の相互作用、 利用を想定して検証する ユーザ、他のシステムとの相互関係で 起こる問題を検出しやすい COPYRIGHT (C) 2016 WACATE ALL

    RIGHTS RESERVED
  65. ユースケーステスト 様々な相互作用やフローを洗い出す必要がある まずは基本的なフロー。エラーや遠回りするフローも忘れずに。意見を出しあう 増え過ぎたら、もっとシンプルにできるテストで代替できないか考える ユーザの視点、実際の使い方が中心であることをお忘れなく 粒度が難しい ◦:映画一覧ファイルをエクスポートする ☓:ファイルの書込み開始位置をずらす テストで使う具体的なデータ(入力値など)は別途考える必要あり COPYRIGHT

    (C) 2016 WACATE ALL RIGHTS RESERVED
  66. ユースケーステスト 参考文献 ◼ はじめて学ぶソフトウェアのテスト技法, リー・コープランド (著), 宗 雅彦 (翻訳), 日経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
  67. 今回取り上げたテスト設計技法 技法 メリット ポイント 使いどころ 同値分割法 テストケースをまとめる 同値クラスを見誤る可能性 あらゆる対象 境界値分析

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