Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

テスト技法おさらい(仮)

 テスト技法おさらい(仮)

発表の時に手元で見る用で

scarletplover

June 10, 2023
Tweet

More Decks by scarletplover

Other Decks in Technology

Transcript

  1. 開発プロセス テスト計画 テスト分析 テスト設計 テスト実装 テスト実⾏ テスト完了 モニタリングとコントロール テスト設計では、テスト条件をハ イレベルテストケース、ハイレベ

    ルテストケースのセット、および その他のテストウェアへ落とし込 む。。 イマココ テスト分析では、テスト可能な フィーチャーを識別し、テスト条 件を決めるためにテストベースを 分析する。 JSTQB Foundation シラバス Version 2018V3.1.J03 3
  2. テスト設計の前に・・・ § テスト設計 § 実際、どんな⾵にテストする? § 全数テストするのは⼤変 § 単なる勘と経験だけじゃ無理 §

    テスト設計技法を使おう! テスト設計では、テスト条件をハイレベルテストケース、ハイレベルテスト ケースのセット、およびその他のテストウェアへ落とし込む。。 JSTQB Foundation シラバス Version 2018V3.1.J03 4
  3. テスト技法(テスト設計技法)とは § テスト設計技法 テストケースを作成したり選択するための技法 戦略的かつ合理的に、効率よくテストを設計するために使うもの 仕様に基づい た技法 同値分割法 境界値分析 デシジョンテーブル

    原因結果グラフ法 状態遷移テスト ユースケーステスト ユーザーストーリーテスト ドメイン分析 ランダムテスト CFD技法 コードに基づ いた技法 制御フローテスト データフローテスト トランザクションフローテ スト 経験および直 感に基づいた 技法 アドホックテスト 探索的テスト フォールトに 基づいた技法 エラー推測テスト ミューテーションテスト リスクに基づ いた技法 テストマネジメントにおけ るリスクベースドテスト テスト設計におけるリスク ベースドテスト 利⽤に基づい た技法 運⽤プロファイルによるテ スト ローカライゼーションテス ト ユーザー環境シミュレー ションテスト 整合性確認テスト 組み合わせの 技法 直交表テスト ペアワイズテスト クラシフィケーションツ リー HAYST法 SQuBOK策定部会編「ソフトウェア品質知識体系ガイド(第3版)」⽇経BP社、2020年 5
  4. テスト技法(テスト設計技法)とは § 本セッションではテスト設計ワークの前段として、仕様に基づいた 技法、とくにJSTQBのFLでも扱いのある以下5つを説明します。 仕様に基づ いた技法 同値分割法 境界値分析 デシジョンテーブル 原因結果グラフ法

    状態遷移テスト ユースケーステスト ユーザーストーリーテスト ドメイン分析 ランダムテスト CFD技法 コードに基づ いた技法 制御フローテスト データフローテスト トランザクションフローテ スト 経験および直 感に基づいた 技法 アドホックテスト 探索的テスト フォールトに 基づいた技法 エラー推測テスト ミューテーションテスト リスクに基づ いた技法 テストマネジメントにおけ るリスクベースドテスト テスト設計におけるリスク ベースドテスト 利⽤に基づい た技法 運⽤プロファイルによるテ スト ローカライゼーションテス ト ユーザー環境シミュレー ションテスト 整合性確認テスト 組み合わせの 技法 直交表テスト ペアワイズテスト クラシフィケーションツ リー HAYST法 SQuBOK策定部会編「ソフトウェア品質知識体系ガイド(第3版)」⽇経BP社、2020年 6
  5. 同値分割法と境界値分析 § 同値分割法 買える (50cm以上790cm未満) 買えない (50cm未満) 買えない (790cm以上) 100cm

    20cm 1000cm 同じ振る舞いをする同値クラスを洗い出す 代表値を出す 布は10cm単位で指定して買うことができる。50cmから買うことが できる。790cm以上は買うことができない。 16
  6. 同値分割法と境界値分析 § 境界値分析 買える (50cm以上790cm未満) 買えない (50cm未満) 買えない (790cm以上) 40

    50 790 780 50cm 790cm 同じ振る舞いをする同値クラスを洗い出す 同値クラスの境界値を出す 布は10cm単位で指定して買うことができる。50cmから買うことが できる。790cm以上は買うことができない。 17
  7. 同値分割法と境界値分析 § そのほかの同値分割法・境界値分析 ⽇本 以外 3980円未満 販売 上限 3980円〜 0円

    配達地域 合計⾦額 それ 以外 北海道 沖縄 • 購⼊した商品の送料は⼀律、沖縄は1,400円、北海道は1,000円、 それ以外の地域は650円である。ただし、沖縄以外の地域につい てはお買い上げ合計⾦額3,980円以上で送料無料になる。 境界値はない同値クラス 書いてない 仕様 18
  8. 同値分割法と境界値分析 【同値分割法】 § メリット § 同じ振る舞いをするグループにつき1つの値等でテストを⾏う →テストケースを少なくまとめることができる。 § 使いどころ §

    ⼊⼒値、出⼒値、内部変数、時間に依存する値など § いつ使うか § あらゆるテスト(単体テスト〜受け⼊れテストまで) 19
  9. 同値分割法と境界値分析 【同値分割法】 § 注意 § 何をテストしたいかで、同じ項⽬でも同値クラスの分け⽅ が変わります(ZOOM IN・ZOOM OUT) ⽇本

    以外 配達地域 それ 以外 北海道 沖縄 ⽇本 以外 配達地域 ⽇本 OR 配達できるかできないか 送料 21
  10. 同値分割法と境界値分析 【境界値分析】 § メリット § 同値クラスの境界値では⼀般的に⽋陥が潜んでることが多い →効率的に⽋陥を⾒つけることができる。 § 使いどころ §

    ⼊⼒値、出⼒値、内部変数、時間に依存する値など § いつ使うか § あらゆるテスト(単体テスト〜受け⼊れテストまで) 22
  11. デシジョンテーブルテスト § デシジョンテーブルテストとは テスト対象の仕様をデシジョンテーブルと呼ばれる表にまと め、これに基づいてテストケースを作成する技法である。 複数因⼦からなる条件をデシジョンテーブルで整理して、そこ にフォーカスしたテストケースを作成する技法 因⼦ ⽔準 #1

    #2 #3 #4 #5 #6 配達地域 沖縄 Y N N Y N N 北海道 N Y N N Y N それ以外 N N Y N N Y 合計⾦額 3890円以上 Y Y Y N N N 3890円未満 N N N Y Y Y 結果 0円 ー X X ー ー ー 640円 ー ー ー ー ー X 1000円 ー ー ー ー X ー 1400円 X ー ー X ー ー *因⼦:テストの結果を変える要因となりうるもの SQuBOK策定部会編「ソフトウェア品質知識体系ガイド(第3版)」⽇経BP社、2020年 26
  12. デシジョンテーブルテスト § デシジョンテーブルとは こんな表です。 因⼦ ⽔準 #1 #2 #3 #4

    #5 #6 配達地域 沖縄 Y N N Y N N 北海道 N Y N N Y N それ以外 N N Y N N Y 合計⾦額 3890円以上 Y Y Y N N N 3890円未満 N N N Y Y Y 結果 0円 ー X X ー ー ー 640円 ー ー ー ー ー X 1000円 ー ー ー ー X ー 1400円 X ー ー X ー ー 27
  13. 因⼦ ⽔準 #1 #2 #3 #4 #5 #6 配達地域 沖縄

    Y N N Y N N 北海道 N Y N N Y N それ以外 N N Y N N Y 合計⾦額 3890円以上 Y Y Y N N N 3890円未満 N N N Y Y Y 結果 0円 ー X X ー ー ー 640円 ー ー ー ー ー X 1000円 ー ー ー ー X ー 1400円 X ー ー X ー ー デシジョンテーブルテスト § デシジョンテーブルとは こんな表です。 条件記述部 (条件の⼀覧) 動作記述部 (結果の⼀覧) 条件指定部 (条件組み合わせ) 動作指定部 (組み合わせに対する結果) 28
  14. デシジョンテーブルテスト § デシジョンテーブルテスト①条件記述部を書く ⽇本 以外 3980円 未満 販売 上限 3980円〜

    0円 配達地域 合計⾦額 それ 以外 北海道 沖縄 • 購⼊した商品の送料は⼀律、沖縄は1,400円、北海道は1,000円、 それ以外の地域は650円である。ただし、沖縄以外の地域につい てはお買い上げ合計⾦額3,980円以上で送料無料になる。 29
  15. デシジョンテーブルテスト § デシジョンテーブルテスト①条件記述部を書く § 今回はあくまで送料に関わる条件のテストをしたいので、送料 を出すのに考慮すべき有効なクラスを条件記述部に書く。 それ以外 北海道 沖縄 3980円未満

    3980円〜 配達地域 合計⾦額 #2 #1 ⽔準 因⼦ N Y 沖縄 配達地域 Y N 北海道 N N それ以外 Y Y 3890円以上 合計⾦額 N N 3890円未満 結果 X ー 0円 *因⼦:テストの結果を変える要因となりうるもの ⽔準:因⼦がとりうる値 30
  16. § デシジョンテーブルテスト③条件指定部を書く § それぞれの因⼦の条件の組み合わせを条件指定部に記載 ⼀般的には取りうる⽔準を全て条件記述部に書いて、Y,N (Yes,No)を条件指定部に書いた⽅が抜け漏れは⾒つけやすい。 #6 #5 #4 #3

    #2 #1 ⽔準 因⼦ N N Y N N Y 沖縄 配達地域 N Y N N Y N 北海道 Y N N Y N N それ以外 N N N Y Y Y 3890円以上 合計⾦額 Y Y Y N N N 3890円未満 結果 ー ー ー X X ー 0円 デシジョンテーブルテスト 32
  17. デシジョンテーブルテスト § デシジョンテーブルテスト④動作指定部を書く § 条件指定部の条件から想定 される結果を記⼊。 (ここでは当てはまる ものにXを⼊⼒) # #3

    #2 #1 ⽔準 因⼦ Y N N Y 沖縄 配達地域 N N Y N 北海道 N Y N N それ以外 N Y Y Y 3890円以上 合計⾦額 Y N N N 3890円未満 結果 ー X X ー 0円 ー ー ー ー 640円 ー ー ー ー 1000円 X ー ー X 1400円 33
  18. デシジョンテーブルテスト § デシジョンテーブルテスト④条件指定部を書く デシジョンテーブルの出来上がり! 因⼦ ⽔準 #1 #2 #3 #4

    #5 #6 配達地域 沖縄 Y N N Y N N 北海道 N Y N N Y N それ以外 N N Y N N Y 合計⾦額 3890円以上 Y Y Y N N N 3890円未満 N N N Y Y Y 結果 0円 ー X X ー ー ー 640円 ー ー ー ー ー X 1000円 ー ー ー ー X ー 1400円 X ー ー X ー ー 34
  19. デシジョンテーブルテスト § デシジョンテーブルテスト⑤テストケースにする ケース 配達地域 合計⾦額 期待される結果 (送料) 1 沖縄

    3890円以上 1400円 2 北海道 3890円以上 0円 3 それ以外 3890円以上 0円 4 沖縄 3890円未満 1400円 5 北海道 3890円未満 1000円 6 それ以外 3890円未満 650円 35
  20. 状態遷移テスト 以下の図表で、システムのイベントに対する状態の変 化を整理し、状態遷移にフォーカスしたテストを⾏う。 § 状態遷移図 状 態 イベント 停⽌ 中

    起動 中 ONボタン押下 OFFボタン押下 状態/イベント ONボタン押下 OFFボタン押下 停⽌中 起動中 N/A 起動中 N/A 停⽌中 § 状態遷移表 イベント 状態 41
  21. § 布オンラインショップサイトの購⼊⼿続は以下の通り。 この購⼊状態のテストを⾏いたい。 § 商品⼀覧画⾯で購⼊する布と数量(⻑さ)を選択。 § 買い物かご画⾯で選択した商品と数量(⻑さ)を確認して購⼊⼿続き ボタン押下。 § 届け先、お届け⽇時、⽀払いカード情報を⼊⼒して⽀払いを実⾏し、クレジットカード

    の承認を待つ(クレジットカード会社の仕様によってはクレジットカード会社の認証画 ⾯が現れることがある)。 § クレジットカード会社で⽀払いが承認された場合は購⼊完了画⾯を表⽰。 § クレジットカード会社より⽀払が却下された場合、エラー画⾯を表⽰。 各画⾯の戻るボタンを押下した場合、前の画⾯に戻ることができる。 購⼊完了画⾯・エラー画⾯でOKボタンを押下すると、商品⼀覧画⾯に戻る。 状態遷移テスト 42
  22. 状態遷移テスト § 状態遷移テスト①状態を⾒つける § 商品⼀覧画⾯で購⼊する布と数量(⻑さ)を選択。 § 買い物かご画⾯で選択した商品と数量(⻑さ)を確認して購⼊⼿続き ボタン押下。 § 届け先、お届け⽇時、⽀払いカード情報を⼊⼒して⽀払いを実⾏し、ク

    レジットカードの承認を待つ(クレジットカード会社の仕様によっては クレジットカード会社の認証画⾯が現れることがある)。 § クレジットカード会社で⽀払いが承認された場合は購⼊完了画⾯を表⽰。 § クレジットカード会社より⽀払が却下された場合、エラー画⾯を表⽰。 各画⾯の戻るボタンを押下した場合、前の画⾯に戻ることができる。 購⼊完了画⾯・エラー画⾯でOKボタンを押下すると、商品⼀覧画⾯に戻る。 エラー 商品選択中 ⽀払情報⼊⼒中 ⽀払承認待ち 購⼊完了 43
  23. § 商品⼀覧画⾯で購⼊する布と数量(⻑さ)を選択。 § 買い物かご画⾯で選択した商品と数量(⻑さ)を確認して購⼊⼿続き ボタン押下。 § 届け先、お届け⽇時、⽀払いカード情報を⼊⼒して⽀払いを実⾏し、ク レジットカードの承認を待つ(クレジットカード会社の仕様によっては クレジットカード会社の認証画⾯が現れることがある)。 §

    クレジットカード会社で⽀払いが承認された場合は購⼊完了画⾯を表⽰。 § クレジットカード会社より⽀払が却下された場合、エラー画⾯を表⽰。 各画⾯の戻るボタンを押下した場合、前の画⾯に戻ることができる。 購⼊完了画⾯・エラー画⾯でOKボタンを押下すると、商品⼀覧画⾯に戻る。 状態遷移テスト § 状態遷移テスト②イベントを⾒つける 44
  24. 状態遷移テスト § 状態遷移テスト③状態遷移図・状態遷移表を作る 商品選 択中 ⽀払情 報⼊⼒ 中 エラー ⽀払承

    認待ち 購⼊完 了 OK押下 OK押下 戻る押下 戻る押下 購⼊⼿続きボタン押下 ⽀払実⾏ ⽀払却下 ⽀払承認 あれ?あってるかな? 45
  25. 状態遷移テスト § 状態遷移テスト③状態遷移図・状態遷移表を作る 状態/イベント 購⼊⼿続きボタ ン押下 ⽀払実⾏ 戻る ⽀払承認 ⽀払却下

    OKを押下 商品選択中 ⽀払情報⼊⼒中 N/A ????? N/A N/A N/A ⽀払情報⼊⼒中 N/A ⽀払承認待ち 商品選択中 N/A N/A N/A ⽀払承認待ち N/A N/A ⽀払情報⼊⼒中 購⼊完了 エラー N/A 購⼊完了 N/A N/A ????? N/A N/A 商品選択中 エラー N/A N/A ????? N/A N/A 商品選択中 46
  26. 状態遷移テスト § 状態遷移テスト③状態遷移図・状態遷移表を作る 状態/イベント 購⼊⼿続きボタ ン押下 ⽀払実⾏ 戻る ⽀払承認 ⽀払却下

    OKを押下 商品選択中 ⽀払情報⼊⼒中 N/A ????? N/A N/A N/A ⽀払情報⼊⼒中 N/A ⽀払承認待ち 商品選択中 N/A N/A N/A ⽀払承認待ち N/A N/A ⽀払情報⼊⼒中 購⼊完了 エラー N/A 購⼊完了 N/A N/A ????? N/A N/A 商品選択中 エラー N/A N/A ????? N/A N/A 商品選択中 戻っていいの? 抜けてた・・・ 47
  27. 状態遷移テスト § 状態遷移テスト③状態遷移図・状態遷移表を作る 状態/イベント 購⼊⼿続きボタ ン押下 ⽀払実⾏ 戻る ⽀払承認 ⽀払却下

    OKを押下 商品選択中 ⽀払情報⼊⼒中 N/A 商品選択中 N/A N/A N/A ⽀払情報⼊⼒中 N/A ⽀払承認待ち 商品選択中 N/A N/A N/A ⽀払承認待ち N/A N/A ⽀払情報⼊⼒中 購⼊完了 エラー N/A 購⼊完了 N/A N/A 購⼊完了 N/A N/A 商品選択中 エラー N/A N/A エラー N/A N/A 商品選択中 48
  28. 状態遷移テスト § 状態遷移テスト③状態遷移図・状態遷移表を作る 商品選 択中 ⽀払情 報⼊⼒ 中 エラー ⽀払承

    認待ち 購⼊完 了 OK押下 OK押下 戻る押下 戻る押下 購⼊⼿続きボタン押下 ⽀払実⾏ ⽀払却下 ⽀払承認 戻る押下 戻る押下 戻る押下 49
  29. 状態遷移テスト § 状態遷移テスト④テストケースを作る(⼿作業) 経路 番号 状態 遷移 状態 遷移 状態

    0 商品選択中 戻る押下 商品選択中 戻る押下 商品選択中 1 商品選択中 購⼊⼿続きボ タン押下 ⽀払情報⼊⼒ 中 戻る押下 商品選択中 2 商品選択中 戻る押下 商品選択中 購⼊⼿続きボ タン押下 ⽀払情報⼊⼒ 中 3 商品選択中 購⼊⼿続きボ タン押下 ⽀払情報⼊⼒ 中 ⽀払実⾏ ⽀払承認待ち 4 ⽀払情報⼊⼒ 中 戻る押下 商品選択中 戻る押下 商品選択中 5 ⽀払情報⼊⼒ 中 戻る押下 商品選択中 購⼊⼿続きボ タン押下 ⽀払情報⼊⼒ 中 6 ⽀払情報⼊⼒ 中 ⽀払実⾏ ⽀払承認待ち 戻る押下 ⽀払情報⼊⼒ 中 7 ⽀払情報⼊⼒ 中 ⽀払実⾏ ⽀払承認待ち ⽀払承認 購⼊完了 8 ⽀払情報⼊⼒ 中 ⽀払実⾏ ⽀払承認待ち ⽀払却下 エラー 9 ⽀払承認待ち 戻る押下 ⽀払情報⼊⼒ 中 戻る押下 商品選択中 10 ⽀払承認待ち ⽀払承認 購⼊完了 OKを押下 商品選択中 11 ⽀払承認待ち ⽀払却下 エラー OKを押下 商品選択中 経路 番号 状態 遷移 状態 遷移 状態 12 ⽀払承認待ち 戻る押下 ⽀払情報⼊⼒ 中 ⽀払実⾏ ⽀払承認待ち 13 ⽀払承認待ち ⽀払承認 購⼊完了 戻る押下 購⼊完了 14 ⽀払承認待ち ⽀払却下 エラー 戻る押下 エラー 15 購⼊完了 OKを押下 商品選択中 戻る押下 商品選択中 16 購⼊完了 戻る押下 購⼊完了 OKを押下 商品選択中 17 購⼊完了 OKを押下 商品選択中 購⼊⼿続きボ タン押下 ⽀払情報⼊⼒ 中 18 購⼊完了 戻る押下 購⼊完了 戻る押下 購⼊完了 19 エラー OKを押下 商品選択中 戻る押下 商品選択中 20 エラー 戻る押下 エラー OKを押下 商品選択中 21 エラー OKを押下 商品選択中 購⼊⼿続きボ タン押下 ⽀払情報⼊⼒ 中 22 エラー 戻る押下 エラー 戻る押下 エラー 1スイッチ カバレッジ 50
  30. 状態遷移テスト § Nスイッチカバレッジは網羅の遷移の数 0スイッチカバレッジ (スタート状態→ゴール状態) Nスイッチカバレッジ(ここでは1スイッチ) (スタート状態→別のN個の状態を挟む→ゴール状態) 停⽌ 中 起動

    中 ONボタン押下 OFFボタン押下 停⽌ 中 起動 中 ONボタン押下 OFFボタン押下 遷移前状態 イベント 期待結果 停⽌中 ON押下 起動中 起動中 OFF押下 停⽌中 遷移前状態 イベント 状態1 イベント 期待結果 停⽌中 ON押下 起動中 OFF押下 停⽌中 起動中 OFF押下 停⽌中 ON押下 起動中 51
  31. 状態遷移テスト § Nスイッチカバレッジを図から出すのは⼤変! 商品選 択中 ⽀払情 報⼊⼒ 中 エラー ⽀払承

    認待ち 購⼊完 了 OK押下 OK押下 戻る押下 戻る押下 購⼊⼿続きボタン押下 ⽀払実⾏ ⽀払却下 ⽀払承認 戻る押下 戻る押下 戻る押下 52
  32. 状態遷移テスト § 状態遷移テスト④テストケースを作る(⼿作業) 商品選択中 ⽀払情報⼊⼒中 ⽀払承認待ち 購⼊完了 エラー OKを押下 ⽀払却下

    ⽀払承認 戻る ⽀払実⾏ 購⼊⼿続きボタ ン押下 状態/イベント N/A N/A N/A 商品選択中 N/A ⽀払情報⼊⼒中 商品選択中 N/A N/A N/A 商品選択中 ⽀払承認待ち N/A ⽀払情報⼊⼒中 N/A エラー 購⼊完了 ⽀払情報⼊⼒中 N/A N/A ⽀払承認待ち 商品選択中 ⽀払情報⼊⼒中 購⼊⼿続きボタン押下 戻る ⅱ.状態遷移表を⾒て 遷移先の状態をぶら下げる (⽊構造にする) 54
  33. OKを押下 ⽀払却下 ⽀払承認 戻る ⽀払実⾏ 購⼊⼿続きボタ ン押下 状態/イベント N/A N/A

    N/A 商品選択中 N/A ⽀払情報⼊⼒中 商品選択中 N/A N/A N/A 商品選択中 ⽀払承認待ち N/A ⽀払情報⼊⼒中 N/A エラー 購⼊完了 ⽀払情報⼊⼒中 N/A N/A ⽀払承認待ち 状態遷移テスト § 状態遷移テスト④テストケースを作る(⼿作業) 商品選択中 ⽀払情報⼊⼒中 ⽀払承認待ち 購⼊完了 エラー 商品選択中 ⽀払情報⼊⼒中 購⼊⼿続きボタン押下 戻る ⽀払承認待ち 商品選択中 商品選択中 ⽀払情報⼊⼒中 戻る 戻る 購⼊⼿続きボタン押下 ⽀払実⾏ ⅲ.やりたい網羅基準(1スイッチ)に なるまでⅱを繰り返す 55
  34. 状態遷移テスト § 状態遷移テスト④テストケースを作る(⼿作業) 経路 番号 状態 遷移 状態 遷移 状態

    0 商品選択中 戻る押下 商品選択中 戻る押下 商品選択中 1 商品選択中 購⼊⼿続きボ タン押下 ⽀払情報⼊⼒ 中 戻る押下 商品選択中 2 商品選択中 戻る押下 商品選択中 購⼊⼿続きボ タン押下 ⽀払情報⼊⼒ 中 3 商品選択中 購⼊⼿続きボ タン押下 ⽀払情報⼊⼒ 中 ⽀払実⾏ ⽀払承認待ち 4 ⽀払情報⼊⼒ 中 戻る押下 商品選択中 戻る押下 商品選択中 5 ⽀払情報⼊⼒ 中 戻る押下 商品選択中 購⼊⼿続きボ タン押下 ⽀払情報⼊⼒ 中 6 ⽀払情報⼊⼒ 中 ⽀払実⾏ ⽀払承認待ち 戻る押下 ⽀払情報⼊⼒ 中 7 ⽀払情報⼊⼒ 中 ⽀払実⾏ ⽀払承認待ち ⽀払承認 購⼊完了 8 ⽀払情報⼊⼒ 中 ⽀払実⾏ ⽀払承認待ち ⽀払却下 エラー 9 ⽀払承認待ち 戻る押下 ⽀払情報⼊⼒ 中 戻る押下 商品選択中 10 ⽀払承認待ち ⽀払承認 購⼊完了 OKを押下 商品選択中 11 ⽀払承認待ち ⽀払却下 エラー OKを押下 商品選択中 経路 番号 状態 遷移 状態 遷移 状態 12 ⽀払承認待ち 戻る押下 ⽀払情報⼊⼒ 中 ⽀払実⾏ ⽀払承認待ち 13 ⽀払承認待ち ⽀払承認 購⼊完了 戻る押下 購⼊完了 14 ⽀払承認待ち ⽀払却下 エラー 戻る押下 エラー 15 購⼊完了 OKを押下 商品選択中 戻る押下 商品選択中 16 購⼊完了 戻る押下 購⼊完了 OKを押下 商品選択中 17 購⼊完了 OKを押下 商品選択中 購⼊⼿続きボ タン押下 ⽀払情報⼊⼒ 中 18 購⼊完了 戻る押下 購⼊完了 戻る押下 購⼊完了 19 エラー OKを押下 商品選択中 戻る押下 商品選択中 20 エラー 戻る押下 エラー OKを押下 商品選択中 21 エラー OKを押下 商品選択中 購⼊⼿続きボ タン押下 ⽀払情報⼊⼒ 中 22 エラー 戻る押下 エラー 戻る押下 エラー 1スイッチ カバレッジ 56
  35. 状態遷移テスト § 注意 § どこまでも複雑になるのでテストしたいのかは考えること (Nスイッチカバレッジ) § なんの状態をテストしたいか特定してテストする (購⼊状態がテストしたいのか? 画⾯遷移がテストしたいのか?)

    § 商品⼀覧画⾯で購⼊する布と数量(⻑さ)を選択。 § 買い物かご画⾯で選択した商品と数量(⻑さ)を確認して購⼊⼿続き ボタン押下。 商品選択中 58
  36. ユースケーステスト § アクター(ユーザーや外部システム)とテスト対象システ ムとの相互作⽤を記述したユースケースに基づいてテスト ケースを作成する技法である。 § ユースケース アクターが、ある特定の⽬的を達成するためにシステムを どう使うかを⽰すシナリオ(脚本) §

    どのようなアクターが /どのような場⾯において /どのような⽬的 を達成するために /どのような活動を⾏うのか SQuBOK策定部会編「ソフトウェア品質知識体系ガイド(第3版)」⽇経BP社、2020年 61
  37. ユースケーステスト § ユースケース ユースケースは通常、ユースケース図とユースケー ス記述によって成り⽴つ。 商品を選ぶ 商品を買う 注⽂状況を 確認する 注⽂履歴を

    確認する 顧客 各カード会社⽀払システム 布ショッピングサイト ユースケース図 ユースケース記述 項⽬ 内容 ユースケース 商品を買う 概要 顧客は選んだ商品について購⼊する。 アクター 顧客 各カード会社⽀払システム 事前条件 顧客はオンラインショッピングサイトにログインしている 顧客は商品を既に選んでいる 事後条件 商品の購⼊が完了する 基本フロー 1.顧客:買い物かご画⾯で購⼊する商品を確認して購⼊⼿続ボタン押下 2.システム:商品の在庫を確認し、⽀払情報⼊⼒画⾯を表⽰ 3.顧客:届出情報・⽀払情報を⼊⼒して⽀払を実⾏する 4.システム:届出情報・⽀払情報を確認し、各カード会社に⽀払情報を送信 5.各カード会社⽀払システム:⽀払を承認する 6.システム:各カード会社が⽀払を承認したのを確認し、購⼊完了画⾯を表⽰ 代替フロー 1a.購⼊する商品が間違っていた場合 1a-1.顧客:商品を選び直す 例外フロー 2a.商品が売り切れていたら 2a-1.エラー画⾯を表⽰ 4a.⽀払情報の⼊⼒が間違っている場合 4a-1.システム:エラー画⾯を表⽰ 5a.各カード会社が⽀払を却下 5a-1.システム:各カード会社が⽀払を却下したのを確認し、エラー画⾯を表⽰ 項⽬ 内容 ユースケース 商品を買う 概要 顧客は選んだ商品について購⼊する。 アクター 顧客 各カード会社⽀払システム 事前条件 顧客はオンラインショッピングサイトにログインしている 顧客は商品を既に選んでいる 事後条件 商品の購⼊が完了する 基本フロー 1.顧客:買い物かご画⾯で購⼊する商品を確認して購⼊⼿続ボタン押下 2.システム:商品の在庫を確認し、⽀払情報⼊⼒画⾯を表⽰ 3.顧客:届出情報・⽀払情報を⼊⼒して⽀払を実⾏する 4.システム:届出情報・⽀払情報を確認し、各カード会社に⽀払情報を送信 5.各カード会社⽀払システム:⽀払を承認する 6.システム:各カード会社が⽀払を承認したのを確認し、購⼊完了画⾯を表⽰ 代替フロー 1a.購⼊する商品が間違っていた場合 1a-1.顧客:商品を選び直す 例外フロー 2a.商品が売り切れていたら 2a-1.エラー画⾯を表⽰ 4a.⽀払情報の⼊⼒が間違っている場合 4a-1.システム:エラー画⾯を表⽰ 5a.各カード会社が⽀払を却下 5a-1.システム:各カード会社が⽀払を却下したのを確認し、エラー画⾯を表⽰ 62
  38. § 布オンラインショップサイトの購⼊⼿続は以下の通り。 § 商品⼀覧画⾯で購⼊する布と数量(⻑さ)を選択。 § 買い物かご画⾯で選択した商品と数量(⻑さ)を確認して購⼊⼿続き ボタン押下。 § 届け先、お届け⽇時、⽀払いカード情報を⼊⼒して⽀払いを実⾏し、クレジッ トカードの承認を待つ(クレジットカード会社の仕様によってはクレジット

    カード会社の認証画⾯が現れることがある)。 § クレジットカード会社で⽀払いが承認された場合は購⼊完了画⾯を表⽰。 § クレジットカード会社より⽀払が却下された場合、エラー画⾯を表⽰。 各画⾯の戻るボタンを押下した場合、前の画⾯に戻ることができる。 購⼊完了画⾯・エラー画⾯でOKボタンを押下すると、商品⼀覧画⾯に戻る。 ユースケーステスト 63
  39. ユースケーステスト § ユースケース記述 § アクターが、ある特定の ⽬的を達成するためにシ ステムをどう使うかを⽰ すシナリオ(脚本)をテ キストにしたもの §

    ユースケース図のユース ケース1つにつき1表が 基本 内容 項⽬ 商品を買う ユースケース 顧客は選んだ商品について購⼊する。 概要 顧客 各カード会社⽀払システム アクター 顧客はオンラインショッピングサイトにログインしている 顧客は商品を既に選んでいる 事前条件 商品の購⼊が完了する 事後条件 1.顧客:買い物かご画⾯で購⼊する商品を確認して購⼊⼿続ボタン押下 2.システム:商品の在庫を確認し、⽀払情報⼊⼒画⾯を表⽰ 3.顧客:届出情報・⽀払情報を⼊⼒して⽀払を実⾏する 4.システム:届出情報・⽀払情報を確認し、各カード会社に⽀払情報を送信 5.各カード会社⽀払システム:⽀払を承認する 6.システム:各カード会社が⽀払を承認したのを確認し、購⼊完了画⾯を表⽰ 基本フロー 1a.購⼊する商品が間違っていた場合 1a-1.顧客:商品を選び直す 代替フロー 2a.商品が売り切れていたら 2a-1.エラー画⾯を表⽰ 4a.⽀払情報の⼊⼒が間違っている場合 4a-1.システム:エラー画⾯を表⽰ 5a.各カード会社が⽀払を却下 例外フロー 65
  40. ユースケーステスト § ユースケース記述 § アクターが、ある特定の ⽬的を達成するためにシ ステムをどう使うかを⽰ すシナリオ(脚本)をテ キストにしたもの §

    ユースケース図のユース ケース1つにつき1表が 基本 内容 項⽬ 商品を買う ユースケース 顧客は選んだ商品について購⼊する。 概要 顧客 各カード会社⽀払システム アクター 顧客はオンラインショッピングサイトにログインしている 顧客は商品を既に選んでいる 事前条件 商品の購⼊が完了する 事後条件 1.顧客:買い物かご画⾯で購⼊する商品を確認して購⼊⼿続ボタン押下 2.システム:商品の在庫を確認し、⽀払情報⼊⼒画⾯を表⽰ 3.顧客:届出情報・⽀払情報を⼊⼒して⽀払を実⾏する 4.システム:届出情報・⽀払情報を確認し、各カード会社に⽀払情報を送信 5.各カード会社⽀払システム:⽀払を承認する 6.システム:各カード会社が⽀払を承認したのを確認し、購⼊完了画⾯を表⽰ 基本フロー 1a.購⼊する商品が間違っていた場合 1a-1.顧客:商品を選び直す 代替フロー 2a.商品が売り切れていたら 2a-1.エラー画⾯を表⽰ 4a.⽀払情報の⼊⼒が間違っている場合 4a-1.システム:エラー画⾯を表⽰ 5a.各カード会社が⽀払を却下 例外フロー 66
  41. ユースケーステスト § ユースケース記述/各フロー 基本フロー 1.顧客:買い物かご画⾯で購⼊する商品を確認して購⼊⼿続ボタン押下 2.システム:商品の在庫を確認し、⽀払情報⼊⼒画⾯を表⽰ 3.顧客:届出情報・⽀払情報を⼊⼒して⽀払を実⾏する 4.システム:届出情報・⽀払情報を確認し、各カード会社に⽀払情報を送信 5.各カード会社⽀払システム:⽀払を承認する 6.システム:各カード会社が⽀払を承認したのを確認し、購⼊完了画⾯を表⽰

    代替フロー 1a.購⼊する商品が間違っていた場合 1a-1.顧客:商品を選び直す 例外フロー 2a.商品が売り切れていたら 2a-1.システム:エラー画⾯を表⽰ 4a.⽀払情報の⼊⼒が間違っている場合 4a-1.システム:エラー画⾯を表⽰ 5a.各カード会社が⽀払を却下 5a-1.システム:各カード会社が⽀払を却下したのを確認し、エラー画⾯を表⽰ アクター(ユーザーや外部システム)とテ スト対象システムとの相互作⽤を記述 主成功シナリオ 例外、エラーの シナリオ 頻度の低い シナリオ 67
  42. ユースケーステスト § ユースケース記述/各フロー 基本 フロー 1.顧客:買い物かご画⾯で購⼊する商品を確認して購⼊⼿続ボタン押下 2.システム:商品の在庫を確認し、⽀払情報⼊⼒画⾯を表⽰ 3.顧客:届出情報・⽀払情報を⼊⼒して⽀払を実⾏する 4.システム:届出情報・⽀払情報を確認し、各カード会社に⽀払情報を送信 5.各カード会社⽀払システム:⽀払を承認する

    6.システム:各カード会社が⽀払を承認したのを確認し、購⼊完了画⾯を表⽰ 代替 フロー 1a.購⼊する商品が間違っていた場合 1a-1.顧客:商品を選び直す 例外 フロー 2a.商品が売り切れていたら 2a-1.システム:エラー画⾯を表⽰ 4a.⽀払情報の⼊⼒が間違っている場合 4a-1.システム:エラー画⾯を表⽰ 5a.各カード会社が⽀払を却下 5a-1.システム:各カード会社が⽀払を却下したのを確認し、エラー画⾯を表⽰ 1 2 3 4 5 6 1a 4a 2a 5a ①商品購⼊完了 68
  43. ユースケーステスト § ユースケース記述/各フロー 基本 フロー 1.顧客:買い物かご画⾯で購⼊する商品を確認して購⼊⼿続ボタン押下 2.システム:商品の在庫を確認し、⽀払情報⼊⼒画⾯を表⽰ 3.顧客:届出情報・⽀払情報を⼊⼒して⽀払を実⾏する 4.システム:届出情報・⽀払情報を確認し、各カード会社に⽀払情報を送信 5.各カード会社⽀払システム:⽀払を承認する

    6.システム:各カード会社が⽀払を承認したのを確認し、購⼊完了画⾯を表⽰ 代替 フロー 1a.購⼊する商品が間違っていた場合 1a-1.顧客:商品を選び直す 例外 フロー 2a.商品が売り切れていたら 2a-1.システム:エラー画⾯を表⽰ 4a.⽀払情報の⼊⼒が間違っている場合 4a-1.システム:エラー画⾯を表⽰ 5a.各カード会社が⽀払を却下 5a-1.システム:各カード会社が⽀払を却下したのを確認し、エラー画⾯を表⽰ 1 2 3 4 5 6 1a 4a 2a 5a ②商品選び直し 69
  44. ユースケーステスト § ユースケース記述/各フロー 基本 フロー 1.顧客:買い物かご画⾯で購⼊する商品を確認して購⼊⼿続ボタン押下 2.システム:商品の在庫を確認し、⽀払情報⼊⼒画⾯を表⽰ 3.顧客:届出情報・⽀払情報を⼊⼒して⽀払を実⾏する 4.システム:届出情報・⽀払情報を確認し、各カード会社に⽀払情報を送信 5.各カード会社⽀払システム:⽀払を承認する

    6.システム:各カード会社が⽀払を承認したのを確認し、購⼊完了画⾯を表⽰ 代替 フロー 1a.購⼊する商品が間違っていた場合 1a-1.顧客:商品を選び直す 例外 フロー 2a.商品が売り切れていたら 2a-1.システム:エラー画⾯を表⽰ 4a.⽀払情報の⼊⼒が間違っている場合 4a-1.システム:エラー画⾯を表⽰ 5a.各カード会社が⽀払を却下 5a-1.システム:各カード会社が⽀払を却下したのを確認し、エラー画⾯を表⽰ 1 2 3 4 5 6 1a 4a 2a 5a ③商品売り切れ 70
  45. ユースケーステスト § ユースケース記述/各フロー 基本 フロー 1.顧客:買い物かご画⾯で購⼊する商品を確認して購⼊⼿続ボタン押下 2.システム:商品の在庫を確認し、⽀払情報⼊⼒画⾯を表⽰ 3.顧客:届出情報・⽀払情報を⼊⼒して⽀払を実⾏する 4.システム:届出情報・⽀払情報を確認し、各カード会社に⽀払情報を送信 5.各カード会社⽀払システム:⽀払を承認する

    6.システム:各カード会社が⽀払を承認したのを確認し、購⼊完了画⾯を表⽰ 代替 フロー 1a.購⼊する商品が間違っていた場合 1a-1.顧客:商品を選び直す 例外 フロー 2a.商品が売り切れていたら 2a-1.システム:エラー画⾯を表⽰ 4a.⽀払情報の⼊⼒が間違っている場合 4a-1.システム:エラー画⾯を表⽰ 5a.各カード会社が⽀払を却下 5a-1.システム:各カード会社が⽀払を却下したのを確認し、エラー画⾯を表⽰ 1 2 3 4 5 6 1a 4a 2a 5a ④⽀払情報NG 71
  46. ユースケーステスト § ユースケース記述/各フロー 基本 フロー 1.顧客:買い物かご画⾯で購⼊する商品を確認して購⼊⼿続ボタン押下 2.システム:商品の在庫を確認し、⽀払情報⼊⼒画⾯を表⽰ 3.顧客:届出情報・⽀払情報を⼊⼒して⽀払を実⾏する 4.システム:届出情報・⽀払情報を確認し、各カード会社に⽀払情報を送信 5.各カード会社⽀払システム:⽀払を承認する

    6.システム:各カード会社が⽀払を承認したのを確認し、購⼊完了画⾯を表⽰ 代替 フロー 1a.購⼊する商品が間違っていた場合 1a-1.顧客:商品を選び直す 例外 フロー 2a.商品が売り切れていたら 2a-1.システム:エラー画⾯を表⽰ 4a.⽀払情報の⼊⼒が間違っている場合 4a-1.システム:エラー画⾯を表⽰ 5a.各カード会社が⽀払を却下 5a-1.システム:各カード会社が⽀払を却下したのを確認し、エラー画⾯を表⽰ 1 2 3 4 5 6 1a 4a 2a 5a ⑤⽀払却下 72
  47. テスト技法について テスト技法 メリット 使いどころ ポイント・注意点 単項⽬から 使える 同値分割法 テストケースを少なく まとめることができる。

    ⼊⼒値、出⼒値、内部変数、 時間に依存する値など 同値クラスを⾒極めること 境界値分析 効率的に⽋陥を⾒つけ ることができる。 ⼊⼒値、出⼒値、内部変数、 時間に依存する値など 同値クラスを⾒極めること 基準(単位)に気をつける 条件・状態の 組み合わせ デシジョンテー ブルテスト 複数条件による組み合 わせの結果を整理して テストできる。 複数の条件の組み合わせに よって結果が分かれる場合 条件の粒度を定めてもれなくだ す 状態遷移テスト システムの状態の変化 を整理してテストでき る。 システムの状態が複数の状 態に変化する場合 何の状態をテストしたいか曖昧 にしない 機能やシステ ム全体 ユースケーステ スト ユーザーや外部システ ムの視点から仕様を整 理してテストできる。 ユーザ・外部システムが複 数、相互作⽤が複雑な場合 1機能を⼀気通貫でテスト したい ユーザーや外部システムの視点 からテストをする 78
  48. 最後に § テスト設計で「もれなく」なんていう前に。。 § あなたがテストしたいのは「何」か決めましょう § どの項⽬?どの条件分岐?・どういう状態?・ユースケース? § テストケースの前にまず仕様を整理しましょう §

    仕様に抜けはありませんか・・・? § どの程度まで網羅するのかを決めましょう § 0スイッチ、1スイッチ・・・ § どの粒度でテストする?(同値クラスの分け⽅など) 79
  49. テスト技法について § 参考⽂献 § リー・コープランド著、宗 雅彦訳「はじめて学ぶソフトウェアのテスト技法」 ⽇経BP社、2005年 § SQuBOK策定部会編「ソフトウェア品質知識体系ガイド(第3版)」⽇経BP社、2020年 §

    児⽟ 公信「UMLモデリングの本質 第2版」翔泳社、2016年 § 梅津正洋他「ソフトウェアテスト技法練習帳 ~知識を経験に変える40問」技術評論社、2020年 § NPO法⼈ASTER「ASTERセミナー標準テキスト」 https://www.aster.or.jp/business/seminar_text.html § テスト技術者資格制度 シラバス https://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018V31.J03.pdf 80