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

状態遷移テスト完全に理解しよう.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. 状態遷移テスト
    完全に理解しよう
    @dach

    View Slide

  2. What speak?

    View Slide

  3. Do you know what state transitions this system makes?
    e.g.
    ● 本(物理)のレンタルサービス
    ● 本が存在すればレンタルすることはできる
    本 レンタル

    View Slide

  4. Today’s goal
    「状態遷移テスト」について完全に理解する

    View Slide

  5. Who is me?
    EasyEasy icon チキン南蛮
    VRM
    ID: @dach
    JOB: Eng / PM
    Hobby: カイゼン
    Twitter: i-dach
    qiita: i-dach

    View Slide

  6. Learn Statement Testing

    View Slide

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

    View Slide

  8. IEEE 610.12-1990
    Standard Glossary of Software Engineering Terminology
    ある特定の条件下でシステムまたはコンポーネントを操作するプロセスであり、その結
    果を観察または記録して、システムまたはコンポーネントのある側面を評価すること
    (和訳引用:ソフトウェアテストの教科書 著:石原一宏|田中英和)
    本質的には
    「本当はこれってどうあるべきなの?」
    を比較するプロセスである

    View Slide

  9. What do you need to do?
    ● どうあるべきか、を確認するのはどうすればいいでしょうか?
    ● 冒頭のレンタルサービスをベースに考えてみましょう
    e.g.
    ● 本(物理)のレンタルサービス
    ● 本が存在すればレンタルすることはできる
    本 レンタル

    View Slide

  10. What do you need to do?
    ● こうしたい、ということはわかりますが、それ以上はどうでしょう?
    ● なんとなくはイメージが浮かぶかもしれないですが、他の人も同じ考えでしょうか?
    本 レンタル
    レジに持っていく
    本 レンタル
    レンタルボタンを押す

    View Slide

  11. What do you need to do?
    ● どうしたいかの期待値と比較して本当にやりたいことが叶っているかを確認するこ
    とが重要なのです
    ● テストは色々あるけれど、今回は状態に着目した状態遷移テストのみに触れていき
    ます
    本 レンタル
    レンタルボタンを押す

    View Slide

  12. Why statement testing?
    状態遷移テストがなぜ必要なのか、について理解していきましょう
    ● 状態には3つの種類があります
    ○ 部位
    ○ 処理
    ○ モード
    ● レンタルサイトで考えてみましょう
    ○ レンタルサイトを構成している「もの(本)」の状態
    ○ レンタルサイトで動いている「処理(レンタル)」の状態
    ○ レンタルサイトを全体の「モード(全体として動いているか)」の状態
    ● どういうものが浮かびました?

    View Slide

  13. Statement testing - State Transition Diagram
    ● 図をみて全体を把握できるようにしましょう
    ● まずは簡易版を作ります

    View Slide

  14. Statement testing - State Transition Diagram
    ● いろいろな状態が存在しますが、このような状態を図にすることでイベントと状態の
    関連性をわかりやすくします
    ● 図はわかりやすくすることが大事なので、システム全体を図にして大きくなりすぎる
    と見づらいので、機能やドメイン単位など、適切な単位に切っておこなうのがおすす
    めです

    View Slide

  15. Statement testing - State Transition Diagram
    ● ではこれで終わりでしょうか?
    ● いいえ、そんなことありません
    ● これだけではテストはできません
    ● 先程の図をベースにもう少し掘り下げてみましょう

    View Slide

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

    View Slide

  17. Statement testing - State Transition Table
    ● さて、これでやりたいことが叶っているかはわかったからテストは十分でしょう
    ● なんてことはありません
    ● できないはずのことの確認ができてないですよね?
    ● これをテストするために「状態遷移表」というものがあります

    View Slide

  18. Statement testing - State Transition Table
    ● 状態遷移表は「状態」と「イベント」を組み合わせた表です
    ● ↓は「状態 x イベント」表をサンプルにしてます
    ● 「ー」でどこにも遷移しないといことを示します
    ● 「できるはずのこと」と「できないはずのこと」を確認することができます
    レンタルボタンclick 返却 天日干しする
    在庫 レンタル中 ー 清掃
    レンタル中 ー 清掃 ー
    清掃 ー ー 在庫

    View Slide

  19. +@
    ドキュメントをどう作ればいいかのPrincipalについては↓Blogにありますので、参考にし
    ていただければ
    Belong TechTalk 2021Q2 Greatest Hits

    View Slide

  20. Conclusion

    View Slide

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

    View Slide

  22. Thanks

    View Slide