参考資料
【この1冊でよくわかる】ソフトウェアテストの教科書―品質を決定づけるテスト工程の基本と実践 https://bookwalker.jp/debeea0911-cc67-458e-a428-f98505108475/
はじめて学ぶソフトウェアのテスト技法 リー コープランド https://www.amazon.co.jp/dp/B00HE8082Q/ref=cm_sw_r_tw_dp_1FMK6XPZ853TD86AEZWV
状態遷移テスト完全に理解しよう@dach
View Slide
What speak?
Do you know what state transitions this system makes?e.g.● 本(物理)のレンタルサービス● 本が存在すればレンタルすることはできる本 レンタル
Today’s goal「状態遷移テスト」について完全に理解する
Who is me?EasyEasy icon チキン南蛮VRMID: @dachJOB: Eng / PMHobby: カイゼンTwitter: i-dachqiita: i-dach
Learn Statement Testing
● testってそもそも何でしょう?● テストすると何が嬉しい?● 欠陥を見つけるため?品質をあげるため?● テストをすると欠陥が見つかる?品質が上がる?Why do you test?
IEEE 610.12-1990Standard Glossary of Software Engineering Terminologyある特定の条件下でシステムまたはコンポーネントを操作するプロセスであり、その結果を観察または記録して、システムまたはコンポーネントのある側面を評価すること(和訳引用:ソフトウェアテストの教科書 著:石原一宏|田中英和)本質的には「本当はこれってどうあるべきなの?」を比較するプロセスである
What do you need to do?● どうあるべきか、を確認するのはどうすればいいでしょうか?● 冒頭のレンタルサービスをベースに考えてみましょうe.g.● 本(物理)のレンタルサービス● 本が存在すればレンタルすることはできる本 レンタル
What do you need to do?● こうしたい、ということはわかりますが、それ以上はどうでしょう?● なんとなくはイメージが浮かぶかもしれないですが、他の人も同じ考えでしょうか?本 レンタルレジに持っていく本 レンタルレンタルボタンを押す
What do you need to do?● どうしたいかの期待値と比較して本当にやりたいことが叶っているかを確認することが重要なのです● テストは色々あるけれど、今回は状態に着目した状態遷移テストのみに触れていきます本 レンタルレンタルボタンを押す
Why statement testing?状態遷移テストがなぜ必要なのか、について理解していきましょう● 状態には3つの種類があります○ 部位○ 処理○ モード● レンタルサイトで考えてみましょう○ レンタルサイトを構成している「もの(本)」の状態○ レンタルサイトで動いている「処理(レンタル)」の状態○ レンタルサイトを全体の「モード(全体として動いているか)」の状態● どういうものが浮かびました?
Statement testing - State Transition Diagram● 図をみて全体を把握できるようにしましょう● まずは簡易版を作ります
Statement testing - State Transition Diagram● いろいろな状態が存在しますが、このような状態を図にすることでイベントと状態の関連性をわかりやすくします● 図はわかりやすくすることが大事なので、システム全体を図にして大きくなりすぎると見づらいので、機能やドメイン単位など、適切な単位に切っておこなうのがおすすめです
Statement testing - State Transition Diagram● ではこれで終わりでしょうか?● いいえ、そんなことありません● これだけではテストはできません● 先程の図をベースにもう少し掘り下げてみましょう
Statement testing - State Transition Diagram● 他にはレンタル中にできるものはないでしょうか?● また、レンタル中に返品することや、レンタル前にキャンセルすることは?● こういった状態同士を結びつけるイベントの組み合わせてテストケースを作成することができます遷移前の状態 発生させるイベント 期待される結果在庫 レンタルボタン click レンタル中になるレンタル中 レンタルキャンセル 在庫に戻る
Statement testing - State Transition Table● さて、これでやりたいことが叶っているかはわかったからテストは十分でしょう● なんてことはありません● できないはずのことの確認ができてないですよね?● これをテストするために「状態遷移表」というものがあります
Statement testing - State Transition Table● 状態遷移表は「状態」と「イベント」を組み合わせた表です● ↓は「状態 x イベント」表をサンプルにしてます● 「ー」でどこにも遷移しないといことを示します● 「できるはずのこと」と「できないはずのこと」を確認することができますレンタルボタンclick 返却 天日干しする在庫 レンタル中 ー 清掃レンタル中 ー 清掃 ー清掃 ー ー 在庫
+@ドキュメントをどう作ればいいかのPrincipalについては↓Blogにありますので、参考にしていただければBelong TechTalk 2021Q2 Greatest Hits
Conclusion
Conclusion● テストとは「本当はこれってどうあるべきなの?」を比較するプロセスである● 状態遷移図は「できてほしいこと」を確認するのに使える● 状態遷移表は「できないはずのこと」を確認するのに使える
Thanks