はじめに
最近個人的に(会社的にも)ホットな技術がモデルベースドテスト(MBT)で、関連ツールがあれば触るようにしています。
Curiosityという会社からTestmodeller.ioというツールが出ているので、ちょっと調べてみました。名前的にはtest modellerなのでMBTどまんなかですね。
Testmodeller.ioの概要
- フローチャートからテストの自動生成ができて
- それを使うことでバグの早期検知ができて
- みんなでコラボレーションしながらよいシステムを作れる
みたいな感じでしょうか。
フローチャートをモデルと考えるとモデルベースドテストですね。あとはスプリントやら毎回リリースやらの言葉から基本的にアジャイルを想定していることがうかがえます。コラボレーションに価値を置いているのも共感できる点ですね。
Testmodeller.ioのツールチェーン
下図のように、入力としてはテスト実行記録やBDDシナリオ、そしてBPMNダイアグラムが使えるようです。
Testsはテスト管理でしょうか。
テストデータ入力としてエクセルを含めたDBが使え、テスト実行では主要なテスト自動実行ツールをカバーしているようです。
MBTと銘打っていることから、BPMNをメインの入力にし、テストデータの入力を加えることでテスト自動実行までつなげる、というのがこのツールの根幹だと思われます。
実際の使用感
上述のメインの流れを少し試してみます。
まずはモデルのインポートです。エクセルで書かれたモデルも対応しているようです。
また、ツールのGUI上でモデリングをすることも可能です。
基本的にはBPMNを主要なモデルとしているようです。
次にテストシナリオの生成です。
BPMNからテストシナリオを自動生成できます。カバレッジについては指定が可能です。
生成ロジックについては特別なものはないように見えます。
フロー系のモデルに基づいた一般的なテスト生成ロジック、だと思ってよさそうです。
最後にテスト実行ツールに渡すテストコードを生成して、メインの流れ完了です。
感想
これはいい
- モデルからテスト実行までつながる感じはすごく良い
- テストケースとモデルの部品が対応付けされて可視化される
- 対応モデルを絞って、使いやすさに振り切った感じ。スピードが要求される場面でモデルを使う、という文脈では使い道がありそう
もっとこうなるといいのにな
- 対応モデルが限定的
- モデルとコードの距離が近い(詳細度が高いモデルである)ため、コードベースのテストとの使い分けが難しい?
- 汎用ツールの常だが、テスト生成ロジックはもう少し複雑なものがあってもいいな
というところです。MBT関連のツール、もっと知りたい。