ノンプログラミングテスト自動化
シナリオ組立て方式
SWATHubは、Web GUIベースのシナリオ組立て方式のテスト自動化ソリューションです。テスターはSWATHubの画面ライブラリで管理されているビジネスオペレーションをドラッグ&ドロップで、コーディングなしにビジネスフローを完成させることができます
画面ライブラリ
SWATHubは、テスト対象のWebページを解析し、そのなかで関連するオブジェクトや要素からビジネスオペレーションを認識します。これら情報は画面ライブラリで管理します。
SWATHubは、様々なWebページに対応できるよう各種テンプレートを用意しております。HTML5標準をデファクトにし、Bootstrap、Material Design Liteなどのフレームワークへも対応しております。
テンプレートをカスタマイズして、特別なインタラクティブなオペレーションを認識させることもできます。
テスト自動化機能
フレームとウィンドウの切替え - ネストされたフレームを持つWebアプリケーションのテスト自動化は非常に複雑になりますが、SWATHubは異なるフレーム内のオペレーションを識別することができ、実行中にフレームコンテキストを自動的に切替えることができます。また、複数のウィンドウ処理についてもサポートしてます。
アラート処理 - アラート、確認ダイアログ、およびプロンプトを含むJavaScriptポップアップはよく使われるチェックポイントです。 SWATHubはポップアップの表示を待ち、承諾または、キャンセル、表示テキストの取得、さらにはスクリーンショットのキャプチャを行うことができます。
ファイルアップロードとダウンロード - テスト自動化シナリオでは、ファイル操作はブラウザに依存するため非常に厄介ですが、SWATHubは最新のすべてのブラウザでファイルのアップロードとダウンロードを可能にします。
AJAXのサポート - 一般的なフロントエンド技術として用いられるAJAXは、部分的にWebページをリフレッシュしDOMを頻繁に変更するため、静的オブジェクトIDも常に変更が生じる複雑なページ構成です。このような複雑な処理に対して、SWATHubは表示されている動的なWebページをそのまま解析し、オブジェクトの解釈やその配置に関する関連性なども認識して動的なリッチなページに対してもサポートします。
マルチセッションのサポート - SWATHubは、複数のブラウザセッションを同時に起動して、異なるユーザーロール、複数のWebサイト、または、さまざまな時系列で複雑なビジネスシナリオをシミュレートすることができます。
外部システム連携 - SWATHubは、システム間のトランザクションをシミュレートするために外部システムを呼び出すことができます。 例えば、テストデータを準備するためにDatabase APIを最初に呼び出し、次にトランザクションを実行するブラウザアクションをトリガーにし、最後にDatabase APIを介してトランザクションステータスを確認させる、などのことができます。
シナリオステップの繰返し - 複雑なテストシナリオをサポートするために、オペレーションとビジネスフローを含む各ステップを繰返すことができます。 たとえば、検索結果を複数ページに移動する操作を繰返す、などのことができます。
デザインパターンのサポート
三層レイヤーモデル
SWATHubは、オペレーションレイヤー、フローレイヤー、シナリオレイヤーの3層レイヤーでシナリオ作成とメンテナンスを行います。 画面ライブラリで管理されている情報からWebオブジェクトの適切な組み合わせで画面オペレーションが自動的に生成されます。いくつかの連続した画面オペレーションで業務としての意味を持つシナリオをフローとして登録することができます。画面操作を意識せず、一連の業務フローをこれらフローの組合せで作成することができます。オペレーション、フローを再利用することでシナリオ作成とメンテナンスの手間を大幅に削減することができます。
データ駆動
SWATHubは、テストシナリオ内でハードコードされたデータを排除し、単一のテストシナリオで複数のテストデータと検証可能な出力を提供できるデータ駆動型テスト(DDT)をサポートします。さらに、データによってシナリオの分岐の実現も可能です。
ビヘイビア駆動
SWATHubは、要件段階でモックアップを利用してユーザストーリーを作成し、開発段階で自動テストすることができます。ソフトウェア開発チームや要件チームなど異なったロール間の共有ツールとして用いることができ、ソフトウェア開発における共同作業のプロセスを担うBDD(Behavior-Driven Development)の考えを取り入れてます。
テストメンテナンスが簡単
マルチプラットフォーム / 実行ノードのサポート
SWATHubは、Selenium WebDriverを利用して様々なプラットフォームをサポートします。
SWATHubは、異なる環境下で実行ノード(テスト自動実行用のクライアントノード)をサポートします。
- WebDriverによるデスクトップ / ラップトップ上のローカルブラウザ。
- Appiumを介して実際のデバイス上のモバイルブラウザ。
- Selenium Grid、Sauce Labs、またはBrowserStackなどの拡張サービス
SWATHubは、各テストプロジェクト内の実行ノードをそれぞれ管理します。
- ノードは、すべてのプロジェクトメンバーが共有することや所有者専用にすることができます。
- 実行ジョブは、特定のノードまたは同じ名前のノードグループに割り当てることができます。
OS | Browsers |
---|---|
Windows 10 | Firefox, Chrome, Edge, IE 11 |
Windows 8.1 | Firefox, Chrome, IE 11 |
Windows 8 | Firefox, Chrome, IE 10 |
Windows 7 | Firefox, Chrome, IE 8/9/10/11 |
Windows Vista | Firefox, Chrome, IE 7/8/9 |
Windows XP | Firefox, Chrome, IE 6/7/8 |
Mac OS | Firefox, Chrome, Safari |
Linux | Firefox, Chrome |
iOS | Safari |
Android | Chrome |
実行のスケジューリング
ジョブは、SWATHubでの自動テストの実行を設定、およびスケジュールするための基本単位です。
- 1つのジョブで1つまたは複数のテストケースを割り当てることができます。
- 1つのジョブに複数のプラットフォームに割り当てることができます。
- 1つのジョブに複数の実行ノードに割り当て、ケースを並行実行することができます。
- 1回の実行設定をジョブに適用して、グローバル設定を上書きすることができます。
ジョブを柔軟に開始、停止、削除、スケジュールすることができます。
- 複数のテストケースを異なるプラットフォーム間で同時に実行できます。
- Jenkinsとの統合により、定期的なテストの実行を設定することができます。
自動検証
ブラウザ検証
SWATHubを使用すると、ブラウザのURL、Webページのタイトル、特定のWebオブジェクトのテキストとスタイル、JavaScriptポップアップのテキストなど、Webアプリケーションのさまざまな側面で自動検証ができます。
スクリーンショット検証
画像検証では、ベースライン画像とスクリーンショットとの比較もサポートされています。
マルチチェックポイント
自動検証において、テストシナリオ内に複数のチェックポイントを配置し、検証が失敗した場合に実行を終了するか継続するかを設定することができます。
マニュアル検証
エビデンス取得と出力
SWATHubは、スクリーンショット、HTMLソース、ダウンロードされたファイル、JavaScriptエラーログなど、さまざまなテスト結果を取得でき、手動検証を容易にします。
テストのエビデンスは、さらなる検証やレポート作成のために、XLS、HTML、ZIPなどのいくつかの形式にエクスポートできます。
検証ツール
SWATHubとともに複雑な検証作業を行う様々なオープンソースツールをスマーテックワーク社では開発しています。たとえば、HTMLソースの2つのセットの違いを強調する「HTML比較ツール」、異なるプラットフォームの複数のスクリーンショットを1つのXLSシートに並べて配置できる「スクリーンショット一括出力ツール」、テスト結果を一括してダウンロードして保存できる「テスト結果出力ツール」などがあります。
スマーテックワークス社が提供したオープンソースツールを改造して特別なニーズを応えることも可能です。
チーム管理
SWATHubはテストプロジェクトにおけるチームコラボレーションを容易にします。デザイナー、品質管理者、ステークホルダーを含むすべてのメンバーが、同じ作業スペース上で情報共有し、コラボレーションしながら作業を行う事ができます。
テストプロジェクトでさまざまな役割と権限を定義することができます。
テストウェア管理
複数のテストセットを作成して、さまざまなテストの目的にあわせテストシナリオとケースを編成できます。
管理を容易にするために、グループ化、タグ付け、フィルタリング、検索などが用意されています。
テストシナリオはプレーンテキストファイルとしてエクスポートし、任意のバージョン管理システムに格納できます。また、テストケースをXLSファイルでエクスポートおよびインポートし、テストデータを効率的にセットすることができます。
テスト結果のエビデンスは、ZIPまたはXLSファイルとしてエクスポートすることができます。
レポート機能
拡張性
テストシナリオの拡張
テストシナリオの中で、SWATHubはデータベース、バックエンドなどの相互接続されたシステムと通信するためのエントリーポイントを提供し、ケースに必要な情報を取得します。
テストウェア処理の拡張
SWATHubには、テストシナリオ、テストケース、ビジネスフローなどのテストウェアを処理するためのAPIが用意されています。たとえば、バージョン管理を行うために全てのテストウェアをプレーンテキストファイルとしてエクスポートし、バージョン管理システムに格納することができます。
外部連携
システム管理
システム管理者は、ユーザのロック/ロック解除、ワークスペースへのアクセス、パスワードのリセットなど、SWATHub のすべてのユーザを管理することができます。
ワークスペースのインポート/エクスポート、有効化/無効化などのプロジェクトメンテナンスオペレーションを行うことができます。
個々のプロジェクトにページリポジトリーのサイズやテストエビデンスのサイズなどのリソースの割当を設定することができます。