モデルベーステスト(Model-Based Testing、以下MBT)についての記事を読んだ
MBTは、ソフトウェアテスト手法の一つで、システムの動作や仕様をモデルとして表現し、そのモデルに基づいてテストケースを生成、実行するアプローチのこと
システム開発もそうだが、デザインの世界でもモデル駆動の話があるし、QAの世界でもそういう話が当然あるんだなという感想を持った
利点
- 重要なことに集中できる
- 高レベルの抽象化に重点を置くので、不要なテストケースを省略し、テストの労力とリソースを最適化できる
- 最終的には、重要な機能を正確に表す、より高品質なテストが可能になる
- コミュニケーションが容易になる
- 製品の初期段階で欠陥を回避する
- 実装と保守の労力削減
プロセス
- モデル作成
- テスト対象の動作や仕様を理解し、それを抽象化してモデルを作る
- モデル作成ツールを利用することも多い(例: Spec Explorer、GraphWalker)
- テストケース生成
- モデルから可能な操作や条件に基づき、テストケースを自動生成
- ランダム、すべての状態遷移のカバー、特定のシナリオ重視など、さまざまな生成戦略がある
- テスト実行
- テストケースを実行し、テスト対象システムが期待通り動作するか検証
- 結果の評価
- テスト結果を分析し、不具合があれば修正
- 必要に応じてモデルを更新
いわゆるモデリングの利点が述べられていて、確かにQAでも(というか開発よりことさら)抽象化した考えは必要だなと思った
テストでもレゴのようなビルディング ブロックを使用というところはわかっていない
この記事を書いた会社の製品を使ったデモがこちらの記事に書かれているのを見つけたので、どういう進め方がいいか実践的なところは後日調べる