モデルベース開発とモデルベースドテスト

モデルベース開発とモデルベースドテストは相性がいいんでしょうか。

ちなみに↑でモデルベースドテストについては書きました。ご興味あれば見てください。

さて、モデルベース開発とモデルベースドテストですが、名前的にはとっても似ていますね。モデルを使った開発と、モデルを使ったテスト設計、というのがそれぞれの意味です。もし双方で使う「モデル」が一緒なのであれば、相性がいいどころではなく、テストが無視できるぐらいになりそうですね。モデルを書けばテストケースができて、テスト実行まで自動で行うと、テストについて考える必要がなくなる。

でも、現実はそんなに甘くないと考えています。

前回も引用した

こちらの資料では、各種モデルベースドテストの種類を挙げていますが、例えば組合せテストもモデルベースドテストに含めています。組合せテストではパラメータを識別し、値を識別し、その後パラメータを組み合わせてテストケースを生成します。このパラメータが何であるかを開発の段階で明示的に識別するでしょうか。もし深く検討が進んでいて、特定の属性を持つパラメータが組合せテストのパラメータとなる、ということが決まっていれば一意にテストケースが生成できるでしょう。もしそうでない場合はテスト用のモデルを書く、という作業が必要になりそうです。

これが例えばモデルベースドテストの雄、状態遷移モデルの場合は、開発で作る状態遷移モデルとテスト設計時に必要なものが一致するため、とても相性が良い、ということになります。

ちなみに、モデルベース開発におけるモデルを書いた段階でもしテストケースを生成したとして、テストできるのはモデルそのものです。ただ、今あるモデルを、そのモデルを神様として生み出したテストケースでテストすることは意味があるのでしょうか。おそらく、多くの場合は意味がない、ということになると思います。

なので実運用ではそこで生成したテストケースはモデルをベースにして生成したプロダクトコードに対して、そのコードがもともとのモデルがやりたかったことを実現できているかのチェックのために使うことになると考えられます。


まとめると、モデルベース開発とモデルベースドテストは相性がいい、けれども少しずれるところもある、ということです。


この記事が気に入ったらサポートをしてみませんか?