Squish顧客事例:Kitware - CDash/CTest にSquishを統合

このブログは「Squish Success at Kitware; Squish Integrated in CDash/CTest」を翻訳・一部加筆したものです。

Kitware 社は、オープンソース開発モデルを使用して、コンピュータビジョン、医療画像、ビジュアライゼーション、3Dデータパブリッシング、ソフトウェア開発の分野で高品質な最先端ソフトウェアを製造している企業です。グラフィックス・プログラミングの世界ではVisualization Toolkit(VTK)、プログラミングの世界ではビルド・ツールCMakeがよく知られています。

今回、Kitwareの副社長兼CTOであるBill Hoffman氏にお話を伺うことができ、同社がSquishを使用する理由とその利点について教えていただきました。Hoffman氏は20年近くソフトウェアテストに携わっており、多くの経験を積んでいます。

Kitwareは米国を拠点とし、約70人の従業員を抱えています。同社はオープンソースのコラボレーション・プラットフォームの開発と保守を行っており、その中には他の企業に販売するソフトウェアの開発やウェブ・アプリケーション、社内で使用するソフトウェアの開発も含まれています。Kitwareは、TclとPythonで書かれた社内テストツールを使用しており、商用顧客のプロジェクトではSquishの使用を開始しており、これまでに2つのQt 4ベースのプロジェクトでSquishが使用されています(Kitwareは顧客の守秘義務のため、これ以上の詳細は明かせません)。

KitwareはSquishを使用して、商用Qt 4プロジェクトを展開するすべてのプラットフォームでテストしています:Windows、Mac OS X、Linux、および一部のUnix(Sun、HP、Irix)です。

 

なぜ Squishなのか?

Kitwareは10年以上にわたってソフトウェアをテストしてきました。そして、Hoffman氏が我々に次の様に話してくれました:

テストされていないものはうまく機能しないだろう!

QtのテストにSquishを選んだのは、SquishがQt GUIのテストに使える唯一のツールだと考えたからです。KitwareはまだSquishのソースコードを利用していませんが、その利用可能性に喜んでいます。ライセンスに関しては、Squishの柔軟なライセンスが特に魅力的だと感じています。

Squishを選択する前に、Kitwareは自社開発の記録/再生イベントシステムや、いくつかのスクリーンクリック/キャプチャプログラムなど、他の可能性も検討しました。しかし、どれもSquishのような利便性とパワーを提供するものではありませんでした。Hoffman氏は、Squishでは新しいテストを簡単に追加できること、そして標準言語(KitwareではPythonを使用)を使用してテストが記録され、記録後に編集できるというSquishの汎用性が決め手となったと語りました。

KitwareはSquish Spyを大いに活用しています。これは、実行中のアプリケーションにアクセスできるツールです。Spyを使用して、アプリケーションのすべてのオブジェクト(メニュー、ウィジェット、リスト内のアイテム、テーブル、ツリーなど)をナビゲートしたり、特定のオブジェクトのプロパティ(有効かどうか、テキスト、フォント、色など)を一覧表示したりすることができます。また、このツールを使用して検証ポイントを設定し、テスト実行の特定のポイントで、指定したオブジェクトのプロパティの値を評価し、あるべき値であるかどうかを確認することもできます。

 

Squish の実践

Kitwareが特に有益だと感じている機能の1つは、GUIの変更に直面したときのSquishの堅牢性です。また、ゼロから新しいテストを書いたり、記録されたテストを編集したりする機能は、すべて使い慣れた既製の言語を使用しているため、特に有益であることが証明されています。

Hoffman氏はSquishのテクニカル・サポートについて「とてもいい」と率直に語りました。

Kitwareが遭遇した主な問題は、アプリケーションのGUIが変更された場合のテストの堅牢性です。Squishのオブジェクトマップは、特にこのような状況で役立つように設計されています。なぜなら、テストエンジニアは、GUIの変更の結果変更されたプロパティ値を追加/変更することで、これらのオブジェクトを参照するテストコードを変更することなく、アプリケーションオブジェクトの識別方法を変更することができるからです。もちろん、アプリケーションが大幅に変更され、アプリケーションオブジェクトが追加または削除された場合、その変更を考慮するために、ある程度のテスト編集が必要になるかもしれません。

多くの顧客はプロパティベースの検証(たとえば、数値や文字列値の比較)を好みますが、Kitwareも同様にプロパティベースの検証を使用しています。しかし、Kitwareでは、Squishのスクリーンショット検証機能も大いに活用しています。この機能では、基本的にアプリケーションの「screenshot」がテスト記録中に撮影され、後日テストが再実行されたときにこれらのscreenshotが比較されます。

Squishやさまざまな社内ツールに加え、Kitwareではテスト作業の一環としてさまざまなツールを使用しています。その中には、Kitware独自のウェブベースのソフトウェアテストサーバーであるCDashも含まれています。実際、KitwareはCDash用のSquish統合を開発しましたが、これは非常に簡単でした。

結論

Kitwareは、Squishを使用することで、以前よりもはるかに優れたテストカバレッジが得られることを発見しました。また、Squishのテストが、開発および提供するアプリケーションの品質向上に直接的な効果をもたらしていることもわかりました。また、Squishのテクニカルサポートは、必要なときにいつでも真に役立つものであることもわかっています。

Squishの無料トライアルや対応プラットフォームなどの詳細は、こちらからご覧ください。


Blog Topics:

Comments