mabl では、CI/CD パイプラインのあらゆる段階で信頼性の高いエンドツーエンドテストを実行できます。CI/CD 環境全体で継続的にテストを行うことで、ソフトウェア開発者、QA エンジニア、プロダクトマネージャー、その他のビジネス関係者に対し、課題が事前に解決されているという安心感を提供します。
mabl テストを DevTestOps ワークフローの一部として実行する方法は 2 つあります。1 つは、デプロイメント後にテスト環境で実行する方法、もう 1 つは開発プロセスのさらに早い段階、コードビルド後に実行する方法です。この記事では、プル(マージ)リクエストのテストに関する考慮事項や、追加のハウツーリソースへの参照を含め、これら 2 つのオプションの概要を説明します。
デプロイでテスト
デプロイメントエベントを使用すると、CI/CDパイプライン内でコードがホスティング環境にデプロイされると同時にmablテストを実行できます。すべてのmablテストは設計上、環境をまたいで実行できるため、一時的なプレビュー環境でのプル/マージリクエストのテストから、永続的なステージング環境、さらには本番環境まで、同じテストを複数の環境で簡単に実行できます。

3つの環境を持つCI/CDパイプラインの例
デプロイメントエベントは、mablクラウドでテストを実行するトリガーとなります。テストは並行して実行され、スクリーンショットやネットワークアクティビティなどの詳細な診断データを収集し、フィードバックへの迅速な対応を支援します。
デプロイ時にmablテストを実行
デプロイ時にテストを実行するために mabl ワークスペースを設定するには、実行したいテストを1つ以上のプランに整理してください。どのプランを実行するか制御するには、プランラベルを使用できます。現時点では、mabl でデプロイメントエベント用にテストラベルを使ってテストのグループを実行することはできません。
テストをプランにまとめた後、次のいずれかの方法でmablデプロイイベントを作成します。
- 既存のCI/CDインテグレーション - GitHub Actions、Jenkins、Bitbucketなど。
- mabl CLI - Node.jsパッケージをインストールして実行できる任意のCIツールと統合できます。
- mabl API - mabl CLIが使用できない場合や、より詳細な制御が必要な場合にCIツールと統合します
モバイルビルド
デプロイ時にモバイルビルドをテストする場合、mabl CLIを使ってモバイルビルドをプログラムで管理できます。詳細はこちら。
プルリクエストをテスト
多くのソフトウェア開発チームは、プルリクエスト(PR)のレビュー プロセスの一環として、ユニットテスト、静的解析、その他さまざまなコードチェックを実行しています。一部のツールでは、このプロセスはマージリクエストと呼ばれています。PRチェックは非常に価値があり、開発プロセスの早い段階で課題を発見するのに役立ちます。また、PRレビュー担当者にコード品質の劣化が存在するかどうかのインサイトを提供することで、コードレビューのプロセスを効率化します。
これまで、チームはエンドツーエンドテストのUIテストをPRチェックの一部として追加することを避けてきました。なぜなら、これらのテストは不安定で壊れやすく、実行も非常に遅かったからです。しかし、mablの動的ウェイト、自動修復、並列実行、ヘッドレスモードなどのおかげで、もはやそのような問題はありません。PR段階でUIやAPIレイヤーに対してエンドツーエンドテストを実施することで、コード変更の承認に対するチームの信頼度がさらに高まり、継続的デリバリープロセスの加速にもつながります。

mablのテスト結果がGitHubのPRチェックとして表示されます
PRチェックとしてmablテストを実行する
mabl では、GitHub Checks や BitBucket Code Insights との連携を利用して、PR のテストを開始できます。これらの連携は、チームがプッシュされた PR コードを通常は一時的なテスト環境にデプロイし、mabl クラウドからテストできることを前提としています。必要に応じて、mabl リンクを使って安全なトンネルを確立することも可能です。
mabl CI Runnerを使用する
あるいは、PR用のテスト環境が利用できない場合や、すべてのPRでmablクラウド上でテストを実行したくない場合は、コードリポジトリをmabl CI runnerを使うように設定し、ビルドプロセス中にヘッドレスモードでテストを実行することができます。mabl CI Runnerを利用することで、アプリケーションをテスト環境にデプロイすることなく、開発ライフサイクルのより早い段階でエンドツーエンドテストからフィードバックを得る「シフトレフト」が可能になります。
mabl Runnerの主な違いは、これらのテストが自分のCI/CDインフラ内で実行される点です。テストとテスト対象のアプリケーションの両方が、CIコンテナまたは仮想マシン(VM)内で実行されます。
クラウド実行とは異なり、CI 実行は並列実行をサポートしていません。CI 実行は、共有環境へのデプロイ前に少数のテストで素早く成功/失敗を検証するのに最適です。さまざまな実行環境間の優先順位やトレードオフについて詳しく知りたい場合は、ローカル、CI、クラウド実行によるテスト実行の最適化に関する記事をご覧ください。