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

やってみよう状態遷移テスト #xpjug

imtnd
September 21, 2019

やってみよう状態遷移テスト #xpjug

XP祭り 2019
やってみよう状態遷移テスト

imtnd

September 21, 2019
Tweet

More Decks by imtnd

Other Decks in Programming

Transcript

  1. ⾃⼰紹介 • ⾓⽥ 俊 • ソフトウェア開発者 • XP⼤好き • XP祭りは5回⽬の参加

    • コミュニティ活動 • WACATE実⾏委員 • NaITE(⻑崎IT技術者会)運営委員
  2. ⽬次 • テスト技法について • モデルについて • 状態遷移テスト • 状態遷移図 •

    状態遷移表 • 演習 • 状態遷移テスト • 演習 • まとめ
  3. 品質良くソフトウェアを作るには 要件定義 基本設計 実装 単体テスト 統合テスト 詳細設計 システムテスト 受け⼊れテスト 設計⼯程

    テスト⼯程 設計⼯程でどういったテストがされるのかを予め知っておけば テスト⼯程で⾒つかる⽋陥を設計⼯程で事前に排除することが可能
  4. 状態遷移図とは • ソフトウェアの動作を整理することが出来るダイアグ アラム • システムの状態と状態の遷移を表現する • 状態遷移図を作成することで、ステータスと遷移する イベントを整理することができる •

    UML2では” State Machine Diagram” ※ 本セッションでは、UMLでの厳密な記述⽅法は取り上げません • システムの振る舞いやデータの状態の整理する際に有 効
  5. より良い状態遷移図を書くコツ • 状態 • 隠れた状態に注意する • 状態遷移中の状態などは⼀つの状態として定義するほうが良 い • 同じような状態でも遷移前の状態により処理が異なるよ

    うな場合は別状態とする • ⼀回⽬と2回⽬で同じイベントを受信しても動作が異なる場合 • イベント • システムが検知(受信)可能なモノのみをイベントとす る
  6. イベント 状態 電 源 ON 番 号 キ 押 下

    発 話 キ 押 下 [ 圏 内 ] 発 話 キ 押 下 [ 圏 外 ] 終 話 キ 押 下 着 信 あ り 電 話 相 ⼿ 終 話 キ 押 下 電 話 相 ⼿ 発 話 キ 押 下 切 断 完 了 ①初期状態 ②待機中 ③発信番号⼊⼒中 ④着信中 ⑤発信中 ⑥通話中 ⑦切断中
  7. イベント 状態 電 源 ON 番 号 キ 押 下

    発 話 キ 押 下 [ 圏 内 ] 発 話 キ 押 下 [ 圏 外 ] 終 話 キ 押 下 着 信 あ り 電 話 相 ⼿ 終 話 キ 押 下 電 話 相 ⼿ 発 話 キ 押 下 切 断 完 了 ①初期状態 ② ②待機中 ③発信番号⼊⼒中 ④着信中 ⑤発信中 ⑥通話中 ⑦切断中 該当する状態のときにイベントが発⽣した場合、 どの状態に遷移するのかを記載する
  8. イベント 状態 電 源 ON 番 号 キ 押 下

    発 話 キ 押 下 [ 圏 内 ] 発 話 キ 押 下 [ 圏 外 ] 終 話 キ 押 下 着 信 あ り 電 話 相 ⼿ 終 話 キ 押 下 電 話 相 ⼿ 発 話 キ 押 下 切 断 完 了 ①初期状態 ② ②待機中 ③発信番号⼊⼒中 ④着信中 ⑤発信中 ⑥通話中 ⑦切断中 イベントが受信不可(検知不可)のときは、 斜線で記載する
  9. イベント 状態 電 源 ON 番 号 キ 押 下

    発 話 キ 押 下 [ 圏 内 ] 発 話 キ 押 下 [ 圏 外 ] 終 話 キ 押 下 着 信 あ り 電 話 相 ⼿ 終 話 キ 押 下 電 話 相 ⼿ 発 話 キ 押 下 切 断 完 了 ①初期状態 ② ②待機中 ③ ー ③発信番号⼊⼒中 ④着信中 ⑤発信中 ⑥通話中 ⑦切断中 イベントが受信可能だが、 どこにも遷移しない場合はハイフンで記載する
  10. イベント 状態 電 源 ON 番 号 キ 押 下

    発 話 キ 押 下 [ 圏 内 ] 発 話 キ 押 下 [ 圏 外 ] 終 話 キ 押 下 着 信 あ り 電 話 相 ⼿ 終 話 キ 押 下 電 話 相 ⼿ 発 話 キ 押 下 切 断 完 了 ①初期状態 ② ②待機中 ③ ー ー ー ④ ③発信番号⼊⼒中 ③ ⑤ ② ? ? ④着信中 ー ⑥ ー ⑦ ? ? ー ⑤発信中 ー ー ー ? ? ⑦ ⑥ ⑥通話中 ー ー ー ⑦ ? ⑦ ー ⑦切断中 ー ー ー ー ー ー ー ②
  11. イベント 状態 電 源 ON 番 号 キ 押 下

    発 話 キ 押 下 [ 圏 内 ] 発 話 キ 押 下 [ 圏 外 ] 終 話 キ 押 下 着 信 あ り 電 話 相 ⼿ 終 話 キ 押 下 電 話 相 ⼿ 発 話 キ 押 下 切 断 完 了 ①初期状態 ② ②待機中 ③ ー ー ー ④ ③発信番号⼊⼒中 ③ ⑤ ② ? ? ④着信中 ー ⑥ ー ⑦ ? ? ー ⑤発信中 ー ー ー ? ? ⑦ ⑥ ⑥通話中 ー ー ー ⑦ ? ⑦ ー ⑦切断中 ー ー ー ー ー ー ー ② 状態遷移表で整理すると、 状態遷移図で検討不⾜や仕様不明なところが明確になる
  12. イベント 状態 電 源 ON 番 号 キ 押 下

    発 話 キ 押 下 [ 圏 内 ] 発 話 キ 押 下 [ 圏 外 ] 終 話 キ 押 下 着 信 あ り 電 話 相 ⼿ 終 話 キ 押 下 電 話 相 ⼿ 発 話 キ 押 下 切 断 完 了 ①初期状態 ② ②待機中 ③ ー ー ー ④ ③発信番号⼊⼒中 ③ ⑤ ② ② ④ ④着信中 ー ⑥ ー ⑦ ー ⑦ ー ⑤発信中 ー ー ー ⑦ ー ⑦ ⑥ ⑥通話中 ー ー ー ⑦ ー ⑦ ー ⑦切断中 ー ー ー ー ー ー ー ② 仕様を整理し、状態遷移図に反映させる (今回は着信中の着信などは無視することとする)
  13. イベント 状態 電 源 ON 番 号 キ 押 下

    発 話 キ 押 下 [ 圏 内 ] 発 話 キ 押 下 [ 圏 外 ] 終 話 キ 押 下 着 信 あ り 電 話 相 ⼿ 終 話 キ 押 下 電 話 相 ⼿ 発 話 キ 押 下 切 断 完 了 ①初期状態 ② ②待機中 ③ ー ー ー ④ ③発信番号⼊⼒中 ③ ⑤ ② ② ④ ④着信中 ー ⑥ ー ⑦ ー ⑦ ー ⑤発信中 ー ー ー ⑦ ー ⑦ ⑥ ⑥通話中 ー ー ー ⑦ ー ⑦ ー ⑦切断中 ー ー ー ー ー ー ー ② # 前提条件 試験内容 期待結果 1初期状態であること 電源ON 待機状態になること 2待機状態であること タイヤルボタン押下 発信者番号⼊⼒画⾯に遷移すること 3待機状態であること 発話キー押下[圏内] 無視されること