>& STDOUT

主にソフトウェアに関する日々の標準出力+標準エラー出力

モデルベースドテストに入門する

まったく意図してなかったのに、NativeDriver(駆動系), TABOK(自動テスト知識体系), モデルベースドテスト(ちょっとメタなテスト方法論) となんとなく部品が揃ってきた感じがします。ドキドキ。

モデルベースドテストってなんですか?

名前はよく聞くのですがいったいそれが何なのかさっぱりなのでまずは”認識”から。

個人的にはこの業界ネーミングが非常によろしくないと感じています。
テストの段階を示す用語やテスト設計方法論、テスト実行の方式を表す言葉、
そしてこのモデルベースドテスト、などメタな概念まですべて「xxテスト」
という言葉がついているので、どこにどのように適用していいのか直感的には
わからない。門外漢にはいよいよサッパリ。

テストについて困ったらJaSSTのサイトを見ろ!ってぐらいとっかかりには最強なサイトなのでまずはチェック。2007年(早っ)には既にモデルベースドテストについての言及があります。

にしさんによる、

で概略を掴んでから、小川さん(日立製作所)による

という順番で確認してみると良さそうです。


にしさんの発表の冒頭でも触れられていますが、モデル検査ではないことに注意。同じセッションにモデル検査の話もあるので同じコンテキストで読むと混乱するかもです。

資料で述べられているモデルベースドテストの定義

  • 「モデルベースドテスト入門」:にしさん
モデルベースドテスト(Model Based Testing)とは
ーテスト設計モデルを用いてテストケースを設計する技術の総称
ー網羅型テストを設計している時には必ず実施しているはずである
  • 「モデルベースドテストの技術動向と研究事例」:小川さん
モデルベースドテストとは、
ーテスト対象システム(SUT)の性質を記述したモデルから
ー全部または一部のテストケースが生成される
ーソフトウェアテスト

わかったこと

  • モデルベースドテストとは、テスト対象から導けるモデルを利用して”抽象テストケース”(テスト設計とテスト実装の間にあるイメージ)を自動的に導くテスト設計からテスト実装の直前までをカバーする手法
  • モデル検査ではないってば
    • これによってテスト設計自体や実装時のカバレッジが自動的に保証されることが嬉しい
  • 各種テスト設計方法論で用いられているモデルの種類
    • フローモデル(制御フロー、データフロー)
    • 状態遷移モデル
    • トレースベースモデル(シーケンス図やコラボ図など)
    • 組み合わせモデル
    • 統計モデル(ユーザプロファイルモデルなど)
    • 代数的モデル
    • 形式モデル

次にやること

実際のソフトウェアを使ってモデルを導く⇒それを使って抽象テストケースを導く をやってみる。

ここまでの感想

ソフトウェアテストを考えるときにテスト設計を最上位に置くより、こういうったメタな概念から連なるものと考えたほうが、応用や新しいものを生み出すときに有利に働くかなと。テストプロセスでいう、テスト分析とテスト設計の間に挟まるもの、ですね。智美塾でまさに議論しているテストアーキテクチャの一種なのかも。