Quality Assurance
Tools for Quality Assurance and Test Automation
JetBrains が提供するテスト自動化用の強力な IDE「Aqua」の紹介
現代のソフトウェア開発において、QA とテストエンジニアリングは不可欠な要素です。 JetBrains は、どんな仕事でも適切なツールを使用することが重要だと考えています。 そのため、さまざまな役割が伴うソフトウェア開発チームのニーズに対応できる自動化テスト開発向けのツールを別途作成することは、当社にとって自然な流れでした。
テスト自動化用の強力な最新 IDE、JetBrains Aqua をご紹介いたします。 Aqua は既存の JetBrains 製品とは異なる特有の機能セットを提供します。 Aqua には、多言語 IDE(JVM、Python、JavaScript などをサポート)、HTTP クライアント、データベース管理機能、Docker のサポート、TMS クライアント、UI 自動化用の新しい強力なウェブインスペクターなど、テスト自動化エンジニアが日常的に必要とするすべての機能が組み込まれています。
皆さんが JetBrains Aqua を試し、その設計に意見を反映できるよう、パブリックプレビューを公開することになりました。 このプレビューについては、記事の最後で詳しく説明しています。
JetBrains Aqua はインテリジェントなコンテキスト認識型の IDE で、Java、Kotlin、Python、JavaScript、TypeScript、SQL を理解し、各言語に対応したインテリジェントなコーディング支援を提供します。
他の JetBrains IDE と同様、Aqua はオンザフライのインスペクション機能によってコードの品質と妥当性をチェックします。 問題が見つかった場合は IDE がコンテキストアクションを提案し、問題の解決を支援します。 電球アイコンをクリックする(または Alt+Enter を押す)と、コンテキストアクションが起動します。 言語を認識するコード補完、エラー検出、オンザフライのコード修正をご利用ください!

スマート検索を使用して、クラス、ファイル、シンボル、IDE アクション、またはツールウィンドウにジャンプできます。 この機能を使用するには、Shift を 2 回押してから、検索対象の名前を入力してください。

安全な名前の変更と削除、メソッドの抽出、変数の導入、変数またはメソッドのインライン化などのリファクタリングで、IDE のコードインテリジェンスを最大限に活用できます。 言語とフレームワークに固有のリファクタリングにより、プロジェクト全体に変更を適用できます。
ユニットテストフレームワーク
コーディング支援と GUI ベースのテストランナーを使って、テストを作成して実行できます。 JetBrains Aqua では、JUnit、TestNG、Pytest、Jest、Mocha などの一般的なフレームワークを使ってユニットテストの作成、実行、およびデバッグを行えます。 テスト結果を IDE 内で確認できるため、ツリービュー内のナビゲーションやテストソースへの移動も簡単です。

UI の自動化
新規プロジェクトウィザード
Aqua では JVM スタック用の新しい UI テストプロジェクトを生成できます。New Project(新規プロジェクト)ウィザードで JDK、ビルドツール(Maven または Gradle)、テストランナー(JUnit または TestNG)、および言語を指定できます。

コードインサイト
Aqua は Selenium API と Selenide のサポートが充実しており、Selenium API やその他多くの UI テスト用ライブラリで使用される CSS、XPath、および JavaScript フラグメントのコードインサイトを提供しています。

ページオブジェクトテンプレート
ページオブジェクトパターンに従う場合、IDE の New File(新規ファイル)メニューから新しいページオブジェクトファイルの作成と保守を行えます。ロケーターを追加する際には、選択したページオブジェクトパターンが考慮されます。

ウェブインスペクター
組み込みのウェブインスペクターを使用すると、Aqua 内にウェブアプリケーションを表示して自動化テストに必要なページ要素をキャプチャできます。 Aqua はウェブページの選択した要素に固有の CSS または XPath ロケーターを生成し、そのソースコードへの追加を支援します。 同じ要素を一意に識別するロケーターが 2 つ以上ある場合は、ウェブインスペクターによってすべての候補が提案されます。

テストを保守する際は、Aqua で既存のロケーターを検証できます。 ウェブインスペクターを使って CSS セレクターまたは XPath を検証し、必要な要素をロケーターが識別したかどうかをチェックできます。

ウェブインスペクターが有効な場合、CSS と XPath のコード補完機能によって最も重要なウェブページ要素のロケーターが提案され、ハイライトされます。

ウェブインスペクターを別ウィンドウに切り離し、大きな画面での使い勝手を向上させることも可能です。
API テストと環境のセットアップ
HTTP クライアント
HTTP リクエストを送受信するウェブサービスを開発する際は、Aqua の組み込み HTTP クライアントでリクエストの作成と編集を手軽に行い、コード補完、ハイライト、リファクタリングなどの多彩なコーディング支援を得ることができます。

Docker
Aqua では Docker コンテナーにアクセスできるため、その実行とデバッグ、イメージのダウンロードとビルド、およびマルチコンテナーアプリケーションの実行が可能です。

データベース
JetBrains Aqua では、アプリケーションデータを準備するのに特別なツールは必要ありません。 IDE から直接複数のデータベースをシームレスに処理し、SQL スクリプトを開発したり、低レベルのデータアサーションを実行したりできます。 Aqua のビジュアルインターフェースでは、稼働中のデータベースへの接続、クエリの実行、データのエクスポート、およびスキーマの管理を行えます。 つまり、IDE から Oracle、SQL Server、PostgreSQL、MySQL、およびその他のデータベースにアクセスできます。

TMS
テストには通常、課題トラッカーと TMS(テスト管理システム)へのリンクが含まれます。 これらを含められるようにするため、開発者は Allure Framework などのレポーティングライブラリか、Serenity BDD などの組み込みテストフレームワークのメカニズムを使っています。 そこで、これらのライブラリのアノテーションのサポートを追加し、課題 IDE をクリックするだけで IDE が課題や TMS ケースをウェブブラウザーで開くようにしました。

Aqua は TestRail などの外部 TMS システムに接続できるため、IDE からテストへのアクセスがより簡単になっています。 テストスイートとケースの階層を閲覧する機能だけでなく、TMS 項目のナビゲーションもサポートしています。 また、選択したテストシナリオのユニットテストを生成し、自動化されていないテストケースや廃止されたテストメソッドを検索することもできます。

Aqua はテストデータの保存と管理をアジャイルに行う実験的な “ローカル TMS” の手法もサポートしています。 ローカル TMS はテストデータを t.md
および r.md
ファイルのコレクションとしてプロジェクトに保存します。 この手法により、自動化テストのブランチ作成、バージョン管理、レビュー、高度な統合が可能となっています。
テスト自動化用の完全な IDE を作成することは、重要な取り組みです。 プレビュー段階では引き続き活発な開発が行われており、継続的な機能の実装と改善が行われているため、一部の機能は期待どおりに動作しない可能性があります。 JetBrains Aqua の改善に役立てるため、製品の機能や不足している機能に関するご意見を募集しています。 最高のテスト自動化 IDE を共に作り上げましょう!
最新のプレビュービルドは、Toolbox App または JetBrains ウェブサイトからダウンロードできます。
フィードバックの送信やご質問には、こちらのフィードバックフォームをご利用ください。
ブログをご購読いただくと、最新の機能改善に関する情報が届きます。また、Twitter もぜひフォローしてください!
自動化テストをお楽しみください!
Aqua チーム一同
オリジナル(英語)ブログ投稿の作者: