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

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

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

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

scarletplover

June 10, 2023
Tweet

More Decks by scarletplover

Other Decks in Technology

Transcript

  1. テスト技法
    おさらい
    WACATE実⾏委員
    ⼭⼝
    1

    View full-size slide

  2. みなさん!
    ワークはどうでしたか?
    2

    View full-size slide

  3. 開発プロセス
    テスト計画 テスト分析 テスト設計 テスト実装 テスト実⾏ テスト完了
    モニタリングとコントロール
    テスト設計では、テスト条件をハ
    イレベルテストケース、ハイレベ
    ルテストケースのセット、および
    その他のテストウェアへ落とし込
    む。。
    イマココ
    テスト分析では、テスト可能な
    フィーチャーを識別し、テスト条
    件を決めるためにテストベースを
    分析する。
    JSTQB Foundation シラバス Version 2018V3.1.J03 3

    View full-size slide

  4. テスト設計の前に・・・
    § テスト設計
    § 実際、どんな⾵にテストする?
    § 全数テストするのは⼤変
    § 単なる勘と経験だけじゃ無理
    § テスト設計技法を使おう!
    テスト設計では、テスト条件をハイレベルテストケース、ハイレベルテスト
    ケースのセット、およびその他のテストウェアへ落とし込む。。
    JSTQB Foundation シラバス Version 2018V3.1.J03
    4

    View full-size slide

  5. テスト技法(テスト設計技法)とは
    § テスト設計技法
    テストケースを作成したり選択するための技法
    戦略的かつ合理的に、効率よくテストを設計するために使うもの
    仕様に基づい
    た技法
    同値分割法
    境界値分析
    デシジョンテーブル
    原因結果グラフ法
    状態遷移テスト
    ユースケーステスト
    ユーザーストーリーテスト
    ドメイン分析
    ランダムテスト
    CFD技法
    コードに基づ
    いた技法
    制御フローテスト
    データフローテスト
    トランザクションフローテ
    スト
    経験および直
    感に基づいた
    技法
    アドホックテスト
    探索的テスト
    フォールトに
    基づいた技法
    エラー推測テスト
    ミューテーションテスト
    リスクに基づ
    いた技法
    テストマネジメントにおけ
    るリスクベースドテスト
    テスト設計におけるリスク
    ベースドテスト
    利⽤に基づい
    た技法
    運⽤プロファイルによるテ
    スト
    ローカライゼーションテス

    ユーザー環境シミュレー
    ションテスト
    整合性確認テスト
    組み合わせの
    技法
    直交表テスト
    ペアワイズテスト
    クラシフィケーションツ
    リー
    HAYST法
    SQuBOK策定部会編「ソフトウェア品質知識体系ガイド(第3版)」⽇経BP社、2020年
    5

    View full-size slide

  6. テスト技法(テスト設計技法)とは
    § 本セッションではテスト設計ワークの前段として、仕様に基づいた
    技法、とくにJSTQBのFLでも扱いのある以下5つを説明します。
    仕様に基づ
    いた技法
    同値分割法
    境界値分析
    デシジョンテーブル
    原因結果グラフ法
    状態遷移テスト
    ユースケーステスト
    ユーザーストーリーテスト
    ドメイン分析
    ランダムテスト
    CFD技法
    コードに基づ
    いた技法
    制御フローテスト
    データフローテスト
    トランザクションフローテ
    スト
    経験および直
    感に基づいた
    技法
    アドホックテスト
    探索的テスト
    フォールトに
    基づいた技法
    エラー推測テスト
    ミューテーションテスト
    リスクに基づ
    いた技法
    テストマネジメントにおけ
    るリスクベースドテスト
    テスト設計におけるリスク
    ベースドテスト
    利⽤に基づい
    た技法
    運⽤プロファイルによるテ
    スト
    ローカライゼーションテス

    ユーザー環境シミュレー
    ションテスト
    整合性確認テスト
    組み合わせの
    技法
    直交表テスト
    ペアワイズテスト
    クラシフィケーションツ
    リー
    HAYST法
    SQuBOK策定部会編「ソフトウェア品質知識体系ガイド(第3版)」⽇経BP社、2020年
    6

    View full-size slide

  7. 仕様に基づいた技法
    § ⽂字通りシステムの仕様からテストケースを創出
    同値分割法
    デシジョンテーブル
    テスト
    状態遷移テスト
    ユースケーステスト
    単項⽬から使える 条件・状態の組み合わせ 機能やシステム全体
    境界値分析
    7

    View full-size slide

  8. テスト技法
    おさらい
    WACATE実⾏委員
    ⼭⼝
    8

    View full-size slide

  9. ⾃⼰紹介
    § ⼭⼝ 寛⼦
    § SNSではべにちどり
    (@scarletplover)
    § ⾦融系SIer
    § 派閥:猫派だけど本当
    は狐派
    きのこ派。
    9

    View full-size slide

  10. 仮でインターネット公開してます
    10

    View full-size slide

  11. 同値分割法と境界値分析
    11

    View full-size slide

  12. 同値分割法と境界値分析
    デシジョンテーブル
    テスト
    状態遷移テスト
    ユースケーステスト
    単項⽬から使える 条件・状態の組み合わせ 機能やシステム全体
    同値分割法
    境界値分析
    12

    View full-size slide

  13. 同値分割法と境界値分析
    § 同値分割法
    テスト対象が同じ振る舞いをすると仮定できる⼊⼒や出⼒
    などの値の集合や範囲を「同値パーティション(同値クラ
    スともよぶ)」としてまとめ、同値パーティション内の代
    表値飲みをテストすることによりテストの数を削減する技
    法である。
    SQuBOK策定部会編「ソフトウェア品質知識体系ガイド(第3版)」⽇経BP社、2020年
    13

    View full-size slide

  14. 同値分割法と境界値分析
    § 境界値分析(境界値テスト)
    プログラムの誤りが同値パーティションの境界部分に存在
    しやすいことに着⽬し、その境界上の値をしようしてテス
    トする技法である。
    同値パーティションの上限、加減の値、および、その直前、
    直後の値をテストすることにより、範囲間違いや不等号の
    取り違えなどを検出する。
    SQuBOK策定部会編「ソフトウェア品質知識体系ガイド(第3版)」⽇経BP社、2020年
    14

    View full-size slide

  15. 同値分割法と境界値分析
    § (例)オンラインショッピングサイト
    § 裁縫のための布を買うためのサイト
    § 布は10cm単位で指定して買うことができる。50cmから買うこ
    とができる。790cm以上は買うことができない。
    • 購⼊した商品の送料は⼀律、沖縄は1,400円、北海道は1,000円、
    それ以外の地域は650円である。ただし、沖縄以外の地域につ
    いてはお買い上げ合計⾦額3,980円以上で送料無料になる。
    15

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  18. 同値分割法と境界値分析
    § そのほかの同値分割法・境界値分析
    ⽇本
    以外 3980円未満
    販売
    上限
    3980円〜
    0円
    配達地域 合計⾦額
    それ
    以外
    北海道
    沖縄
    • 購⼊した商品の送料は⼀律、沖縄は1,400円、北海道は1,000円、
    それ以外の地域は650円である。ただし、沖縄以外の地域につい
    てはお買い上げ合計⾦額3,980円以上で送料無料になる。
    境界値はない同値クラス
    書いてない
    仕様
    18

    View full-size slide

  19. 同値分割法と境界値分析
    【同値分割法】
    § メリット
    § 同じ振る舞いをするグループにつき1つの値等でテストを⾏う
    →テストケースを少なくまとめることができる。
    § 使いどころ
    § ⼊⼒値、出⼒値、内部変数、時間に依存する値など
    § いつ使うか
    § あらゆるテスト(単体テスト〜受け⼊れテストまで)
    19

    View full-size slide

  20. 同値分割法と境界値分析
    【同値分割法】
    § 注意
    § プログラミング等で変な同値クラスができていないかを確認す
    る必要がある。
    If(⻑さ==10cm){ check = false; }
    elseIf(⻑さ==20cm){ check = false; }
    elseIf(⻑さ==30cm){ check = false; }
    ・・・
    20

    View full-size slide

  21. 同値分割法と境界値分析
    【同値分割法】
    § 注意
    § 何をテストしたいかで、同じ項⽬でも同値クラスの分け⽅
    が変わります(ZOOM IN・ZOOM OUT)
    ⽇本
    以外
    配達地域
    それ
    以外
    北海道
    沖縄
    ⽇本
    以外
    配達地域
    ⽇本
    OR
    配達できるかできないか
    送料
    21

    View full-size slide

  22. 同値分割法と境界値分析
    【境界値分析】
    § メリット
    § 同値クラスの境界値では⼀般的に⽋陥が潜んでることが多い
    →効率的に⽋陥を⾒つけることができる。
    § 使いどころ
    § ⼊⼒値、出⼒値、内部変数、時間に依存する値など
    § いつ使うか
    § あらゆるテスト(単体テスト〜受け⼊れテストまで)
    22

    View full-size slide

  23. 同値分割法と境界値分析
    【境界値分析】
    § 注意
    § プログラム等で別の同値クラス・境界値ができていないか確認
    § 基準(単位)に気を付ける
    § (例)もし1cm単位で布が買えたとしたら・・・
    買える
    (50cm以上790cm未満)
    買えない
    (50cm未満)
    買えない
    (790cm以上)
    49 50 790
    789
    50cm 790cm
    23

    View full-size slide

  24. デシジョンテーブルテスト
    24

    View full-size slide

  25. デシジョンテーブルテスト
    デシジョンテーブル
    テスト
    状態遷移テスト
    ユースケーステスト
    単項⽬から使える 条件・状態の組み合わせ 機能やシステム全体
    同値分割法
    境界値分析
    25

    View full-size slide

  26. デシジョンテーブルテスト
    § デシジョンテーブルテストとは
    テスト対象の仕様をデシジョンテーブルと呼ばれる表にまと
    め、これに基づいてテストケースを作成する技法である。
    複数因⼦からなる条件をデシジョンテーブルで整理して、そこ
    にフォーカスしたテストケースを作成する技法
    因⼦ ⽔準 #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

    View full-size slide

  27. デシジョンテーブルテスト
    § デシジョンテーブルとは
    こんな表です。
    因⼦ ⽔準 #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

    View full-size slide

  28. 因⼦ ⽔準 #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

    View full-size slide

  29. デシジョンテーブルテスト
    § デシジョンテーブルテスト①条件記述部を書く
    ⽇本
    以外
    3980円
    未満
    販売
    上限
    3980円〜
    0円
    配達地域 合計⾦額
    それ
    以外
    北海道
    沖縄
    • 購⼊した商品の送料は⼀律、沖縄は1,400円、北海道は1,000円、
    それ以外の地域は650円である。ただし、沖縄以外の地域につい
    てはお買い上げ合計⾦額3,980円以上で送料無料になる。
    29

    View full-size slide

  30. デシジョンテーブルテスト
    § デシジョンテーブルテスト①条件記述部を書く
    § 今回はあくまで送料に関わる条件のテストをしたいので、送料
    を出すのに考慮すべき有効なクラスを条件記述部に書く。
    それ以外
    北海道
    沖縄
    3980円未満
    3980円〜
    配達地域
    合計⾦額
    #2
    #1
    ⽔準
    因⼦
    N
    Y
    沖縄
    配達地域
    Y
    N
    北海道
    N
    N
    それ以外
    Y
    Y
    3890円以上
    合計⾦額
    N
    N
    3890円未満
    結果
    X

    0円
    *因⼦:テストの結果を変える要因となりうるもの
    ⽔準:因⼦がとりうる値
    30

    View full-size slide

  31. デシジョンテーブルテスト
    § デシジョンテーブルテスト②動作記述部を書く
    § 想定される動作や結果を動作記述部に書き出す。
    • 購⼊した商品の送料は⼀律、沖縄は1,400円、北海道は1,000円、
    それ以外の地域は650円である。ただし、沖縄以外の地域について
    はお買い上げ合計⾦額3,980円以上で送料無料になる。
    #4
    #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円 31

    View full-size slide

  32. § デシジョンテーブルテスト③条件指定部を書く
    § それぞれの因⼦の条件の組み合わせを条件指定部に記載
    ⼀般的には取りうる⽔準を全て条件記述部に書いて、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

    View full-size slide

  33. デシジョンテーブルテスト
    § デシジョンテーブルテスト④動作指定部を書く
    § 条件指定部の条件から想定
    される結果を記⼊。
    (ここでは当てはまる
    ものに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

    View full-size slide

  34. デシジョンテーブルテスト
    § デシジョンテーブルテスト④条件指定部を書く
    デシジョンテーブルの出来上がり!
    因⼦ ⽔準 #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

    View full-size slide

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

    View full-size slide

  36. デシジョンテーブルテスト
    § メリット
    § 複数因⼦の条件によって結果が分かれる時に、仕様を抜け
    漏れなく整理してテストできる。
    § 使いどころ
    § 複数の条件の組み合わせによって結果が分かれる場合
    § いつ使うか
    § 統合テスト、システムテスト
    36

    View full-size slide

  37. デシジョンテーブルテスト
    § 注意
    § 条件⾃体がもれていると効果がない。
    § デシジョンテーブルとは複数因⼦からなる結果の条件を明らかにして、そこに
    フォーカスしてテストする技法。
    条件が複雑な場合に効果を発揮するが、テストケース数が爆発することもある
    § 他の条件が存在しないか確認。
    § 条件の粒度を定める。
    § テストしたい条件、結果以外のテスト(境界値分析など)
    を含めて書かない
    37

    View full-size slide

  38. 状態遷移テスト
    38

    View full-size slide

  39. 状態遷移テスト
    デシジョンテーブル
    テスト
    状態遷移テスト
    ユースケーステスト
    単項⽬から使える 条件・状態の組み合わせ 機能やシステム全体
    同値分割法
    境界値分析
    39

    View full-size slide

  40. 状態遷移テスト
    § 状態遷移図や状態遷移表を使ってテスト対象プログラ
    ムの仕様を整理し、これに基づいてテストケースを作
    成する技法である。
    網羅する遷移の数を表す「Nスイッチカバレッジ」によ
    り網羅基準を設定する。
    SQuBOK策定部会編「ソフトウェア品質知識体系ガイド(第3版)」⽇経BP社、2020年
    40

    View full-size slide

  41. 状態遷移テスト
    以下の図表で、システムのイベントに対する状態の変
    化を整理し、状態遷移にフォーカスしたテストを⾏う。
    § 状態遷移図


    イベント
    停⽌

    起動

    ONボタン押下
    OFFボタン押下
    状態/イベント ONボタン押下 OFFボタン押下
    停⽌中 起動中 N/A
    起動中 N/A 停⽌中
    § 状態遷移表 イベント
    状態
    41

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  45. 状態遷移テスト
    § 状態遷移テスト③状態遷移図・状態遷移表を作る
    商品選
    択中
    ⽀払情
    報⼊⼒

    エラー
    ⽀払承
    認待ち
    購⼊完

    OK押下
    OK押下
    戻る押下
    戻る押下
    購⼊⼿続きボタン押下
    ⽀払実⾏
    ⽀払却下
    ⽀払承認
    あれ?あってるかな?
    45

    View full-size slide

  46. 状態遷移テスト
    § 状態遷移テスト③状態遷移図・状態遷移表を作る
    状態/イベント
    購⼊⼿続きボタ
    ン押下
    ⽀払実⾏ 戻る ⽀払承認 ⽀払却下 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

    View full-size slide

  47. 状態遷移テスト
    § 状態遷移テスト③状態遷移図・状態遷移表を作る
    状態/イベント
    購⼊⼿続きボタ
    ン押下
    ⽀払実⾏ 戻る ⽀払承認 ⽀払却下 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

    View full-size slide

  48. 状態遷移テスト
    § 状態遷移テスト③状態遷移図・状態遷移表を作る
    状態/イベント
    購⼊⼿続きボタ
    ン押下
    ⽀払実⾏ 戻る ⽀払承認 ⽀払却下 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

    View full-size slide

  49. 状態遷移テスト
    § 状態遷移テスト③状態遷移図・状態遷移表を作る
    商品選
    択中
    ⽀払情
    報⼊⼒

    エラー
    ⽀払承
    認待ち
    購⼊完

    OK押下
    OK押下
    戻る押下
    戻る押下
    購⼊⼿続きボタン押下
    ⽀払実⾏
    ⽀払却下
    ⽀払承認
    戻る押下
    戻る押下
    戻る押下
    49

    View full-size slide

  50. 状態遷移テスト
    § 状態遷移テスト④テストケースを作る(⼿作業)
    経路
    番号
    状態 遷移 状態 遷移 状態
    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

    View full-size slide

  51. 状態遷移テスト
    § Nスイッチカバレッジは網羅の遷移の数
    0スイッチカバレッジ
    (スタート状態→ゴール状態)
    Nスイッチカバレッジ(ここでは1スイッチ)
    (スタート状態→別のN個の状態を挟む→ゴール状態)
    停⽌

    起動

    ONボタン押下
    OFFボタン押下
    停⽌

    起動

    ONボタン押下
    OFFボタン押下
    遷移前状態 イベント 期待結果
    停⽌中 ON押下 起動中
    起動中 OFF押下 停⽌中
    遷移前状態 イベント 状態1 イベント 期待結果
    停⽌中 ON押下 起動中 OFF押下 停⽌中
    起動中 OFF押下 停⽌中 ON押下 起動中
    51

    View full-size slide

  52. 状態遷移テスト
    § Nスイッチカバレッジを図から出すのは⼤変!
    商品選
    択中
    ⽀払情
    報⼊⼒

    エラー
    ⽀払承
    認待ち
    購⼊完

    OK押下
    OK押下
    戻る押下
    戻る押下
    購⼊⼿続きボタン押下
    ⽀払実⾏
    ⽀払却下
    ⽀払承認
    戻る押下
    戻る押下
    戻る押下
    52

    View full-size slide

  53. 状態遷移テスト
    § 状態遷移テスト④テストケースを作る(⼿作業)
    商品選択中
    ⽀払情報⼊⼒中
    ⽀払承認待ち
    購⼊完了
    エラー
    ⅰ.全ての状態を書き出す
    53

    View full-size slide

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

    View full-size slide

  55. 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

    View full-size slide

  56. 状態遷移テスト
    § 状態遷移テスト④テストケースを作る(⼿作業)
    経路
    番号
    状態 遷移 状態 遷移 状態
    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

    View full-size slide

  57. 状態遷移テスト
    § メリット
    § システムの状態の変化にフォーカスしたテストができる。
    § 状態遷移の仕様誤りや設計誤りを⾒つけることが
    できる。
    § 使いどころ
    § システムの状態遷移が複数の状態に変化する場合
    § いつ使うか
    § 統合テスト、システムテスト
    57

    View full-size slide

  58. 状態遷移テスト
    § 注意
    § どこまでも複雑になるのでテストしたいのかは考えること
    (Nスイッチカバレッジ)
    § なんの状態をテストしたいか特定してテストする
    (購⼊状態がテストしたいのか?
    画⾯遷移がテストしたいのか?)
    § 商品⼀覧画⾯で購⼊する布と数量(⻑さ)を選択。
    § 買い物かご画⾯で選択した商品と数量(⻑さ)を確認して購⼊⼿続き
    ボタン押下。
    商品選択中
    58

    View full-size slide

  59. ユースケーステスト
    59

    View full-size slide

  60. ユースケーステスト
    デシジョンテーブル
    テスト
    状態遷移テスト
    ユースケーステスト
    単項⽬から使える 条件・状態の組み合わせ 機能やシステム全体
    同値分割法
    境界値分析
    60

    View full-size slide

  61. ユースケーステスト
    § アクター(ユーザーや外部システム)とテスト対象システ
    ムとの相互作⽤を記述したユースケースに基づいてテスト
    ケースを作成する技法である。
    § ユースケース
    アクターが、ある特定の⽬的を達成するためにシステムを
    どう使うかを⽰すシナリオ(脚本)
    § どのようなアクターが /どのような場⾯において /どのような⽬的
    を達成するために /どのような活動を⾏うのか
    SQuBOK策定部会編「ソフトウェア品質知識体系ガイド(第3版)」⽇経BP社、2020年
    61

    View full-size slide

  62. ユースケーステスト
    § ユースケース
    ユースケースは通常、ユースケース図とユースケー
    ス記述によって成り⽴つ。
    商品を選ぶ
    商品を買う
    注⽂状況を
    確認する
    注⽂履歴を
    確認する
    顧客 各カード会社⽀払システム
    布ショッピングサイト
    ユースケース図 ユースケース記述
    項⽬ 内容
    ユースケース 商品を買う
    概要 顧客は選んだ商品について購⼊する。
    アクター 顧客
    各カード会社⽀払システム
    事前条件 顧客はオンラインショッピングサイトにログインしている
    顧客は商品を既に選んでいる
    事後条件 商品の購⼊が完了する
    基本フロー 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

    View full-size slide

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

    View full-size slide

  64. ユースケーステスト
    § ユースケース図
    § アクターの視点からシステムの機能や振る舞い、相互作⽤を
    列挙したもの
    商品を選ぶ
    商品を買う
    注⽂状況を
    確認する
    注⽂履歴を
    確認する
    顧客 各カード会社⽀払システム
    布ショッピングサイト
    ユースケース
    アクター
    64

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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






    1a
    4a
    2a
    5a
    ①商品購⼊完了
    68

    View full-size slide

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






    1a
    4a
    2a
    5a
    ②商品選び直し
    69

    View full-size slide

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






    1a
    4a
    2a
    5a
    ③商品売り切れ
    70

    View full-size slide

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






    1a
    4a
    2a
    5a
    ④⽀払情報NG
    71

    View full-size slide

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






    1a
    4a
    2a
    5a
    ⑤⽀払却下
    72

    View full-size slide

  73. ユースケーステスト
    § ユースケーステスト
    § 各ユースケースのフローごとにテストをする
    商品を購⼊する
    ①商品購⼊完了するテスト:1→2→3→4→5→6
    ②商品選び直しするテスト:1→1a
    ③商品が売り切れているときのテスト:1→2→2a
    ④⽀払情報の⼊⼒が間違っている場合のテスト:1→2→3→4→4a
    ⑤⽀払が却下された場合のテスト:1→2→3→4→5→5a
    73

    View full-size slide

  74. ユースケーステスト
    § メリット
    § システムの1機能をユーザーや外部システムの視点から、
    最初から最後まで通して整理し、テストできる
    § 使いどころ
    § ユーザ・外部システムが複数、相互作⽤が複雑な場合
    § 1機能を⼀気通貫でテストしたい時
    § いつ使うか
    § システムテスト・受け⼊れテスト
    74

    View full-size slide

  75. ユースケーステスト
    § 注意
    § ユーザーの視点からテストをする
    § 他のテスト条件(状態遷移など)と⼀緒にテストをしない。
    75

    View full-size slide

  76. 仕様に基づいた技法
    § ⽂字通りシステムの仕様からテストケースを創出
    デシジョンテーブル
    テスト
    状態遷移テスト
    ユースケーステスト
    単項⽬から使える 条件・状態の組み合わせ 機能やシステム全体
    同値分割法
    境界値分析
    77

    View full-size slide

  77. テスト技法について
    テスト技法 メリット 使いどころ ポイント・注意点
    単項⽬から
    使える
    同値分割法 テストケースを少なく
    まとめることができる。
    ⼊⼒値、出⼒値、内部変数、
    時間に依存する値など
    同値クラスを⾒極めること
    境界値分析 効率的に⽋陥を⾒つけ
    ることができる。
    ⼊⼒値、出⼒値、内部変数、
    時間に依存する値など
    同値クラスを⾒極めること
    基準(単位)に気をつける
    条件・状態の
    組み合わせ
    デシジョンテー
    ブルテスト
    複数条件による組み合
    わせの結果を整理して
    テストできる。
    複数の条件の組み合わせに
    よって結果が分かれる場合
    条件の粒度を定めてもれなくだ

    状態遷移テスト システムの状態の変化
    を整理してテストでき
    る。
    システムの状態が複数の状
    態に変化する場合
    何の状態をテストしたいか曖昧
    にしない
    機能やシステ
    ム全体
    ユースケーステ
    スト
    ユーザーや外部システ
    ムの視点から仕様を整
    理してテストできる。
    ユーザ・外部システムが複
    数、相互作⽤が複雑な場合
    1機能を⼀気通貫でテスト
    したい
    ユーザーや外部システムの視点
    からテストをする
    78

    View full-size slide

  78. 最後に
    § テスト設計で「もれなく」なんていう前に。。
    § あなたがテストしたいのは「何」か決めましょう
    § どの項⽬?どの条件分岐?・どういう状態?・ユースケース?
    § テストケースの前にまず仕様を整理しましょう
    § 仕様に抜けはありませんか・・・?
    § どの程度まで網羅するのかを決めましょう
    § 0スイッチ、1スイッチ・・・
    § どの粒度でテストする?(同値クラスの分け⽅など)
    79

    View full-size slide

  79. テスト技法について
    § 参考⽂献
    § リー・コープランド著、宗 雅彦訳「はじめて学ぶソフトウェアのテスト技法」 ⽇経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

    View full-size slide

  80. ありがとうございました!
    良いワークを!
    81

    View full-size slide