• ホーム
  • 品質向上Blog
  • 状態遷移表とは?状態遷移図との違いは?開発における利点や書き方のコツを解説

状態遷移表とは?状態遷移図との違いは?開発における利点や書き方のコツを解説

ソフトウェアテスト

開発の質を高めるツール「状態遷移表」とは

まず「状態遷移テスト」とは、イベントによって設計仕様どおりに、
ソフトウェアの状態が変化することを確かめるテストのことをいいます。

そして、このテストの時に活用するのが「状態遷移表」です。
システムに何らかのイベントがある場合に、状態がどのように変化するかを表で示したものです。

各状態の遷移ごと、また状態とイベントの掛け合わせごとに表形式で表します。

仕様を整理することで、より深く製品の仕様を把握することができ、テストの漏れ抜けを防止することができます。
全ての状態とイベントの組合せを網羅でき、想定しないイベントの対処も確認が可能です。
結果として「状態遷移表」の活用は、開発の質を高めます。

状態

状態遷移表では、遷移が発生しない「状態」と「イベント」の組み合わせを把握できます。

状態遷移とは、ある「状態」から異なる状態に変化することを指します。
状態遷移表では、縦軸で「状態」を表します(逆のケースも存在します)。

DVDプレイヤー操作画面の状態遷移表を例に挙げると、
「停止中」「再生中」「早送り中」など、現在の状態を示します。

イベント

つぎに、ある状態が異なる状態に変化する、きっかけを「イベント」と呼びます。
状態遷移表では、横軸で「イベント」を表します(逆のケースも存在します)。

前項と同じくDVDプレイヤー操作画面の状態遷移表を例に挙げると、
「再生ボタンが押された」「停止ボタンが押された」「早戻しボタンが離された」など、遷移を発生させるイベントを記述します。

qs_cta-btn_700-150.pngのサムネイル画像

状態遷移表のサンプル例

先述した通り、状態遷移表は「状態」と「イベント」を表形式でまとめたものです。

状態遷移表では、遷移が発生しない「状態」と「イベント」の組み合わせ
(上図では"-"になっている箇所)も把握することができます。

設計で想定していない状態とイベントの組み合わせは、何が起こるか開発者も分からないことが多いため、あらかじめ設計時に想定されたイベントよりもバグが潜みやすい部分となっています。

そのようなバグを検出できるテストを実施するために、状態遷移表は非常に効果的です。

状態遷移図(UMLステートマシン図)との違い

状態遷移表に似ている言葉に「状態遷移図(UMLステートマシン図)」があります。
状態遷移図と状態遷移表は、共に同様の情報を提供する記法ですが、図と表では見えるものが異なります。

それぞれの特徴は以下の通りです。

  • 状態遷移図
    システムの全体像、一連の流れを理解しやすい
  • 状態遷移表
    全ての状態とイベントの組合せを網羅でき、図では見えない、且つ想定しないイベントの対処も確認できる

下記は状態遷移図のイメージです。

状態遷移図はシステム全体を俯瞰で確認できますが、状態ごとのイベントの処理方法は分かりにくいです。
これに対して状態遷移表は、状態ごとのイベントの処理方法を網羅的に表せます。

このように、状態遷移図は全体を俯瞰するのに役立ち、
状態遷移表は各状態の動きを細かく漏らさず確認するのに役立ちます。

どちらか一方ではなく両方を作成し活用する

状態遷移図と状態遷移表はどちらか片方ではなく、両方作成して活用することをおすすめします。

それぞれ「出来ること」「出来ないこと」が異なるため、目的によって使い分け、
場合により相互補完的に利用していくと、効果的に活用できます。

状態遷移図と状態遷移表をどちらも利用することによって、状態遷移の全体の流れの把握、開発仕様書の抜け漏れの防止を行うことができます。それぞれの特徴をいかして、テスト設計に取り入れてみると良いでしょう。

qs_cta-btn_700-150.pngのサムネイル画像

状態遷移表を作成するメリット

状態遷移表を作成するメリットとして下記の2点が挙げられます。

  • 仕様の全体像を把握しやすい
  • 開発における抜け・漏れが発生しにくくなる

それぞれ事項で詳しく解説します。

仕様の全体像を把握しやすい

仕様の全体を感覚的に掴める状態遷移図に対し、細部にまで漏れなく拾いあげてくれるのが状態遷移表です。

状態遷移表は表で整理されたものであるため、状態遷移図に比べ、仕様の全体像を理解しやすくなります。仕様で盛り込んでいないこと、起こると想定されていないことまでチェックできる点が状態遷移表の大きなメリットといえます。

正しく動作しているか、間違った動作がないか、状態遷移図と状態遷移表を組み合わせることで相互補完が可能になります。

開発における抜け・漏れが発生しにくくなる

「漏れ」が無いようにパターンを始めに全て出すため作成するのが状態遷移表です。
想定されるすべての状態とイベントを項目に当てはめ、網羅的に遷移した先を記入していきます。

また、状態遷移表を開発に携わるメンバー間で共有することで、状態やイベントを整理でき、開発における「抜け」や「漏れ」が発生しにくくなるという利点があります。

後で不具合が発覚してしまうと、余計な手戻りコストが発生し、開発効率が低下します。
そうならない為にも、設計の初期段階で状態遷移表を作成しすべての項目を確認していくことが重要です。

状態遷移表の書き方とコツ

状態遷移表は、すべてのイベントとそれに対応する状態をもれなく記載することが大切です。
縦軸にイベント、横軸に状態を入れて作ります。

テレビの電源がOFFの状態でリモコンの電源ボタンを押すと電源がONになり、もう一度ボタンを押すと電源がOFFになる場合を例に挙げていきます。

「電源ボタンを押下」というイベントに対し、それによって起こる遷移である「ON」「OFF」の状態を上図のように書くことになります。

また、状態遷移表を作成する段階で「できないこと」を“見える化”しておくことで、余分な作業が減り、開発も効率的に行うことができます。

すべての「状態」、すべての「イベント」を網羅的に書き出すことが大切です。
項目が抜けていたり、漏れていたりすることがない良質な設計を目指しましょう。

まとめ

状態管理表をマスターすることができれば、手戻りを防いでムダなコストや時間が生じるのを防止できます。

状態遷移図と状態遷移表を組み合わせて利用することにより、状態遷移の全体の流れを把握でき、開発仕様書の抜け漏れをなくすことが可能です。
それぞれの特徴を理解して、ソフトウェアのテスト設計に取り入れてみてはいかがでしょうか。

qs_cta-btn_700-150.pngのサムネイル画像

この記事を書いた人

テクバンは様々なICT導入を進めることにより顧客のDXを推進し売上、業務改善を推し進めます。

同じカテゴリーの記事

ソフトウェアテスト/
テスト自動化を行う
テクバンとは

  • ヒアリング
    コンサルティング

    当社在籍のコンサルタントが徹底したヒアリングを実施。現状の課題や製品特性を洗い出します。お客様の問題解決・品質向上へ向け。効果的なサービスをご提案します。

  • システム開発・アプリ導入
    インフラ環境設備

    要件定義に基づき、1,000名ほどのエンジニアから案件に合った最適な人員をアサインします。開発からアプリ導入、インフラ設備、品質保証まで全てお任せください。

  • 運用・サポート

    サービス導⼊後に発⽣するシステム運⽤やサポートなども、専⾨企業ならではの⾼いスキルで安定運⽤を実現。お客様企業にて運⽤が定着化するまでご⽀援いたします。

保有資格
  • Adobe Partner Connection リセラープログラム レジスタード
  • Cisco認定
    プレミアパートナー
  • Oracle PartnerNetwork SELL /
    LICENSE & HARDWARE
  • Microsoft Gold
    コンピテンシーパートナー
  • VMware Partner Connect Principal
  • ソフトウェアテストの内容が知りたい
  • テスト自動化の仕組みが知りたい
資料ダウンロード
ソフトウェアテストやテスト自動化の最新情報をダウンロードできます
PDF資料にて当社のサービスメニュー、当社ご紹介資料もございます
ソフトウェアテスト
テスト自動化
品質向上BLOG