状態遷移テストの例
⚡ スマートサマリー
状態遷移テストは、入力条件の変化に応じてアプリケーションがどのように状態間を遷移するかを検証するブラックボックス手法です。このチュートリアルでは、図の4つの構成要素、状態図と状態表の違い、そしてテスター向けのATMとログインの具体的な例について説明します。
状態遷移テストとは何ですか?
状態遷移テスト これはブラックボックステスト手法の一つで、入力条件の変化によってテスト対象アプリケーション(AUT)の状態変化や出力変化が生じる仕組みです。様々な入力条件におけるアプリケーションの動作を分析するのに役立ち、テスターはシステムの動作を記録しながら、正負両方の入力値を与えることができます。
これは、システムとテストが構築されているモデルに基づいています。入力が同じでも、その前の出来事に応じて出力が異なるシステムはすべて有限状態システムです。状態遷移テスト手法は、次のような場合に役立ちます。 さまざまなシステム遷移をテストする.
状態遷移テストを使用するタイミング
- テスターが限られた入力値のセットに対してアプリケーションをテストする場合。
- テスターがテスト対象アプリケーション(AUT)内で発生する一連のイベントをテストする場合、一連の入力値に対するアプリケーションの動作を確認できます。
- テスト対象システムが過去のイベントや値に依存している場合。
状態遷移テストに頼るべきでない場合
- 連続した入力の組み合わせに対してテストが行われていない場合。
- テストが探索的テストなど、異なる機能を対象とする場合。
状態遷移図の4つの構成要素
状態遷移モデルは、以下に説明する4つの主要な構成要素から成り立っています。
1) 州 ソフトウェアが到達する可能性のある範囲。
2) 移行 ある州から別の州へ。
3)イベント ファイルを閉じたり、お金を引き出したりするなど、何らかの遷移を引き起こすもの。
4) アクション エラーメッセージや現金を受け取るなど、何らかの遷移の結果として生じるもの。
状態遷移図と状態遷移表
状態遷移を表現または設計する方法には、主に2つの方法があります。状態遷移図と状態遷移表です。
| 側面 | 状態遷移図 | 状態遷移表 |
|---|---|---|
| とも呼ばれている | 州別チャート/グラフ | 状態テーブル |
| 表現 | Box状態を表す記号(es)、遷移を表す矢印(arrows) | 状態(行)とイベント(列)のグリッド |
| 識別に最適 | 有効な遷移 | 無効な遷移 |
| 各セルには | - | 出来事が発生した後に到達する状態 |
状態遷移を行う方法(例)
例1:ATMの暗証番号ロックアウト
ATMシステムの機能として、ユーザーが無効なパスワードを3回入力すると、アカウントがロックされるという機能を考えてみましょう。
このシステムでは、ユーザーが最初の3回の試行で有効なパスワードを入力すれば、ログインに成功します。1回目または2回目の試行で無効なパスワードを入力した場合、パスワードの再入力を求められます。そして、3回目の試行でも誤ったパスワードを入力すると、アカウントがブロックされます。
状態遷移図(例1)
図に示すように、ユーザーが正しいPINを入力すると、「アクセス許可」状態に移行します。間違ったパスワードを入力すると、次の試行に進み、3回目に同じ間違いをすると、「アカウントブロック」状態になります。
状態遷移表(例1)
| 州/地域 | 正しいPIN | 間違った暗証番号 |
|---|---|---|
| S1) 開始 | S5 | S2 |
| S2) 1回目の試み | S5 | S3 |
| S3) 2回目の試み | S5 | S4 |
| S4) 3回目の試み | S5 | S6 |
| S5) アクセスが許可されました | – | – |
| S6) アカウントがブロックされました | – | – |
表に示すように、ユーザーが正しいPINを入力すると、状態はS5(アクセス許可)に遷移します。ユーザーが間違ったパスワードを入力すると、次の状態に移行し、3回目の誤入力でアカウントがブロックされます。
例2:フライト予約ログイン
フライト予約のログイン画面では、正しいエージェント名とパスワードを入力してアクセスする必要があります。 航空券予約申し込み.
状態遷移グラフ
このアプリケーションでは3回までパスワードの入力を試行できます。4回目の試行でユーザーが間違ったパスワードを入力すると、システムはアプリケーションを自動的に終了します。
ステートグラフは、テストする有効な遷移を決定するのに役立ちます。正しいパスワードと間違ったパスワードの両方でテストすることは必須であり、 テストシナリオ2回目、3回目、4回目のログイン試行をそれぞれテストできます。無効なシステム遷移を特定するには、状態テーブルを使用できます。
状態テーブルでは、有効な状態がすべて左側に一覧表示され、それらの状態を引き起こすイベントが上部に表示されます。各セルには、イベントが発生したときにシステムが遷移する状態が表示されます。たとえば、状態S1では、正しいパスワードを入力するとS6(アクセス許可)に遷移し、最初の試行で間違ったパスワードを入力するとS3(2回目の試行)に遷移します。同様に、他のすべての状態も特定できます。
この方法では、2つの無効な状態が強調表示されます。例えば、S6状態(既にログイン済み)で、別のフライト予約インスタンスを開き、同じエージェントのパスワードを入力した場合を考えてみましょう。このようなシナリオにおけるシステムの応答をテストする必要があります。
状態遷移技術の長所と短所
| 優位性 | デメリット |
|---|---|
| システムの動作を図式または表形式で表現し、ヘルプを提供します。ping テスターはシステムを効果的に理解し、網羅する。 | 常に信頼できるとは限らない。例えば、有限でないシステムや逐次処理ではないシステムには適さない。 |
| テスターがすべての条件が満たされていること、および結果が正しく取得されていることを確認できるようにする。 | すべての可能な状態を定義する必要がある。これは小規模なシステムでは有効だが、状態数が指数関数的に増加するため、大規模なシステムでは破綻する。 |






