$30 off During Our Annual Pro Sale. View Details »

【S2】明日から使えるテスト技法勉強会_3_状態遷移テスト

 【S2】明日から使えるテスト技法勉強会_3_状態遷移テスト

こちらはConnpassで開催した「明日から使えるテスト技法勉強会」シーズン2で使用された資料となります。合計7部ありますので、テスト技法にご興味を持つ方は、ぜひご活用いただければ幸いです。

また、本資料中使用されたツールGIHOZ(ギホーズ)は、各種テスト技法を手軽に利用できるクラウド型ツールです。
GIHOZはアカウント登録のみで、すぐに利用が可能です。高品質なテストを効率よく作成するために、熟練のテストエンジニアが利用しているさまざまなテスト技法を手軽に体感してください。

GIHOZに登録されたテスト技法はすべて無償でご利用いただけます。
詳細はこちらまでご確認ください。👉https://www.veriserve.co.jp/gihoz/

GIHOZ SUPPORT TEAM

September 30, 2022
Tweet

More Decks by GIHOZ SUPPORT TEAM

Other Decks in Education

Transcript

  1. 明日から使える 勉強会 #3
    テスト技法
    2022.9.28 19:00~20:00@Zoom

    状態遷移テストとは
    S
    2

    View Slide

  2. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 名前
    ◼ 田上 諭 (たのうえ さとし)
    ➢ 所属
    ◼ 株式会社ベリサーブ 研究企画開発部
    ➢ 経歴
    ◼ 2018年度に新卒で入社
    ◼ ソリューション事業部
    ◆ 静的解析、セキュリティテスト、自動テスト 1年ほど
    ◼ 研究企画開発部で GIHOZ開発
    ◆ 2019年 ~ 現在
    自己紹介
    1

    View Slide

  3. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 状態遷移テストの解説
    ➢ GIHOZの紹介
    ➢ GIHOZを使った状態遷移テストのハンズオン
    ➢ おわりに
    アジェンダ
    2

    View Slide

  4. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 3
    ➢ 状態遷移テストの解説

    View Slide

  5. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    状態遷移モデル(状態遷移図や状態遷移表)から
    テストケースを作るテスト技法
    状態遷移テストとは
    4
    S2
    ログアウト中
    S1
    ログイン中
    S3
    ロック中
    E1: ログアウト
    E2: タイムアウト
    E3: ログイン E4: ロック時間経過
    E5: ロックアウト
    状態遷移図の例 状態遷移表の例
    (遷移前の状態×遷移後の状態)
    遷移後
    遷移前
    S1 S2 S3
    S1 E1+E2
    S2 E3 E5
    S3 E4

    View Slide

  6. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    状態遷移図の例
    5
    S2
    ログアウト中
    S1
    ログイン中
    S3
    ロック中
    E1: ログアウト
    E2: タイムアウト
    E3: ログイン E4: ロック時間経過
    E5: ロックアウト
    ※アクションは省略される場合もある
    状態
    遷移
    イベント[/アクション]
    【凡例】

    View Slide

  7. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    状態遷移表の例(遷移前状態×イベント)
    6
    イベント
    遷移前状態
    E1
    ログアウト
    E2
    タイムアウト
    E3
    ログイン
    E4
    ロック
    時間経過
    E5
    ロックアウト
    S1
    ログイン中
    S2 S2 Ignore Ignore Ignore
    S2
    ログアウト中
    Ignore Ignore S1 Ignore S3
    S3
    ロック中
    Ignore Ignore Ignore S2
    Can’t
    happen
    Ignore:イベントが発生しても無視し、他の状態に遷移しないことを示す。
    Can’t happen: イベントが発生しないことを示す。

    View Slide

  8. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    状態遷移表の例(遷移前状態×遷移後状態)
    7
    遷移後状態
    遷移前状態
    S1
    ログイン中
    S2
    ログアウト中
    S3
    ロック中
    S1
    ログイン中
    E1+E2
    S2
    ログアウト中
    E3 E5
    S3
    ロック中
    E4
    E1: ログアウト E2: タイムアウト E3: ログイン E4: ロック時間経過 E5:ロックアウト
    Nスイッチテストケース(後述)の作成は、この表を行列としてとらえて、行列の積を計算することでも可能。

    View Slide

  9. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    状態遷移テストで作るテストケースの例
    8
    開始状態 入力 終了状態
    1 ログイン中 ログアウト ログアウト中
    2 ログアウト中 ロックアウト ロック中
    3 ログイン中 タイムアウト ログアウト中
    4 ログアウト中 ログイン ログイン中
    5 ロック中 ロックアウト経過 ログアウト中

    View Slide

  10. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    Nスイッチカバレッジ
    9
    0スイッチ
    中間状態を0個経由する
    1スイッチ
    中間状態を1個経由する
    2スイッチ
    中間状態を2個経由する
    ある状態 ある状態
    ある状態 ある状態
    状態

    ある状態 ある状態
    状態

    状態
    y
    ➢ ある状態からある状態に遷移するのに、中間状態をN個経由するようにテストケースを作成する

    View Slide

  11. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    1スイッチケースの作り方:完成形
    10
    開始状態 入力 後状態 入力 終了状態
    1 ログイン中 ログアウト ログアウト中 ロックアウト ロック中
    2 ログイン中 ログアウト ログアウト中 ログイン ログイン中
    3 ログアウト中 ロックアウト ロック中 ロックアウト経過 ログアウト中
    4 ログイン中 タイムアウト ログアウト中 ロックアウト ロック中
    5 ログイン中 タイムアウト ログアウト中 ログイン ログイン中
    6 ログアウト中 ログイン ログイン中 ログアウト ログアウト中
    7 ログアウト中 ログイン ログイン中 タイムアウト ログアウト中
    8 ロック中 ロックアウト経過 ログアウト中 ロックアウト ロック中
    9 ロック中 ロックアウト経過 ログアウト中 ログイン ログイン中

    View Slide

  12. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    1スイッチテストケースの作り方の例:Step1
    11
    開始状態 入力 終了状態
    1 ログイン中 ログアウト ログアウト中
    2 ログアウト中 ロックアウト ロック中
    3 ログイン中 タイムアウト ログアウト中
    4 ログアウト中 ログイン ログイン中
    5 ロック中 ロックアウト経過 ログアウト中
    0スイッチテストケースを持ってくる

    View Slide

  13. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    1スイッチテストケースの作り方の例:Step2
    12
    開始状態 入力 後状態 入力 終了状態
    1 ログイン中 ログアウト ログアウト中
    2 ログアウト中 ロックアウト ロック中
    3 ログイン中 タイムアウト ログアウト中
    4 ログアウト中 ログイン ログイン中
    5 ロック中 ロックアウト経過 ログアウト中
    終了状態を後状態に変更し、入力と終了状態の列を作る

    View Slide

  14. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    1スイッチテストケースの作り方の例:Step3
    13
    開始状態 入力 後状態 入力 終了状態
    1 ログイン中 ログアウト ログアウト中 ロックアウト ロック中
    2 ログアウト中 ロックアウト ロック中
    3 ログイン中 タイムアウト ログアウト中
    4 ログアウト中 ログイン ログイン中
    5 ロック中 ロックアウト経過 ログアウト中
    後状態が取りうる入力を、表に記述する。入力に伴って、終了状態も決まるので、
    終了状態も記述する。

    View Slide

  15. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    1スイッチテストケースの作り方の例:Step4
    14
    開始状態 入力 後状態 入力 終了状態
    1 ログイン中 ログアウト ログアウト中 ロックアウト ロック中
    2 ログイン中 ログアウト ログアウト中
    3 ログアウト中 ロックアウト ロック中
    4 ログイン中 タイムアウト ログアウト中
    5 ログアウト中 ログイン ログイン中
    6 ロック中 ロックアウト経過 ログアウト中
    ログアウト中が取りうる入力は、ロックアウトとログインと2つあるので行を追加する。

    View Slide

  16. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    1スイッチテストケースの作り方の例:Step5
    15
    開始状態 入力 後状態 入力 終了状態
    1 ログイン中 ログアウト ログアウト中 ロックアウト ロック中
    2 ログイン中 ログアウト ログアウト中 ログイン ログイン中
    3 ログアウト中 ロックアウト ロック中
    4 ログイン中 タイムアウト ログアウト中
    5 ログアウト中 ログイン ログイン中
    6 ロック中 ロックアウト経過 ログアウト中
    後状態が取りうる入力を、表に記述する。入力に伴って、終了状態も決まるので、
    終了状態も記述する。

    View Slide

  17. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    1スイッチテストケースの作り方の例:Step6
    16
    開始状態 入力 後状態 入力 終了状態
    1 ログイン中 ログアウト ログアウト中 ロックアウト ロック中
    2 ログイン中 ログアウト ログアウト中 ログイン ログイン中
    3 ログアウト中 ロックアウト ロック中 ロックアウト経過 ログアウト中
    4 ログイン中 タイムアウト ログアウト中 ロックアウト ロック中
    5 ログイン中 タイムアウト ログアウト中 ログイン ログイン中
    6 ログアウト中 ログイン ログイン中 ログアウト ログアウト中
    7 ログアウト中 ログイン ログイン中 タイムアウト ログアウト中
    8 ロック中 ロックアウト経過 ログアウト中 ロックアウト ロック中
    9 ロック中 ロックアウト経過 ログアウト中 ログイン ログイン中
    すべての取りうる入力のパターンがなくなるまで続ける。

    View Slide

  18. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ Nスイッチカバレッジでテストケースを作成するのが一般的
    ➢ Nスイッチ以外にも様々なカバレッジを考えられる
    ◼ 状態遷移モデルの代表的な遷移のみを網羅する
    ◼ 全ての状態に少なくとも1度以上は訪れる(状態は網羅)
    ◼ 無効遷移を含めた全遷移の網羅
    ◼ 不正に遷移しないことを確認する(状態遷移表のIgnore、Can’t happenを確認する)
    ◼ 状態遷移モデルから特定のパス(シナリオ)を導出する
    状態遷移テストにおけるカバレッジ
    17
    0スイッチカバレッジ100%
    対象となる状態遷移モデルにおける0スイッチの
    パス(経路)を少なくとも1回以上実行している
    1スイッチカバレッジ100%
    対象となる状態遷移モデルにおける1スイッチの
    パス(経路)を少なくとも1回以上実行している
    2スイッチカバレッジ100%
    対象となる状態遷移モデルにおける2スイッチの
    パス(経路)を少なくとも1回以上実行している
    3スイッチカバレッジ100%
    対象となる状態遷移モデルにおける3スイッチの
    パス(経路)を少なくとも1回以上実行している

    View Slide

  19. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    状態遷移テストの位置づけ
    18
    画像は右記から引用:https://note.com/akiyama924/n/n072e24135964
    状態遷移に関する仕様を
    網羅的にテストする際に
    使うテスト技法

    View Slide

  20. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ バグが見つかるのは遷移したタイミングとは限らない
    ◼ ある遷移で内部変数の値がおかしくなったとしても、バグとして現れるのは、その内部変数を次に参照したとき
    → これに気付くには、少なくとも1スイッチのテストケースが必要
    ➢ Nスイッチカバレッジを網羅したからといって、 N-1 スイッチカバレッジを網羅できるとは限らない場合がある
    覚えておきたいこと
    19
    1スイッチテストケースには、
    「状態4→状態3」の遷移
    が含まれていない

    View Slide

  21. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ メリット
    ◼ 仕様を状態遷移モデルで表すことで、テスト対象の状態の遷移が取り得る経路を整理できる
    ◼ Nスイッチカバレッジなどの網羅基準を決めれば、テストケースを機械的に導出できる
    ◼ 1スイッチカバレッジでは、0スイッチカバレッジで見つからなかったバグを発見できる
    ➢ デメリット
    ◼ 状態を細かく分けたりスイッチ数を増やすと、経路が多くなり、テストケースの数が爆発的に増える
    ➢ 使いどころ
    ◼ テスト対象が複数の状態を持っており、定めたカバレッジに基づいて遷移を一通り確認したい場合
    ◼ 画面遷移を一通り確認したい場合
    状態遷移テストのメリット、使いどころ
    20

    View Slide

  22. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 21
    ➢ GIHOZについて

    View Slide

  23. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    GIHOZのコンセプト
    22
    『GIHOZ』は、ベリサーブが開発しているテスト技法ツールです。
    ソフトウェア開発に関わる全ての人の
    テスト設計の「作業」をゼロにする
    目的に応じて
    テスト技法を選択
    テストモデル・ケースを
    容易に作成・利用
    各種APIによる連携

    View Slide

  24. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    検索&アカウント登録(無料)
    GIHOZを使うには
    23
    GIHOZ
    名前の由来と覚え方
    テスト技法が集まっている → 技法s(複数形) → ギホーズ → GIHOZ

    View Slide

  25. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    GIHOZの状態遷移テストの使い方
    24
    状態遷移表と
    テストケースを
    生成する
    状態遷移図を作る
    カバレッジ基準
    (スイッチ数)
    を選択する

    View Slide

  26. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 状態は角丸四角形、遷移は矢印で表現する
    ➢ 矢印の上にイベントの名称を入力できる
    ➢ イベントごとに遷移の矢印を引く
    ➢ アクションの記載はなし
    GIHOZの状態遷移図
    25

    View Slide

  27. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ Nスイッチカバレッジでテストケースを作成するのが一般的
    ➢ Nスイッチ以外にも様々なカバレッジを考えられる
    ◼ 状態遷移モデルの代表的な遷移のみを網羅する
    ◼ 全ての状態に少なくとも1度以上は訪れる(状態は網羅)
    ◼ 無効遷移を含めた全遷移の網羅
    ◼ 不正に遷移しないことを確認する(状態遷移表のIgnore、Can’t happenを確認する)
    ◼ 状態遷移モデルから特定のパス(シナリオ)を導出する
    状態遷移テストにおけるカバレッジ
    26
    0スイッチカバレッジ100%
    対象となる状態遷移モデルにおける0スイッチの
    パス(経路)を少なくとも1回以上実行している
    1スイッチカバレッジ100%
    対象となる状態遷移モデルにおける1スイッチの
    パス(経路)を少なくとも1回以上実行している
    2スイッチカバレッジ100%
    対象となる状態遷移モデルにおける2スイッチの
    パス(経路)を少なくとも1回以上実行している
    3スイッチカバレッジ100%
    対象となる状態遷移モデルにおける3スイッチの
    パス(経路)を少なくとも1回以上実行している
    GIHOZは○が付いている
    カバレッジをサポート

    View Slide

  28. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 27
    ➢ GIHOZを使った状態遷移テストのハンズオン

    View Slide

  29. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 扇風機の仕様
    ◼ 停止中に「運転・停止ボタン」を押すと、運転開始します。
    ◼ 運転中に「運転・停止ボタン」を押すと、停止します。
    ◼ 運転中に、「運転モード切り替えボタン」を押すと、「風量・弱」→「風量・中」→「風量・強」の順で切
    り替わっていきます。
    ◼ 運転中に、「風量・強」の状態で、「運転モード切り替えボタン」を押すと、「風量・弱」になります。
    ◼ 運転を開始する場合は、必ず「風量・弱」の状態で始まります。
    ➢ 状態遷移図を作成し、1スイッチのテストケースを作成してください
    例題1
    28

    View Slide

  30. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 扇風機の仕様
    ◼ 停止中に「運転・停止ボタン」を押すと、運転開始します。
    ◼ 運転中に「運転・停止ボタン」を押すと、停止します。
    ◼ 運転中に、「運転モード切り替えボタン」を押すと、「風量・弱」→「風量・中」→「風量・強」の順で切
    り替わっていきます。
    ◼ 運転中に、「風量・強」の状態で、「運転モード切り替えボタン」を押すと、「風量・弱」になります。
    ◼ 運転を開始する場合は、必ず「風量・弱」の状態で始まります。
    ➢ 状態遷移図を作成し、1スイッチのテストケースを作成してください
    例題1: 状態遷移図を作る(状態とイベントを識別する)
    29
    停止中の状態と
    運転中の状態がある
    運転中には、風量が異なる
    3つの状態がある
    運転・停止ボタンと運転モード切り替え
    ボタンの2つのボタンがあり、これらを
    押されることがイベントとなる

    View Slide

  31. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 初期データを削除する
    例題1: 状態遷移図を作る
    30
    ①Ctrl+Aキーで要素を全選択
    または、グレー背景の領域でドラッグ
    アンドドロップして要素を全選択
    ②Deleteキーを押して、
    選択した要素を削除

    View Slide

  32. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 状態を追加する
    例題1: 状態遷移図を作る
    31
    ①グレー背景の領域でダブル
    クリックして新しい状態を追加
    ②状態の中の文字列をダブルクリック
    または、
    状態を選択してF2キーで、名前を編集

    View Slide

  33. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 遷移を追加する
    例題1: 状態遷移図を作る
    32
    ①ある状態から別の状態に
    向けてドラッグアンドドロップ
    ※注:状態の四角形の端の辺り
    からドラッグアンドドロップする
    ②矢印の上の文字列をダブルクリック
    または、矢印を選択してF2キーで、
    イベントの名前を編集

    View Slide

  34. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 状態と遷移を同時に追加する
    例題1: 状態遷移図を作る
    33
    ②既存の状態を選択し「+」
    アイコンをクリックすると、状態
    とイベントを同時に追加できる

    View Slide

  35. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 状態は四角形の真ん中あたりをドラッグアンドドロップすると移動できる
    ➢ 遷移は矢印を選択して、水色のアイコンをドラッグアンドドロップすると位置を調整できる
    例題1: 状態遷移図を作る
    34
    ①状態の四角形をドラッグ
    アンドドロップして移動
    ※注:状態名の文字列の辺り
    をドラッグアンドドロップする
    ②矢印を選択してから、水色の
    アイコンをドラッグアンドドロップ
    して位置調整

    View Slide

  36. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 残りの遷移も追加する
    例題1: 状態遷移図を作る
    35
    ①運転・停止ボタンを押した
    際の遷移を追加

    View Slide

  37. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 同一の状態に対して遷移の矢印を引くこともできる(他の状態に遷移しないことを表す)
    例題1: 状態遷移図を作る
    36
    ①ある状態から、同一の状態
    に対してドラッグアンドドロップ
    ※注:状態の四角形の端の辺り
    からドラッグアンドドロップする

    View Slide

  38. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ プルダウンで、0スイッチ~3スイッチを選択できる
    例題1: カバレッジ基準(スイッチ数)を選択する
    37
    ①プルダウンからスイッチ数
    を選択

    View Slide

  39. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 生成ボタンを押すと、自動で状態遷移表とテストケースを生成できる
    例題1: 状態遷移表とテストケースを生成する
    38
    ①「状態遷移表とテスト
    ケースを生成」ボタンを押す
    ②遷移の漏れがないか確認するために、
    状態遷移表(状態×イベント)に
    空欄がないか確認すると良い

    View Slide

  40. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 「遷移前状態×イベント」の状態遷移表と、「遷移前状態×遷移後状態」の状態遷移表を作成できる
    GIHOZで作成できる状態遷移表
    39

    View Slide

  41. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 「無効遷移を含めた全遷移テストケース」と、選択したスイッチ数のテストケースを作成できる
    GIHOZで作成できるテストケース
    40
    「無効遷移を含めた全遷移
    テストケース」は必ず作成される

    View Slide

  42. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 基本的には編集できない。そのままCSV形式でダウンロードしたり、Excelなどにコピペしたりして活用する
    ➢ 状態遷移表(状態×イベント)の空欄のセルのみ、プルダウンからignoreかcan’t happenを入力できる
    状態遷移表、テストケースの編集
    41
    CSVダウンロードボタンを
    押してダウンロード
    空欄のセルをダブルクリックして、
    プルダウンから選択

    View Slide

  43. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 扇風機の仕様
    ◼ 停止中に「運転・停止ボタン」を押すと、運転開始します。
    ◼ 運転中に「運転・停止ボタン」を押すと、停止します。
    ◼ 運転中に、「運転モード切り替えボタン」を押すと、「風量・弱」→「風量・中」→「風量・強」の順で切
    り替わっていきます。
    ◼ 運転中に、「風量・強」の状態で、「運転モード切り替えボタン」を押すと、「風量・弱」になります。
    ◼ 運転中に、「首振りボタン」を押すと、首を振り始めます。
    ◼ 首振りをしている最中に、「首振りボタン」を押すと首振りを終了します。
    ◼ 運転を開始する場合は、必ず「風量・弱」で首を振っていない状態で始まります。
    ➢ 状態遷移図を作成し、1スイッチのテストケースを作成してください
    例題2 ※赤字が例題1からの変更・追加箇所
    42

    View Slide

  44. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 扇風機の仕様
    ◼ 停止中に「運転・停止ボタン」を押すと、運転開始します。
    ◼ 運転中に「運転・停止ボタン」を押すと、停止します。
    ◼ 運転中に、「運転モード切り替えボタン」を押すと、「風量・弱」→「風量・中」→「風量・強」の順で切
    り替わっていきます。
    ◼ 運転中に、「風量・強」の状態で、「運転モード切り替えボタン」を押すと、「風量・弱」になります。
    ◼ 運転中に、「首振りボタン」を押すと、首を振り始めます。
    ◼ 首振りをしている最中に、「首振りボタン」を押すと首振りを終了します。
    ◼ 運転を開始する場合は、必ず「風量・弱」で首を振っていない状態で始まります。
    ➢ 状態遷移図を作成し、1スイッチのテストケースを作成してください
    例題2: 状態遷移図を作る(状態とイベントを識別する)
    43
    「首を振っている」という
    状態が増えた

    View Slide

  45. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 「首振り中」という状態を足してみる?
    例題2: 状態遷移図を作る
    44
    首振り中にも
    風量は変更
    できるのでは?

    View Slide

  46. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 扇風機の仕様
    ◼ 停止中に「運転・停止ボタン」を押すと、運転開始します。
    ◼ 運転中に「運転・停止ボタン」を押すと、停止します。
    ◼ 運転中に、「運転モード切り替えボタン」を押すと、「風量・弱」→「風量・中」→「風量・強」の順で切
    り替わっていきます。
    ◼ 運転中に、「風量・強」の状態で、「運転モード切り替えボタン」を押すと、「風量・弱」になります。
    ◼ 運転中に、「首振りボタン」を押すと、首を振り始めます。
    ◼ 首振りをしている最中に、「首振りボタン」を押すと首振りを終了します。
    ◼ 運転を開始する場合は、必ず「風量・弱」、「首振り:なし」の状態で始まります。
    ➢ 状態遷移図を作成し、1スイッチのテストケースを作成してください
    例題2: 状態遷移図を作る(まず状態とイベントを識別する)
    45
    運転中の状態として、首を
    振っている or 振っていない
    という状態が増えた

    View Slide

  47. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 「運転中」という状態には、風量:弱・中・強と、首振り:なし・ありの組み合わせで、
    合計6個の状態がある
    例題2: 状態遷移図を作る(状態を整理する)
    46
    ※必ずしもデシジョンテーブルを使わなくて良い

    View Slide

  48. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 状態を追加する
    例題2: 状態遷移図を作る
    47
    「首振り・あり」の状態を
    追加

    View Slide

  49. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 遷移を追加する
    例題2: 状態遷移図を作る
    48
    「首振り・あり」の状態間での、
    運転モード切替ボタンによる
    遷移を追加
    「首振り・あり」の状態から
    停止中への遷移を追加
    首振りボタンに
    よる遷移を追加
    首振りボタンに
    よる遷移を追加

    View Slide

  50. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ プルダウンで、0スイッチ~3スイッチを選択できる
    例題2: カバレッジ基準(スイッチ数)を選択する
    49
    ①プルダウンからスイッチ数
    を選択

    View Slide

  51. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 生成ボタンを押すと、自動で状態遷移表とテストケースを生成できる
    例題2: 状態遷移表とテストケースを生成する
    50
    ①「状態遷移表とテスト
    ケースを生成」ボタンを押す
    (中略)
    ②遷移の漏れがないか確認するために、
    状態遷移表(状態×イベント)に
    空欄がないか確認すると良い

    View Slide

  52. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 51
    ➢ おわりに

    View Slide

  53. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ https://gihoz.hatenablog.com/
    ◼ アップデート情報など随時更新中
    GIHOZ公式ブログの紹介
    52

    View Slide

  54. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 状態遷移テストについて解説&演習を行いました
    ◼ 状態遷移モデル(状態遷移図や状態遷移表)からテストケースを作成するテスト技法
    ◼ 状態遷移モデルを作成する際は状態の識別や整理を行うなど、頭を使う必要がある
    ◼ 状態遷移モデルからテストケースを作成する「作業」はGIHOZなどのツールを使うと効率的
    ➢ 状態遷移テストを活用する場面があったら、GIHOZを使ってもらえると嬉しいです
    まとめ
    53

    View Slide

  55. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    勉強会は以上で終了です。お疲れ様でした。
    54

    View Slide