UMLモデルからテストケースを作ろう

2010年9月21日(火)
中原 慶

3. ステートマシン図の抜け漏れを確認し、情報を洗練する

図2のステートマシン図は、イベントに対するタスク・オブジェクトの状態遷移を表しています。「付箋によるタスク管理」をソフトウエアとして実現した場合、完成したソフトウエアのタスク・オブジェクトは、図2で表した状態遷移の通りに動作しなければなりません。

もし、ステートマシン図で表した情報に過不足や誤りがあると、期待通りに動作しないソフトウエアができあがってしまいます。そのため、ステートマシン図で表した情報に抜け漏れがないことを確認し、情報を洗練する必要があります。その手段として、状態遷移表を用いる方法があります。状態遷移表とは、状態とイベントの相互関係を表した表です。図3が、図 2のステートマシン図をもとに作成した状態遷移表です。

図3:タスク・オブジェクトの状態遷移表(クリックで拡大)

状態遷移表には大きく分けて2種類あります。1つは、縦軸、横軸にそれぞれすべての「状態」を記述した表です(図3上部の表)。

縦軸を現状態、横軸を次状態(現状態から1回遷移した状態)として、縦軸と横軸が交差するセルにイベントを記述します。この表を用いて、オブジェクトの状態遷移に抜け漏れがないことを確認できます。図3の上部の表では、現状態から次状態へ遷移するイベントがないことを「-」で表しています。

なお、先述の通り、終了状態(破棄する)に遷移できるのはDONE状態だけです。この表から、DONE状態以外の状態から終了状態へ遷移するイベントがないことを確認できます。

もう1つは、縦軸に全ての「状態」、横軸に全ての「イベント」を記述した表です(図3下部の表)。

縦軸と横軸が交差するセルには、縦軸の状態において横軸のイベントが起こった場合に、遷移する先の状態を記述します。この表で、縦軸の状態において横軸のイベントが「遷移を引き起こす」のか、「起こり得ない」のか、または「起こっても無視する」のか、を明確にできます。

このように、状態とイベントの対応関係を明確にすることで、ステートマシン図の情報を補足することができます。そして、実装したソフトウエアを対象に、例えば「起こっても無視する」としたイベントが該当の状態において確かに無視されることを、確認する必要があります。

図3の下部の表では、「起こり得ない」イベントを「×」、「起こっても無視する」イベントを「-」で表しています。

なお、「破棄する」イベントを受理するのは、先ほどと同じくDONE状態だけですので、それ以外の状態では「起こっても無視する(-)」としています。

株式会社チェンジビジョン

生年月日: 1977年1月6日 大阪市出身。ソフトハウスにて大規模データベースシステムからCTIシステム、WEBシステム等、多種多様なシステム開発に従事する。しかし、次々に登場する理想的な技術と、実際の開発現場で使われる技術に温度差を感じる。そして、自分自身がよりよい技術を実際の開発現場に浸透させる橋渡しなろうと考え、株式会社豆蔵に入社。現在は、株式会社チェンジビジョンにて、理想的なコンセプトを現場に浸透させるためのツール開発に従事している。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています