あるエンジニアの方からおもしろいツールを教えてもらった。「sikuli」という自動化ツールである。特徴は画像認識技術を組み込んでいることだ。そのために、少しアバウトな、人間が操作するような感覚で作業を自動化できるという。

最初に思いついたのはテスト自動化の使い道

 Sikuliのメインの使い方はテストの自動化だろう。

 ソフトウエアの開発現場において、テストほど自動化が求められる作業はない。例えばGUI画面の機能を確認する場合、基本的には一つひとつのボタンをクリックして動作が正常に動作するかどうかを確認しなければならない。実に煩雑な作業が求められる。

 テストの自動化ツールを使って作業の簡略化を図っている現場も多い。Webシステムの場合、Seleniumなどが有名である。これは、一つひとつ「どの項目に何を入力するか」を指示していくものである。正確なテストができるが、テストプログラムを作るには手間がかかるし、項目にあらかじめIDを付けておくなど、システムを開発する際にテストしやすい配慮も求められる。

 Sikuliを使えば、上記のような状況は改善するかもしれない。

 例えば、

「このボタンの画像があったらクリック」
「このマークの画像とマッチするところにテキスト入力」

といった動きをプログラミングできるからだ。何らかの理由でボタンなどの画像の配置位置がずれても問題ない。

図●Sikuliのプログラムの例
図●Sikuliのプログラムの例
出所:「Sikuli実践ガイド」(著:大澤文孝 発行:日経BP)
[画像のクリックで拡大表示]

 画面の見た目に基づいて自動化できるので、あらかじめ項目にIDなどを付けていなくて構わない。制御はPython言語で記述できるので、スクリプトを作るのも難しくない。