モデルベーステスト

モデルベーステスト(MBT)とは



モデルベーステスト(Model-Based Testing, MBT)は、ソフトウェアテストの一種で、テスト対象システムのモデルを用いてテストケースを生成・実行する手法です。このモデルは、システムの機能的な側面を抽象的に表現したもので、システムの振る舞いを記述します。モデルから導出されたテストケースは、抽象的な機能テストであり、直接実行することはできません。そのため、実行可能なテストケースに変換する必要があります。

モデルベーステストの基本的な考え方



モデルベーステストでは、テストケースはソースコードからではなく、システムのモデルから生成されます。このため、モデルベーステストは一般的にブラックボックステストとして扱われます。しかし、モデルベーステストとソースコードレベルのテストを組み合わせることで、テストの網羅率を向上させることも可能です。具体的には、機能モデルを初期段階のソースコードに基づいて構築するなどの方法が考えられます。

モデルの構築



モデルは、テスト対象システムの開発以前、あるいは並行して構築されます。特に、モデル駆動工学やOMGのモデル駆動型アーキテクチャでは、モデルが重要な役割を果たします。モデルは、システムの完全な状態を記述することが理想ですが、実際には、モデル構築はほとんどが人間によって行われています。近年では、ソースコードからモデルを自動的に生成する試みも進められており、モデル変換言語ドメイン固有言語を使用したモデル変換が重要な手法となっています。

モデルベーステストの使い方



モデルベーステストには、主に以下の3つの使い方があります。

オンラインテスト: 対象システムとモデルベーステストツールを直接接続し、動的にテストを実行します。これにより、リアルタイムでのテストが可能になります。
オフラインの実行可能テスト生成: 自動実行可能なテストケースを生成します。例えば、生成されたテストロジックをPythonのクラス群で実装することが考えられます。
オフラインの手動実行可能なテスト生成: 人間が読める形式のテスト仕様書を生成し、手動でテストを実施します。例えば、PDF形式で自然言語で書かれたテスト仕様書を生成します。

テストケースの導出アルゴリズム



モデルベーステストの大きな利点は、テストケース生成の自動化です。モデルが機械可読で形式的に記述されていれば、テストケースを機械的に抽出できます。ここでは、いくつかの代表的なテストケース導出アルゴリズムについて解説します。

有限状態機械(FSM)



モデルは一般的に、有限オートマトンや状態遷移系に変換されます。このオートマトンは、テスト対象システムの取りうる状態を表現しています。テストケースを見つけるためには、オートマトン上で実行可能な経路を探索します。各経路がテストケースに対応します。この手法は、モデルが決定論的であるか、決定論的な形式に変換可能な場合に効果的です。ただし、システムの複雑さが増すと、状態数や経路数が膨大になるため、適切なテストケースを選択するための工夫が必要です。

定理証明



自動定理証明は、論理式の自動証明に用いられる技術です。モデルベーステストでは、システムを論理式でモデル化し、システムの振る舞いを記述します。テストケースを選択するには、システムを記述した論理式群を同値なクラスに分類します。各クラスは特定の振る舞いを表現し、テストケースに対応させることができます。加法標準形を用いた簡単な分類や、木構造を用いた階層的な分類が可能です。

制約論理プログラミングと記号的実行



制約論理プログラミングでは、変数群の制約条件を満足する解を求めることで、特定の制約を満たすテストケースを選択します。システムは制約によって記述され、制約条件群は充足可能性問題として解かれます。記号的実行と組み合わせることで、異なる制御経路に対してデータ制約を集め、テストケースを生成します。

モデル検査



モデル検査は、モデルが仕様を満たすかを検証する技術です。モデルベーステストでは、テスト対象システムのモデルとテストしたい属性をモデル検査機に与えます。モデル検査機は、属性がモデル上で正しいかを検証する過程で証拠と反例を検出します。証拠は属性を満たす経路であり、反例は属性に反する状態となる経路です。これらの経路がテストケースとして使用できます。

マルコフ連鎖テストモデル



マルコフ連鎖は、モデルベーステストを効率化する手法です。テストモデルは、システムの使い方のシナリオを表現した有限オートマトンと、システムの使われ方を統計的に表した運用プロファイルで構成されます。この手法は、システムを網羅的にテストするのが困難な場合や、バグが少ないと予想される場合に、統計的なテストケースを生成するのに適しています。近年では、組み込みシステムにも適用できるよう拡張されています。

まとめ



モデルベーステストは、ソフトウェアテストの効率化と品質向上に貢献する重要な手法です。特に複雑なシステムテストにおいて、その効果を発揮します。モデルの構築、適切なテストケースの導出アルゴリズムの選択、ツールの活用が、モデルベーステストを成功させるための鍵となります。

出典



参考文献
OMG UML 2 Testing Profile
Bringmann, E.; Krämer, A. (2008). "Model-Based Testing of Automotive Systems" (PDF). 2008 International Conference on Software Testing, Verification, and Validation. International Conference on Software Testing, Verification, and Validation (ICST). pp. 485–493. doi:10.1109/ICST.2008.45. ISBN 978-0-7695-3127-4。
Practical Model-Based Testing: A Tools Approach, Mark Utting and Bruno Legeard, ISBN 978-0-12-372501-1, Morgan-Kaufmann 2007.
Model-Based Software Testing and Analysis with C#, Jonathan Jacky, Margus Veanes, Colin Campbell, and Wolfram Schulte, ISBN 978-0-521-68761-4, Cambridge University Press 2008.
Model-Based Testing of Reactive Systems Advanced Lecture Series, LNCS 3472, Springer-Verlag, 2005. ISBN 978-3-540-26278-7.
Hong Zhu et al. (2008). AST '08: Proceedings of the 3rd International Workshop on Automation of Software Test. ACM Press. ISBN 978-1-60558-030-2. http://portal.acm.org/citation.cfm?id=1370042#
Santos-Neto, P.; Resende, R.; Pádua, C. (2007). "Requirements for information systems model-based testing". Proceedings of the 2007 ACM symposium on Applied computing - SAC '07. Symposium on Applied Computing. pp. 1409–1415. doi:10.1145/1244002.1244306. ISBN 1-59593-480-4。
Roodenrijs, E. (Spring 2010). “Model-Based Testing Adds Value”. Methods & Tools 18 (1): 33–39. ISSN 1661-402X. http://www.methodsandtools.com/archive/archive.php?id=102.
A Systematic Review of Model Based Testing Tool Support, Muhammad Shafique, Yvan Labiche, Carleton University, Technical Report, May 2010.
Zander, Justyna; Schieferdecker, Ina; Mosterman, Pieter J., eds (2011). Model-Based Testing for Embedded Systems. Computational Analysis, Synthesis, and Design of Dynamic Systems. 13. Boca Raton: CRC Press. ISBN 978-1-4398-1845-9
Online Community for Model-based Testing
2011 Model-based Testing User Survey: Results and Analysis Robert V. Binder. System Verification Associates, February 2012

関連項目

モデル駆動型アーキテクチャ (MDA)
モデル駆動工学 (MDE)
ドメイン固有言語 (DSL)
ドメイン固有モデリング (DSM)
オブジェクト指向分析設計 (OOAD)

外部リンク
the Annual Workshop on Advances in Model Based Testing

ツール
Spec Explorer マイクロソフト
ATD-Automated Test Designer テストケース、テストデータ、テスト自動化スクリプトを要求仕様から生成するMBTツール
HOL-TestGen Isabelle theorem prover という対話型自動定理証明機に基づいたテストケース生成ツール
MaTeLo
Smartesting CertifyIt BPMN および UML 2.0 によるシステム仕様記述からテストを自動生成するツール
TGV プロトコル用テスト生成ツール
Reactis Tester 制御システム向けのMBTツール
Simulink Tester Simulink および Stateflow モデルを変換してモデル分析とテスト生成を行うツール
T-VEC Tabular Modeler
* TorX

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。