こんにちは、須原です。
ベリサーブアドベントカレンダー13日目です。
今日は、「モデル」に関する話にしようかなと思います。
つい先日もSTAC2020の中でモデルベースドテスト(以後MBT)の話がありましたね。ISTQBからもMBTのシラバスも出ていて、徐々に広まってきているように思います。
一方で、その名前からモデルベース開発(MBD)やモデルベースシステムズエンジニアリング(MBSE)に関連するテストの何かしらなんだろうな、と想像されてしまうことも増えているように思います。(必ずしも関係性がないわけではないのですが、MBTの必要条件としてMBDやMBSEがあるわけではない、ということです)
というわけでこの記事ではそこら辺の交通整理をしてみようと思います。
#モデルが含まれるテスト系用語
モデルベースドテスト(MBT)
Testing based on or involving models.
ISTQB Glossaryより。
ちょっとこれだけだとわかりませんね。
The basic idea is to improve the quality and efficiency of the test design and test implementation activities by:
-Designing a comprehensive MBT model, typically using tools, based on project test objectives.
-Providing an MBT model as a test design specification. This model includes a high degree of
formal and detailed information that is sufficient to automatically generate the test cases directly
from the MBT model.
ISTQB MBTシラバスより。
テスト設計実装プロセスの質と効率を上げることが目的で、やることはMBTモデルを設計し、それをテスト設計仕様としてテストケースを自動生成すること、だと読めます。MBTモデルを基にテストケースを生成すること(テスト実装が含まれる場合はテスト手順の生成まで含む)がMBTだということになります。
モデルベースドQA(MBQA)
西先生のこちらのスライドで紹介されています。
用語定義のようなものは見当たらなかったので推測にはなってしまいますが、MBTがモデルを出発点にしてテストを作る活動であるのに対し、テストに限らずQA(品質保証)の活動をモデルを起点に行うべきだ、と言っているのがMBQAだと理解しています。
モデル検査(Model checking)
In computer science, model checking or property checking is a method for checking whether a finite-state model of a system meets a given specification (also known as correctness).
Wikipediaより。
形式的検証の一部であり、モデル自身の論理的な正しさを証明するための手法です。僕自身はこの分野の専門家ではないので詳しくはないのですが、明らかに言えることは、モデル自身に誤りがないかをチェックする手法だ、ということです。
モデルのテスト
これだけ用語っぽくないですが、この後の説明で使うので出しておきます。MBD等で作られるモデルを何らかの手段でテストすること一般をこう呼んでいます。モデルをSUT(テスト対象)としたテスト、とも言い換えられます。
モデルインザループ(MiL)
Dynamic testing performed using a simulation model of the system in a simulated environment.
ISTQB Glossaryより。
主に車の分野で使われる、モデルのテスト用のシミュレーション環境のことです。
#用語同士の関係性
用語を4つ出したので、用例などを使って用語同士の関係性を明らかにしてみます。
-「MBD」で設計されたモデルの品質を明らかにするために、「モデルのテスト」と動的/静的に実行する。
-「モデルのテスト」の静的テストの一部として「モデル検査」を採用する
-「MiL」を使って「モデルのテスト」を動的に実行する
-「MBD」で設計されたモデルを使ってMBTモデルを設計した上で、システムテスト用のテストケースを「MBT」で生成する
-「MBQA」を実現するために、「MBT」や「モデル検査」を使った品質保証戦略を立てる
こんな感じでしょうか。
#まとめ
身の回りでMBTとモデルのテストやモデル検査の区別がちゃんとできていない事例が散見されたので、書いてみました。MBDだとMBTは使いやすいため関係は強いですが、MBDで作られたモデルをテストすることはMBTではありません。ご注意を。
かく言う自分も何か理解が間違っているかもしれませんので、変なこと言っていたらご指摘お願いします。
あ、あと一応宣伝しておきますが、ベリサーブからこんなツールが出ています。GIHOZという名称で、MBT用のツールです。GUIベースでMBTが体験できるのでぜひご利用ください。