MBDエンジニアリング
サービス

TPTオートマトンを使ったテストケースの管理・実行

作成したテストステップリストに対して複数のパターンを容易に追加・作成

テストベクタの変更・追加におけるさまざまな課題のイメージテストベクタの変更・追加におけるさまざまな課題

テストステップリストを用いることで、テストケースを効率的に作成することができます。しかし、テストケースを1パターンだけ実行するケースは、恐らくほとんどありません。1つの要求に対し、複数パターンのテストケースを生成したい、より多くのパターンのテストを実行したい、というケースがほとんどです。また、要求の変更や追加により、テストケースの変更・追加が必要になることもあります。

このようなときに、Excelなどを用いた従来のテストベクタ記述方法では情報が乱立して管理しきれなくなり、「どこを変更・追加すればよいのか分からない」「消してもよい情報なのか分からない」などの課題が発生します。

機能テストを効率化するためには、「テストケースを構成するさまざまな要素に対して複数のパターンを簡単に追加・作成できる」「テストケースの変更・追加に簡単に対応できる」など、管理しやすい状態でテストケースを作成する仕組みが必要不可欠です。TPTは、オートマトンと呼ばれる状態遷移のモデルを用いてテストをモデル化することで、この課題を解決します。オートマトンにより、作成したテストステップリストに対し、複数のパターンを容易に追加・作成することが可能となります。

オートマトンは、グラフィカルな表現により、視覚的に分かりやすいため、テストケースの必要な追加・変更が容易となります。これにより、パラメータのバリエーションや信号の変化の追加も容易になり、さまざまなパターンのテストを行うことが可能となります。

テストステップリストとオートマトン

オートマトンは、テストステップリストをパーツ分けし、モデル化する仕組みです。テストをモデル化してグラフィカルに表現することにより、テストの意図が視覚化され、テストケースの変更・追加が容易となります。また、テストケースがオートマトンによりパーツ分けされることで、複数のパターンのテストを容易に作成・実行することが可能となります。

TPTステップリストを使ったテストプロセスで用いたSimulink®モデルを例にご説明します。

ヘッドライトの制御を行うSimulinkモデルのイメージヘッドライトの制御を行うSimulinkモデル

この「lights_control」モデルは、外の明るさ(light_intensity)とスイッチ(light_switch)のモードに応じてヘッドライト(headlight)の点灯/消灯を出力します。

はじめに、テストステップリストを用いてテストケースを作成します。例として、

  • 初期状態は、スイッチはOFF(ヘッドライトが常に消灯となるモード)かつ外の明るさは暗い状態(light_intensity=60)
  • スイッチをOFFからAUTO(ヘッドライトが外の明るさに応じて点灯/消灯となるモード)に切り替える
  • 外の明るさを暗い状態から明るい状態(light_intensity=80)に切り替える
  • スイッチをAUTOからOFFに切り替える
  • テスト終了

というテストを行う場合、以下のようにテストステップリストを作成することができます。

①~④のフェーズごとに記述されたテストステップとそのグラフのイメージ①~④のフェーズごとに記述されたテストステップとそのグラフ

このテストステップリストを①~④のフェーズでパーツ分けし、パーツ分けした各テストステップを「ステート」してつなぎ合わせたものがオートマトンです。

下図は、実際にオートマトンを作成した例です。1つのテストステップリストとして記述されていたテストケースが、①~④のフェーズにパーツ分けされたオートマトンとして表現されていることが分かります。

フェーズごとにステートでパーツ分けされたオートマトンのイメージフェーズごとにステートでパーツ分けされたオートマトン

オートマトンで記述されたことにより、作成したテストがどのようなフェーズで構成されているのか、どのような条件のもとに変化しているのか、などがひと目で把握できます。これにより、テストケースの変更・追加を行う際にも、どのフェーズのテストステップを変更すればよいか、もしくは、どのフェーズの間にテストステップを追加すればよいか、などがひと目で把握でき、テストケースの管理が容易となります。

オートマトンからさまざまなパターンのテストケースを自動生成する

オートマトンを用いるメリットは、テストを視覚的に容易にするだけではありません。TPTのオートマトンは、ステートごとに複数のテストステップリストを持たせられるため、さまざまなパターンのテストを実行するが可能です。

たとえば上図①の「初期状態」フェーズには、今回作成した「OFFかつ暗い」以外にも、「OFFかつ明るい」や「ONかつ暗い」などのパターンが考えられます。②の「スイッチの切り替え」フェーズや③の「明るさの変化」フェーズにおいても、実際には今回作成したパターン以外のパターンも作成する必要があります。

  • ステートごとに複数のパターンのテストステップリスト(バリアント)を持たせる操作は非常に簡単です。

    バリアントの作成

  • 作成したバリアントを組み合わせることで、さまざまなパターンのテストケースを生成することが可能です。

    バリアントの組み合わせによるテストケース生成

複数のバリアントを持つステートからなるオートマトンは、ひとつのテストモデルの中に多数のテストケースを含んでいます。テストケースは個々の独立したものとしてではなく、同一モデル内の結合モデルとして表現されるため、テストケース間の類似点や相違点がひと目で確認できます。

ひと目で確認できるテストケース間の類似点と相違点のイメージひと目で確認できるテストケース間の類似点と相違点

Parallel オートマトンのイメージParallel オートマトン

オートマトンは、テストをフェーズごとに分割して管理する以外にも、たとえばサブシステムごとにオートマトンを分けてテストケースを記述し、管理・実行することもできます。

今回の例であれば「スイッチ」と「外の明るさ」を分けてオートマトンを作成し、テストケースとして同時に実行することも可能です。

このようにTPTは、オートマトンを用いてさまざまな面から管理しやすいテスト設計をサポートします。

以上が、TPTのテスト設計、テストのモデル化のアプローチです。

テストステップリストを作成し、オートマトンを用いてフェーズごと、あるいはシステムごとのパーツ分けを行うことで、テストは見やすく、管理しやすくなります。また、ステートごとにバリアントを容易に作成することができ、それらの組み合わせから、さまざまなパターンのテストケースを自動で生成することができます。

機能テストを効率化するうえで必要な「テストケースを構成するさまざまな要素に対して複数のパターンを容易に追加・作成できる」「テストケースの変更・追加に容易に対応できる」仕組みは、TPTオートマトンにより実現することが可能です。

その他さまざまなテスト

TPTはさまざまなテスト方法をサポートしています。ブラックボックステスト、ホワイトボックステスト、単体テスト、統合テストなど、これらのテスト手法はすべてTPTでモデル化、実行することができます。また、異なるテスト環境でもテストを再利用することができるので、リグレッションテストやバックトゥバックテストも容易に実行することが可能です。

関連コンテンツ

  • ※Simulinkは、MathWorks社の登録商標です。

資料ダウンロード / お問い合わせ

サービスに関する情報をはじめとした各種資料(PDF)をご提供しています。
資料はまとめてダウンロードできます。お気軽にご利用ください。

サービスに関する情報をはじめとした各種資料

お電話でのお問い合わせ

受付時間 10:00-12:00、13:00-17:00(平日のみ)

フォームでのお問い合わせ

資料ダウンロード / お問い合わせ