ことり「今回は、状態遷移。Webアプリとか携帯アプリとかだったらどの画面にいるかとか、オーディオ機器とかだったら再生中、停止中、早送り中とか、だいたいのシステムには状態があるよね」
穂乃果「イベントで何pt稼いだ、みたいなのも状態?」
ことり「点数によってシステムの動きが変わるなら状態だね」
ことり「システムは状態によって、発生し得るイベントとその結果が変わります。スクフェスの画面遷移の一部を見てみるね」
イベント | システム | ホーム | お知らせ一覧 | お知らせ | 曲選択 | ライブ |
---|---|---|---|---|---|---|
起動 | お知らせ一覧 | N/A | N/A | N/A | N/A | N/A |
× | N/A | N/A | ホーム | ホーム | N/A | N/A |
お知らせをタップ | N/A | N/A | お知らせ | N/A | N/A | N/A |
ホーム | N/A | N/A | N/A | N/A | ホーム | N/A |
back | N/A | N/A | N/A | お知らせ一覧 | N/A | N/A |
お知らせアイコンをタップ | N/A | お知らせ一覧 | N/A | N/A | N/A | N/A |
曲を選択 | N/A | N/A | N/A | N/A | ライブ | N/A |
ライブ終了 | N/A | N/A | N/A | N/A | N/A | 曲選択 |
ホームキー | N/A | システム | システム | システム | システム | システム |
ことり「実際、スクフェスの状態遷移はもっとたくさんあるから、ほんの一部を抜き出しただけだけど・・・」
花陽「どうやって見ればいいのかな?」
ことり「左がイベント、この場合は操作。上が状態、この場合は画面。状態とイベントの交点を見ると、次にどの状態に遷移するべきかが書かれてるの」
穂乃果「お知らせ一覧と×の交点を見るとホームになってて、あれは確か・・・そっか、右上の×ボタン押すとホーム画面に行くよね」
ことり「そうそう、そんな感じ。N/Aはあり得ないパターンで、×ボタンはホーム画面には付いてないから、ホームで×は押せない。だからN/A」
花陽「システムっていうのは?」
ことり「システムは、ここではAndroidとかiOSのこと。要は、スクフェスが起動してない状態だね」
花陽「そっか、起動と終了のテストも入るんだ・・・」
ことり「この状態遷移表を見ていけば、GUIとか通信プロトコルのテストでは高い効果を発揮します。ただし、デシジョンテーブルと同じで状態やイベントの数が多くなると扱いきれなくなっちゃう」
穂乃果「スクフェスの状態遷移表を本気で書いたらどのくらいになるのかな?」
ことり「わかんないけど、多分縦横にそれぞれ数倍かな・・・最初に穂乃果ちゃんが言ってたスコアとかも状態に含めると、もう書ける分量じゃないかも」
穂乃果「うわあ・・・」
ことり「次回はユースケーステスト。これは考え方は難しくないと思うな」
穂乃果「お、それは不思議とやる気が湧いてくる」
花陽「穂乃果ちゃん、やる気出す場所間違ってるよ」
ことり「でも、実際に設計しようとすると1番悩むところだけどね」
穂乃果「はうぅ」
花陽「世の中甘くないのです」