バイオ・ラッドについて
バイオ・ラッドは、ライフサイエンス研究・臨床診断製品の製造・販売を行う多国籍企業です。従業員数は5,000人を超え、世界中に支社が存在します。バイオ・ラッドは自社のハードウェアとそれをサポートするソフトウェアを開発しています。
バイオ・ラッドのUIオートメーション担当SQAエンジニアであるJoshua Niehus氏からSquishの利用について話を聞きました。Joshua Niehus氏はソフトウェアテストの分野で8年間働いており、Squishの他にもQA Wizard Pro、Ranorex、Silk Testなど、いくつかのGUIテストツールを使用した経験があります。
Squishが使われているバイオ・ラッド製品
バイオ・ラッドには多くの製品ポートフォリオがありますが、 Joshua Niehus氏は特にImage LabとImageLab iOSの2つに注力しています。
ImageLabソフトウェアは、バイオ・ラッドのハードウェア・イメージング・システムを制御し、タンパク質/DNA ゲル画像を解析します。間もなくリリースされるImageLab iOSソフトウェアは、軽量クライアント(クライアントまたはアプリケーションを使用し、両方を使用することはできません)で、大学の生物学部、研究機関、製薬会社で機器の制御や画像の処理に使用されています。これらのアプリケーションは、大学の生物学部、研究機関、製薬会社で使用されています。
ImageLabは Qt 4 を使用して構築され、WindowsとMac OS Xでテストおよびデプロイされています。ImageLab iOSのプロトタイプは、ネイティブのiOS GUIライブラリを使用して書かれており、iOSシステム上でテストされ、デプロイされています。
Squishの選定理由
2009年、ImageLabソフトウェアのGUIテストを行う要件が発生しました。当時、Joshua Niehus氏はSquishを使用したことも、聞いたこともありませんでしたが、QA Wizard Proの導入を試みました。多くの問題が発生したため、開発者にアドバイスを求めたところ、Squishが提案されました。
“約1週間後、興味を持っていた機能(テーブル、ビュー、オブジェクト階層)を広範囲に実行するスクリプトを立ち上げ、テストケースの実行時間を大幅に向上させることができました。当社の目的においては、Squishがあらゆる面でQA Wizard Proより優れていることは明らかでした。”
バイオ・ラッド社がSquishを選択した決め手は、いくつかの要素がありました。前述の項目に加え、SquishのMac OS Xサポート、堅牢なアプリケーションオブジェクトのイントロスペクション、標準的なスクリプト言語のサポートが、テスターにテスト用の独自言語を習得・使用させるよりも優れていたのです。
バイオ・ラッドのSquish活用方法
Squishの習得は簡単であることがわかったので、ImageLabとImageLab iOSのテストにJavaScriptを使用することにしました。(Squishは次のようなスクリプト言語をサポートしています: JavaScript、Perl、Python 2、Ruby、Tcl)
Joshua Niehus氏は、Squishの機能で最も気に入っているのはアプリケーションオブジェクトのイントロスペクションのサポートであること、また、Squishのテストスイート構造、特に1つのフォルダに1つのテストスイートというアプローチの方を好んでいると述べています。
バイオ・ラッド社では、Squish Spyを使用することはほとんどありませんが、Squishによってキャプチャされたオブジェクトを簡素化および明確化するために、定期的にObject Mapを編集しています。Squish Object Mapは、プロパティによってアプリケーションオブジェクトを識別する手段を提供しますが、座標のような変動の大きいプロパティは除外されます。Object Mapは、アプリケーションの変更に際してSquishのテストが非常に信頼性が高く、堅牢であるための重要な要素です。
Image LabとImageLab iOS製品のためのSquishベースのテストフレームワークは、作成に多少の時間と労力を要しました。このフレームワークを導入したことで、バイオ・ラッド社は重複するテストコードを大幅に削減し、アプリケーションの変更を猶予をもって処理することが可能になりました。
バイオ・ラッド社のテストプロセスは、エンジニアが特定の機能のテストケースのアウトラインを書くことから始まります。このアウトラインは多くの場合、さらに発展させて実際のワークフローのコンテキストに配置され、その後、アウトラインはSquishテストケースとして作成されます。
Squishの使用を開始して以来、アプリケーション用に60のテストケースを作成し、合計で10,000以上の検証ポイントを作成しました。Squishは、ウィンドウ全体や個々のウィジェットなどのスクリーンショットの検証をサポートしていますが、ImageLabとImageLab iOSのテストでは使用していません。
バイオ・ラッド社では、JenkinsとSquishの統合を、テスト実行のトリガーやスケジュール、レポート作成に利用しています。一連のPythonスクリプトを組み込んでおり、Squishのテスト・スイートとテスト・ケースに基づいて、リグレッション・テスト、スモーク・テスト、ランダム・テストの3種類のレポートを出力できます。
まとめ
“Squishは、私が使った中で最高のGUIテストツールです。ランタイムパフォーマンスは素晴らしく、起動と実行の「障壁」が低く抑えられています。私が使用した他のどのツール(Ranorex、Silk、QA Wizard Proがあります)よりも、はるかに軽量で柔軟だと感じられます。”
さらに、Squishを使用することで、テストサイクルの短縮、テスト範囲の拡大、テストの信頼性の向上が実現し、これらすべてがアプリケーション品質の向上に大きく貢献することがわかりました。
Joshua Niehus氏が自身の経験を分かち合うために時間を割いてくれたことに感謝するとともに、バイオ・ラッド社が今後Squishを使って実現する素晴らしい成果を期待しています。
Squishのトライアルをご希望ですか?