スクリーンショットを組み込めるプログラミング言語「SIKULI」

GUIテスト用プログラムとかで、画面のこのボタンを押して欲しい、ってのを指定することがあると思うが、その「このボタン」ってのをそのボタンのスクリーンショットで指定できる言語。

IDEツールバーにカメラボタンってのがあって、それを押すと画面の任意の場所が切り出せる。切り出したスクリーンショットはそのままスクリプト内に取り込まれる。例えば、マインスイーパーで適当にボタンを押しまくるプログラムは右のようになる。

click()の中にマインスイーパーのボタンの絵が入っている。これで「この絵に似ているところを押せ」、っていう命令になる。

かなり面白い言語だが、画像のマッチングで動作するために、なかなか使い方が難しい。click()のボタンの右上に0.9ってのが書いてあるが、これがこの画像とどれくらい似ていたら押すか、を表している。この数字を適当に調整しないとうまく動かない。この0.9ってのでちゃんとマインスイーパーの全部のボタンを押してくれるかっていうと多分できないし、マインスイーパーのボタン以外を押さない保証があるかっていうと微妙だ。特にWindows7マインスイーパーはボタンにグラデーションがかかっているので難易度が高い。

実験段階の言語だろうから今後のさらなる発展に期待。あとまだ言語自体に機能が足りなくて、現状GUI操作の自動化かテスト以外に使うのは厳しい。これでゲームを作るのは……まだムリだろうなあ。