おねだり ~オープンソースのテスト観点図エディタを一緒につくりませんか?~

おねだり ~オープンソースのテスト観点図エディタを一緒につくりませんか?~・ソフトウェアテストアドベントカレンダー 2019/12/21編

にし やすはる

この記事は「ソフトウェアテスト Advent Calendar 2019」の21日目の記事です。20日目の@tomohiro_odanさんからバトンを受け取りました。

Advent Calendarってものは普通、クリスマスまで毎日カレンダーの小窓を開けると何かもらえるものです。したがいましてこの小窓記事も何か差し上げないといけません。しかし私は皆さんに差し上げるものなんて何もありませんので、コンセプトを変えて、皆さんにおねだりをしようと思います。

皆さんはソフトウェアテストで何が欲しいですか?便利なツール、難しくないのに強力なテスト技法、短時間でテスト戦略やテスト計画を作る方法、テストチームをマネジメントするコツ、テストについて理解が深い上司や開発。そんな皆さんは、 ソフトウェアテスト Advent Calendar 2019ソフトウェアテストの小ネタAdvent Calendar 2019の小窓を開けましょう。色々と手に入ります。よかったね!

僕はテストをする時に、VSTePという割とマイナーな方法論を使っているので、テスト観点図というツリー状の図を描くことになります。自分で描く時はXMindを使います。入力しやすいし、見栄えがよいのですよ。ただ凝った使い方をしようとすると、有償の機能を使わなきゃいけない。自分で描く時は購入しているので問題ないのですが、他人に勧める時にはちと気が引ける。そんな時はFreeMindがよいですね。無料だし、日本語も使える。ただちょっと見栄えがあまりよくない。まぁでも単にテスト観点図を描くだけなら、別に問題にはなりません。

しかしXMindもFreeMindも普通はGUIで描きます。でもPlantUMLのようにテキストで描くのもカッコいいですよね。まぁXMindやFreeMindのファイルをXMLで書けばいいんですが、それもねぇ。

もちろんastah*Enterprise Architectでいいじゃんという考え方もあります。僕もastah*やEAのユーザさんにはそれらを使うよう勧めています。でもQAやテストの組織の導入率って低いのよね。理想的にはastah*やEAでテスト観点図を描いてUML Testing Profileに準拠したテストのモデリングを行い、開発でつくった様々なUMLのダイアグラムと連動するのがよいのですが、なかなか道のりは遠い。

既存のツールの最大の問題点は、連携性です。FreeMindやXMindは統合開発環境ではありません。astah*やEAはそれに近いですが、様々な連携はそれぞれのベンダさん頼みです。なぜ連携性が重要なのでしょうか。

VSTePの理想的な使い方は、テスト要求分析でテスト観点図を描いてきちんとモデリングしたり、テストアーキテクチャ設計でテストコンテナ図を描いてきちんとモデリングするだけではありません(もちろんモデリングは大事ですよ!)。VSTePの醍醐味は、Fully-automated VSTeP(FaVSTeP)です。この資料のp.88に書いてあるやつですね。要するに、テストの自動設計と自動実行ができるVSTePのことです。

FaVSTePを行うためには、テスト観点図やテストコンテナ図と、仕様書や設計書、ソースコードなどの開発情報、テスト自動設計(モデルベースドテスト)のツール、テスト自動実行のツール(Seleniumなど)、テストマネジメントツールなどが連携しなくてはなりません。MBD(モデルベース開発)やMDD(モデル駆動開発)、E2Eも含めたCI/CDに既に取り組んでいる組織では、それほど突飛な話ではないことが想像できると思いますし、開発だけをモデルベースにしてQAを人力でやるというのはナンセンスだと考えているはずです。実際に僕らは、ある組織でUFTを使ってFaVSTePを実現させました。ある国のある組織では、連携するツールを内製して実現させています。devOpsやAI/MLのQAをきちんと行うにはFEET(Frequent, Entire and Exhaustive Test:テスト対象全体を全て頻繁にテストすること)が必要になりますから、こうしたFully-automatedなテストに取り組まねばなりません。

もちろんこうしたツールは、astah*やEAと一緒に動作するのがよいわけですが、まぁベンダさんとしては「それを作るとどんだけ売れるの?」という問いに定量的かつ確定的に答えられないと開発投資を行えません。慈善事業じゃありませんから。彼らは何も悪くありません。

じゃあどうする。パンが無ければケーキを食べればいいじゃないというマリーアントワネットメソッドを用いると、自分たちでつくってしまえばいいわけです。別にマリーアントワネットは自分でケーキを作ろうとしたわけじゃありませんが、まぁ細かいことは気にしない。オープンソースで自分で作ればいいのです。しかし僕にはピアノが無い。君に聴かせる腕も無い。心はいつでも半開きなんです。残念ながら僕は開発がド下手。自分で作ると数万年かかる。

というわけで、作ってもらいました。おっと慌てないで。作ってもらったのは、テスト観点図エディタのコアのコアだけ。今すぐFreeMindやXMindの代わりにもなりませんし、astah*やEAと連携してもくれませんし、テストケースを自動生成して自動実行してもくれません。がっかりした?いやいや思い出して。この記事のタイトルを。この記事は、僕が皆さんにおねだりするのがテーマなんだよ。

このツールには、名前はまだありません。仮にOpen NGT Editorとでも呼びましょうか。略して仮ONE。仮ONEは、Eclipse Cheの上で動作します。最終的に仮ONEはFaVSTeP全体をカバーするように進化して欲しいわけなんですが、エディタや描画エンジンまで自分たちで開発するのは重複投資です。ここはオープンソースの強みを活かして、既存の環境の上に乗せてしまいましょう。そこでEclipseですよ。しかも今はブラウザベースで動くEclipse Cheがあるときた。これに乗らない手はありません。しかもEclipseはモデリングツールとしても機能するわけですからね。至れり尽くせり。というわけで、以前からお話ししていた合同会社もなみ屋さんの代表社員である@monamour555さん(邑中雅樹さん)にお願いして、つくって頂きました。Eclipse Cheの情報をさがすと必ず邑中さんに行き着くはずです。凄腕。Eclipse Cheと関係なく凄腕。ぜひ皆さん、何か高額だけど凄腕が必要な開発案件があったら、依頼してみてください。後悔しません。

仮ONEのスクショはこちらです。

(仮)Open NGT Editorの動作画面

この(仮)Open NGT Editorはまだどんなライセンスかも決まっていませんが、オープンソースにすることは決まっています(最初からその趣旨でお願いしてます)。インターフェースを公開してさまざまなツールと連携していく予定です。

というわけで本題のおねだりなんですが、一緒にこの仮ONEをつくってくれる仲間を募集します。一緒につくってくれるどころか、勝手にどんどんやっちゃっていいです。そして僕に、オープンソースプロジェクトについて教えてください。お願いします。

また類似のツールや連携先のツールを既に商用で作ってらっしゃる企業さんとも、インターフェースを共通化して相互連携できるようにしようね、なんて話もしてます。テストを提供する企業さんや自社でテストを行っている企業さんは仕事で使えますので、投資も大歓迎です。自社で全部作るよりも遙かに安い投資で、テスト観点図エディタが手に入りますし、そのうちテストケースの自動生成や自動実行とも連携してくれます。

というわけで、仮ONEを入口にしてどんどん広がっていくFaVSTePの世界に興味がある方は、ぜひ@YasuharuNishiまでメンションやDMをお願いします。きっと楽しいぞ~。

以上、アドベントカレンダーの趣旨を全く理解していない、おねだりでした。明日は@mty_mnoさんの、ちゃんとした記事です。お楽しみに!