状態遷移テスト – 図と手法 (例)

状態遷移テストとは何ですか?

状態遷移テスト 入力条件の変更によってテスト対象アプリケーション (AUT) の状態または出力が変化するブラック ボックス テスト手法です。状態遷移テストは、さまざまな入力条件でのアプリケーションの動作を分析するのに役立ちます。テスターは、正と負の入力テスト値を提供し、システムの動作を記録できます。

これは、システムとテストのベースとなるモデルです。 以前に何が起こったかに応じて、同じ入力に対して異なる出力が得られるシステムは、有限状態システムです。

状態遷移テスト手法 必要な場合に役立ちます さまざまなシステム遷移をテストします。

状態遷移をいつ使用するか?

  • これは、テスターが入力値の有限セットに対してアプリケーションをテストするときに使用できます。
  • テスターがテスト対象のアプリケーションで発生する一連のイベントをテストしようとしているとき。 つまり、これによりテスターは一連の入力値に対するアプリケーションの動作をテストできるようになります。
  • テスト対象のシステムが過去のイベント/値に依存している場合。

状態遷移に依存しない場合は?

  • 連続した入力の組み合わせに対してテストが行​​われていない場合。
  • 探索的テストなど、さまざまな機能に対してテストを実行する場合

状態遷移図の XNUMX つの部分

状態遷移モデルには以下の 4 つの主要なコンポーネントがあります。

1) 州 ソフトウェアが取得する可能性のあるもの

米国

2) 移行 ある州から別の州へ

トランジション

3)イベント ファイルを閉じたり、お金を引き出すなどの遷移の起源

イベント

4) アクション 遷移 (エラー メッセージまたは現金の授与) の結果として発生するもの。

状態遷移図と状態遷移表

状態遷移を表現または設計するには、状態遷移図と状態遷移テーブルという XNUMX つの主な方法があります。

状態遷移図では、状態はボックス内のテキストで示され、遷移は矢印で表されます。これは状態チャートまたはグラフとも呼ばれます。有効な遷移を識別するのに役立ちます。

状態遷移表では、すべての状態が左側にリストされ、イベントが上部に記述されます。 テーブル内の各セルは、イベント発生後のシステムの状態を表します。 状態テーブルとも呼ばれます。 これは、無効な遷移を識別するのに役立ちます。

状態遷移のやり方(状態遷移例)

例1:

ユーザーが無効なパスワードを XNUMX 回入力するとアカウントがロックされる ATM システム機能を考えてみましょう。

このシステムでは、ユーザーが最初の 3 回の試行のいずれかで有効なパスワードを入力すると、ログインに成功します。 ユーザーが XNUMX 回目または XNUMX 回目に無効なパスワードを入力した場合、ユーザーはパスワードの再入力を求められます。 最後に、ユーザーが間違ったパスワードを入力した場合 XNUMXrd 時間が経つと、アカウントはブロックされます。

状態遷移図

状態遷移図

図では、ユーザーが正しい PIN を入力するとアクセス許可状態に移行し、間違ったパスワードを入力すると次の試行に移行し、3 番目のパスワードでも同じことを行うと、次の試行に移行します。rd アカウントがブロックされた状態に達したとき。

状態遷移表

正しいPIN 間違った暗証番号
S1) 開始 S5 S2
S2) 1st 試み S5 S3
S3) 2nd 試み S5 S4
S4) 3rd 試み S5 S6
S5) アクセスが許可されました
S6) アカウントがブロックされました

テーブルでは、ユーザーが正しい PIN を入力すると、状態はアクセスが許可された S5 に遷移します。 ユーザーが間違ったパスワードを入力すると、次の状態に移行します。 彼が同じことをしたら 3rd 時間が経つと、アカウントがブロックされた状態になります。

例2:

以下の例を参照する前に、この状態遷移テストのビデオを確認してください。

クリック こちら ビデオにアクセスできない場合

フライト予約のログイン画面では、正しいエージェント名とパスワードを入力してアクセスする必要があることを考慮してください。 航空券予約申し込み.

状態遷移グラフ
状態遷移グラフ

正しいパスワードとログイン名を使用してアプリケーションにアクセスできますが、間違ったパスワードを入力した場合はどうなるでしょうか。

アプリケーションでは 4 回の試行が許可されており、ユーザーが XNUMX 回目の試行で間違ったパスワードを入力すると、システムはアプリケーションを自動的に終了します。

状態グラフは、テストする有効な遷移を決定するのに役立ちます。 この場合、正しいパスワードを使用した場合と間違ったパスワードを使用した場合のテストが必須になります。 のために テストシナリオ、2にログインnd、3rd そして、4th 誰でも検査できるかもしれないので試してみてください。

状態テーブルを使用して、無効なシステム遷移を判断できます。

状態遷移表

状態テーブルでは、すべての有効な状態がテーブルの左側にリストされ、それらの状態を引き起こすイベントが上部にリストされます。

各セルは、対応するイベントが発生したときにシステムが移行する状態を表します。

たとえば、S1 状態で正しいパスワードを入力すると、S6 (アクセス許可) 状態になります。 最初の試行で間違ったパスワードを入力した場合、S3 または 2 回目の試行が表示されるとします。

同様に、他のすべての状態を決定することもできます。

この方法を使用すると、6 つの無効な状態が強調表示されます。 状態 SXNUMX、つまりアプリケーションにすでにログインしており、フライト予約の別のインスタンスを開いて、同じエージェントに対して有効または無効なパスワードを入力したとします。 このようなシナリオに対するシステムの応答をテストする必要があります。

状態遷移技術の長所と短所

Advantages デメリット
このテスト手法では、システムの動作を図または表で表現し、テスターがシステムの動作を効果的にカバーして理解できるようにします。 このテスト手法の主な欠点は、毎回この手法に頼ることができないことです。 たとえば、システムが有限システムではない (連続した順序ではない) 場合、この手法は使用できません。
このテストを使用することで、テクニックテスターはすべての条件がカバーされていることを確認し、結果を取得できます。 もう XNUMX つの欠点は、システムの考えられるすべての状態を定義する必要があることです。 これは小規模なシステムでは問題ありませんが、状態の数が指数関数的に増加するため、すぐに大規模なシステムに崩壊します。

まとめ

  • 状態遷移テストは、入力条件の変化によってテスト対象のアプリケーションの状態が変化するテスト手法として定義されます。
  • In ソフトウエアエンジニアリング, 状態遷移テスト手法は、さまざまなシステム遷移をテストする必要がある場合に役立ちます。
  • 状態遷移を表現または設計する主な方法は、状態遷移図と状態遷移テーブルの XNUMX つです。
  • 状態遷移図では、状態はボックス内のテキストで表示され、遷移は矢印で表されます。
  • 状態遷移表では、すべての状態が左側にリストされ、イベントが上部に記述されます。
  • このテスト手法の主な利点は、システムの動作を図または表で表現できるため、テスターがシステムの動作を効率的にカバーして理解できることです。
  • このテスト手法の主な欠点は、毎回この手法に頼ることができないことです。