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

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

4c179cd6250ba8459f278a1440d7f610?s=47 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

4c179cd6250ba8459f278a1440d7f610?s=128

dach

August 26, 2021
Tweet

More Decks by dach

Other Decks in Technology

Transcript

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

  2. What speak?

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

    • 本(物理)のレンタルサービス • 本が存在すればレンタルすることはできる 本 レンタル
  4. Today’s goal 「状態遷移テスト」について完全に理解する

  5. Who is me? EasyEasy icon チキン南蛮 VRM ID: @dach JOB:

    Eng / PM Hobby: カイゼン Twitter: i-dach qiita: i-dach
  6. Learn Statement Testing

  7. • testってそもそも何でしょう? • テストすると何が嬉しい? • 欠陥を見つけるため?品質をあげるため? • テストをすると欠陥が見つかる?品質が上がる? Why do

    you test?
  8. IEEE 610.12-1990 Standard Glossary of Software Engineering Terminology ある特定の条件下でシステムまたはコンポーネントを操作するプロセスであり、その結 果を観察または記録して、システムまたはコンポーネントのある側面を評価すること

    (和訳引用:ソフトウェアテストの教科書 著:石原一宏|田中英和) 本質的には 「本当はこれってどうあるべきなの?」 を比較するプロセスである
  9. What do you need to do? • どうあるべきか、を確認するのはどうすればいいでしょうか? • 冒頭のレンタルサービスをベースに考えてみましょう

    e.g. • 本(物理)のレンタルサービス • 本が存在すればレンタルすることはできる 本 レンタル
  10. What do you need to do? • こうしたい、ということはわかりますが、それ以上はどうでしょう? • なんとなくはイメージが浮かぶかもしれないですが、他の人も同じ考えでしょうか?

    本 レンタル レジに持っていく 本 レンタル レンタルボタンを押す
  11. What do you need to do? • どうしたいかの期待値と比較して本当にやりたいことが叶っているかを確認するこ とが重要なのです •

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

    ◦ モード • レンタルサイトで考えてみましょう ◦ レンタルサイトを構成している「もの(本)」の状態 ◦ レンタルサイトで動いている「処理(レンタル)」の状態 ◦ レンタルサイトを全体の「モード(全体として動いているか)」の状態 • どういうものが浮かびました?
  13. Statement testing - State Transition Diagram • 図をみて全体を把握できるようにしましょう • まずは簡易版を作ります

  14. Statement testing - State Transition Diagram • いろいろな状態が存在しますが、このような状態を図にすることでイベントと状態の 関連性をわかりやすくします •

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

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

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

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

    x イベント」表をサンプルにしてます • 「ー」でどこにも遷移しないといことを示します • 「できるはずのこと」と「できないはずのこと」を確認することができます レンタルボタンclick 返却 天日干しする 在庫 レンタル中 ー 清掃 レンタル中 ー 清掃 ー 清掃 ー ー 在庫
  19. +@ ドキュメントをどう作ればいいかのPrincipalについては↓Blogにありますので、参考にし ていただければ Belong TechTalk 2021Q2 Greatest Hits

  20. Conclusion

  21. Conclusion • テストとは「本当はこれってどうあるべきなの?」を比較するプロセスである • 状態遷移図は「できてほしいこと」を確認するのに使える • 状態遷移表は「できないはずのこと」を確認するのに使える

  22. Thanks