European XFEL(英語)(European X-Ray Free-Electron Laser Facility)は、リニアックベースの自由電子レーザー光源の設計、建設、運用、開発を専門とする多国籍の非営利研究機関で、世界中の科学者に特異な研究機会を提供しています。
世界最大級のX線レーザーを有するEuropean XFEL(EuXFEL)は、新しい医薬品や治療法の開発(英語)、エネルギー貯蔵の革新的なソリューション、さらには複雑な地球内プロセスの解明など、物質とエネルギーの基本的な側面に関する多岐にわたる応用科学研究を推進しています。
このような先駆的な科学的探求が可能となるのは、X線レーザーの非常に高いピーク輝度(英語)、高い繰り返し周波数(1秒間に27,000回)、そして極めて短いパルス時間(100兆分の1秒未満)があるおかげです。
世界中から一流の科学者たちがEuropean XFELに集まり、最先端のインフラと装置を駆使して複雑で先進的な実験を展開しています。多くの科学者が短期間滞在するため、初めて複雑な装置を操作する経験をすることも少なくありません。このような状況下で、そしてこれほどの影響力を持つ研究を支援するために、X線レーザーの操作と管理を担うソフトウェアツールは、高品質で十分にテストされたソリューションであるべきだというのは自明の理です。
SquishGUIテスターは、EuXFELのソフトウェア開発者が、施設のX線運用を支援する制御・診断ソフトウェアKaraboのグラフィカル・ユーザー・インターフェースを検証するための重要なツールです。EuXFELのソフトウェア・テスト・マネージャーであるAnna Klimovskaia氏に、Squishを使用した自動GUIテストがソフトウェアのライフサイクルと開発プロセスにどう組み込まれているかについて、詳しくお話しを伺う機会がありました。
“私たちは手作業でのテストを行うためのリソースを持っていません”
Karaboフレームワークは、EuXFELのハードウェア操作を支援するソフトウェアとして機能する自社開発の監視制御およびデータ収集(SCADA)システムです。KaraboのGUIは、Pythonで書かれたクライアント/サーバー・アーキテクチャを使用し、標準的なQtとカスタムUIの両方のコントロールを備えて構築されています。その主要な機能は、EuXFELの実験ハッチ内の機器、例えば磁石やアンジュレータの操作、モーターの動作、ポンピングの開始、長いトンネル内のその他のハードウェア操作などを行うことです。
研究所を訪れる科学者たちは通常、5日間の実験をハッチ内でスケジュールし、Karabo GUIと対話しながら研究を進めます。時間という制約がある中で、Karaboが機能的で欠陥のない状態を維持することは、極めて重要な課題となっています。
“GUIは、複雑なハードウェアのセットアップに対して、直感的に操作できるヒューマンインターフェースを提供する役割を果たしています”
そのため、クリモフスカイア氏と彼女のチームは、研究者たちが成功を収めるために、KaraboフレームワークのGUIテストを自動化するツールとしてSquishを採用しています。
コマンドライン・インターフェイスからのテスト開始のサポート
ユーザー定義ライブラリが使用可能
クロスプラットフォームのサポート
GUIテスト・ツールを選定する際、チームはコマンドライン・インターフェイスからのテスト開始が可能なソフトウェアを求め、ユーザー定義ライブラリの使用も許可されている必要がありました。さらに、KaraboはWindowsだけでなく、さまざまなLinuxディストリビューションでも動作するため、クロスプラットフォームのサポートも重要な要素でした。これらの要件を満たす中で、Squishが最も適切な選択肢として選ばれました。
“利用可能なすべてのプラットフォームでGUIテストを実施することは、私たちにとって非常に重要です”
クリモフスカイア氏にSquishの日常的な使用方法について尋ねたところ、彼女は大半の時間をライブラリ開発に費やし、実際のテスト開発にはそれほど時間を割いていないと答えました。彼女のSquishテストは、Squishがインスタンス化されたRobot Framework(英語)を使用して開始および記録されており、主な目的は、再利用可能なSquishライブラリ関数を呼び出すRobot Frameworkのキーワード駆動型のシナリオを開発することです。
Klimovskaia氏は、Squishのプロパティ検証機能を活用してリグレッション・テスト手順を実装しています。Karaboのオブジェクト・プロパティのスナップショットを取得し、異なるプラットフォームでテストを実行して、実行時に違いがあればそれを検出します。社内で開発されたテスト結果データベースを使用し、毎晩の実行から収集されたテストデータが保存、集計、処理され、開発チームに対して透明にされています。
“ビームタイムは、資本コストの観点からも、科学的な利用者にとっても、非常に貴重な資源となっています”
インタビュー中、クリモフスカイア氏は、バグやクラッシュによるKaraboフレームワークのダウンタイムは、EuXFELの科学利用者の実験中に避けるべき重要な課題であると強調しました。彼女は、「彼らが得たデータを利用し、再利用し、分析することができる。これは、彼らの分野での大きな進展です。」と語りました。そのため、チームはユーザーがストレスなくスムーズに利用できるよう、GUIテストへの多大な投資を行っています。
将来的には、開発チームはユニットテストフレームワークと連携し、テストスイートのGUIカバレッジを拡大し、Karaboのさらなるシーンをカバーすることを計画しています。Karaboの新しいシステムが展開されるにつれ、より多くのプラットフォームでのテスト実施も予定しています。Klimovskaia氏は、当社のエンジニアによる高いレベルの技術サポートについても言及し、Squishの実装に関連するチームの問題解決に当社が貢献したと述べました。
私たちは、EuXFELとの継続的な協力関係を楽しみにしており、同研究所で進展している先駆的な研究から生じる新しい技術的および科学的進展についての知識を深めたいと考えています。
SquishをはじめとするQtのQA(品質保証)ツールにご興味のおありの方は、Qt JapanのEメールアドレス:japan@qt.ioまでお気軽にご連絡ください。概要のご説明から詳細な技術的相談、またツールトライアルのご案内もいたしております。