TestRailで実現する円滑なテスト自動化

Diogo Rede著

この記事は、「TestRailで実現する円滑なテスト自動化」と題したシリーズ記事の一部です。このシリーズでは、次の図のように、自動テストの結果をTestRailに集約する方法を詳しく説明します。

TestRailはテスト設計、テスト計画、テスト実行、レポートなど、あらゆるテストアクティビティを1か所に集約できるテスト管理ツールです。それに加えて、さまざまな課題トラッカーとの統合機能や、その他のツールとの統合およびカスタマイズに利用できる機能も用意されています。

この記事では、UIスクリプトおよびTestRail APIを使用してTestRailを強化し、自動テストの実行およびデバッグをTestRailから効率的に行う方法を説明します。説明では、テスト自動化フレームワークとしてPytest、ソースコード管理システムとしてGitHub、テスト自動化オーケストレーターとしてJenkins、そしてTestRail APIに自動テストの結果をアップロードするインターフェイスとしてTestRail CLIを使用します。目的の達成に必要なすべての要素について順に概要を説明した後、一連の個別記事でより詳細に各要素を達成する手順を説明します。

ステップ 1: Pytestの自動テストプロジェクトをセットアップする

まず、Pytestの自動テストサンプルプロジェクトを紹介し、インストール方法およびローカルマシンでテストを実行する方法を説明します。このプロジェクトはTestRailの自動化フレームワーク統合GitHub リポジトリにホストされているので、ソースコード管理プラットフォームとしてGitHubを使用し、プロジェクトのソースコードを取得します。ローカルシステムにPythonをインストールし、いくつかコマンドを実行してプロジェクトをインストールおよび実行すると、簡単に次の画像のワークフローを達成できるはずです。セットアップが完了したら、何度でも繰り返し自動テストプロジェクトを実行したり、ニーズに合わせてプロジェクトをカスタマイズしたりできます。

ステップ 2: CIツールとしてJenkinsを使用して自動テストプロジェクトをオーケストレーションする

初めはローカルマシンで自動テストを実行するのでも十分かもしれませんが、この方法はスケーラブルではなく、チームが個人に依存することになる、同じプロジェクト実行環境を再現できない、組織全体で可視化できないなどのデメリットもあります。こういったデメリットを避けるには、CIツール(今回の例ではJenkins)を使用して自動テストプロジェクトのオーケストレーションを自動化する必要があります。GitHubからソースコードを取得し、シェルスクリプトを使用して、ローカルマシンで実行するのと同様にテストを実行するジョブを作成します。すると、最初のワークフローに似ていますが、CIシステム上で処理を行うワークフローができあがります。

ステップ 3: 自動テストの結果をTestRailに送信する

CIツールでテストを実行できるようになったので、次は、TestRailと統合してテスト結果を参照できるようにします。それには、JUnitレポートを解析して結果をTestRailにアップロードするTestRail CLIの機能を使用します。まず、JUnit形式のレポートを生成するようPytestを設定する必要があります。PytestはJUnit形式のレポートをサポートしており、コマンドライン引数で簡単に指定できます。JUnit形式のレポートを生成するようPytestを設定したので、あとはTestRail CLIをインストールするだけで、簡単なコマンドひとつでテスト結果をTestRailに送信できます。すると、ワークフローは次の図のようになります。

結果として、Jenkinsジョブが実行されるたびに、TestRail CLIがTestRailに新しいテストランを作成してテスト結果を設定します。結果はTestRailの[テスト ランと結果]ページに表示され、他のテストランと同様に、テスト結果の詳細に移動して失敗したテストをデバッグしたり、テスト結果を変更したり、コメントを追加したりできます。

ステップ 4: UIスクリプトを使用してTestRailからJenkinsジョブをトリガーする

最後に、UIスクリプトを使用してワークフローを完成させます。TestRailにウィジェットを追加し、Jenkinsジョブをトリガーしてビルド情報を取得し、最新のビルドで何が起きているかをすばやく把握できるようにします。TestRailカスタマイズGitHubリポジトリJenkinsビルドUIスクリプトがあります。スクリプト先頭にある設定変数をニーズに合わせて変更し、TestRailの[管理]>[カスタマイズ]>[UI スクリプト]ページでインスタンスに追加します。

TestRailの[テスト ランと結果]ページに移動すると、右側のパネルに新しいウィジェットが追加され、設定済みのジョブをトリガーするボタンと最新のビルドの情報が表示されています。このウィジェットを使用すると、ジョブをトリガーしたり、最新のビルド状況を色で確認したり、リンクをクリックしてビルドに移動したりできます。

まとめ

このワークフローが完成すると、自動テストの開始と情報の参照がTestRailからできるようになります。TestRailで日々の業務を行うユーザーは、TestRailを離れることなく自動テストスイートを開始し、CIツールでテストが完了すると同時にテストランとしてテスト結果を受け取ることができます。

TestRailにテスト結果が集約されるので、自動テストランの結果や失敗したテストのエラーメッセージを確認できるだけでなく、手動テストと自動テストの両方の情報をレポートに集約できます。これによって、テストカバレッジを確実に把握できるほか、テスト自動化の進捗を追跡することも可能です。また、手動テストの場合と同様に、自動テストの結果から任意の課題トラッカーに直接バグをレポートすることもできます。

このワークフローを実装する方法の詳細については、今後公開される以下のシリーズ記事をご覧ください。

  1. Pytestの自動テストプロジェクトをセットアップする
  2. CIツールとしてJenkinsを使用して自動テストプロジェクトをオーケストレーションする
  3. 自動テストの結果をTestRailに送信する
  4. UIスクリプトを使用してTestRailからJenkinsジョブをトリガーする

参考ドキュメント:

(この記事は、開発元Gurock社の Blog 「Streamlining test automation with TestRail」2022年9月23日の翻訳記事です。)

関連する製品

テスト管理ツール TestRail

テストケースの管理やテスト結果の記録、チームでの情報共有など、Excelを使ったテスト管理の業務に限界を感じていませんか?TestRailはシンプルで使いやすいUIを提供し、テストにかかるさまざまな管理コストの削減に貢献します。

■ TestRailの特長 ■

  • テストにさまざまな情報を関連づけて一元管理
  • Webブラウザー上でテストケースを簡単に入力や編集可能
  • テスト実施の準備と結果の共有が容易
  • 進捗や比較などのレポートを提供
  • 要件 / 課題管理ツールやテスト自動化ツールと連携

日本国内では、テスト管理にExcelを使っていたお客さまからの乗り換えが多く、Web上で完結するテスト管理を実現されています。

TestRailでテスト管理のお悩みを解決しませんか?

テストの生産性向上をTestRailでお試しください

クラウドおよびオンプレミス、デモサイトでTestRailがお試しいただけます。

  • TestRailクラウド(クラウドサービス)
    • クラウドサービス環境でTestRailをお試しいただけます。
  • TestRailサーバー(オンプレミス版)
    • お客様のマシンにTestRailをインストールしてお試しいただけます。
  • TestRailデモサイト
    • インストールなどの設定なしにTestRailにサンプルデータが登録された環境にて操作をお試しいただけます。

eBook 公開中

Paul Gerrard著 効果的なテスト管理12の秘密 (日本語)

テスト計画やテスト管理に役立つ12のトピックを解説します。

詳細はこちら