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

状態遷移テスト完全に理解しよう.pdf

dach
August 26, 2021

 状態遷移テスト完全に理解しよう.pdf

参考資料

【この1冊でよくわかる】ソフトウェアテストの教科書―品質を決定づけるテスト工程の基本と実践
https://bookwalker.jp/debeea0911-cc67-458e-a428-f98505108475/

はじめて学ぶソフトウェアのテスト技法 リー コープランド https://www.amazon.co.jp/dp/B00HE8082Q/ref=cm_sw_r_tw_dp_1FMK6XPZ853TD86AEZWV

dach

August 26, 2021
Tweet

More Decks by dach

Other Decks in Technology

Transcript

  1. Do you know what state transitions this system makes? e.g.

    • 本(物理)のレンタルサービス • 本が存在すればレンタルすることはできる 本 レンタル
  2. Who is me? EasyEasy icon チキン南蛮 VRM ID: @dach JOB:

    Eng / PM Hobby: カイゼン Twitter: i-dach qiita: i-dach
  3. What do you need to do? • どうあるべきか、を確認するのはどうすればいいでしょうか? • 冒頭のレンタルサービスをベースに考えてみましょう

    e.g. • 本(物理)のレンタルサービス • 本が存在すればレンタルすることはできる 本 レンタル
  4. What do you need to do? • どうしたいかの期待値と比較して本当にやりたいことが叶っているかを確認するこ とが重要なのです •

    テストは色々あるけれど、今回は状態に着目した状態遷移テストのみに触れていき ます 本 レンタル レンタルボタンを押す
  5. Why statement testing? 状態遷移テストがなぜ必要なのか、について理解していきましょう • 状態には3つの種類があります ◦ 部位 ◦ 処理

    ◦ モード • レンタルサイトで考えてみましょう ◦ レンタルサイトを構成している「もの(本)」の状態 ◦ レンタルサイトで動いている「処理(レンタル)」の状態 ◦ レンタルサイトを全体の「モード(全体として動いているか)」の状態 • どういうものが浮かびました?
  6. Statement testing - State Transition Diagram • いろいろな状態が存在しますが、このような状態を図にすることでイベントと状態の 関連性をわかりやすくします •

    図はわかりやすくすることが大事なので、システム全体を図にして大きくなりすぎる と見づらいので、機能やドメイン単位など、適切な単位に切っておこなうのがおすす めです
  7. Statement testing - State Transition Diagram • ではこれで終わりでしょうか? • いいえ、そんなことありません

    • これだけではテストはできません • 先程の図をベースにもう少し掘り下げてみましょう
  8. Statement testing - State Transition Diagram • 他にはレンタル中にできるものはないでしょうか? • また、レンタル中に返品することや、レンタル前にキャンセルすることは?

    • こういった状態同士を結びつけるイベントの組み合わせて テストケースを作成することができます 遷移前の状態 発生させるイベント 期待される結果 在庫 レンタルボタン click レンタル中になる レンタル中 レンタルキャンセル 在庫に戻る
  9. Statement testing - State Transition Table • さて、これでやりたいことが叶っているかはわかったからテストは十分でしょう • なんてことはありません

    • できないはずのことの確認ができてないですよね? • これをテストするために「状態遷移表」というものがあります
  10. Statement testing - State Transition Table • 状態遷移表は「状態」と「イベント」を組み合わせた表です • ↓は「状態

    x イベント」表をサンプルにしてます • 「ー」でどこにも遷移しないといことを示します • 「できるはずのこと」と「できないはずのこと」を確認することができます レンタルボタンclick 返却 天日干しする 在庫 レンタル中 ー 清掃 レンタル中 ー 清掃 ー 清掃 ー ー 在庫