Jiraを使ったテスト管理:その可能性、難しさ、そして解決法

Hannah Son著

ソフトウェア開発の管理にJiraを利用しているなら、テストおよびQAプロセスとJiraの統合は重要です。通常、次の2つの選択肢があります。

  1. Jiraで直接テストを管理する
    • 多くの場合は開発課題と関連付けられたサブタスクとして、またはカスタマイズされた課題タイプが使用される。
  2. Jiraベースのテスト管理アドオン(無償または有償)を導入する

テスト管理にJiraを利用する

本来、Jiraはソフトウェアテスト向けではなく、そのままではテスト管理機能を持っていませんが、適応性が高く、カスタマイズ可能なフィールドがあることから、Jiraをテストケース管理などのタスクのために利用しようとするユーザーを引き付けています。


しかし、Jiraをテスト管理ツールとして使用する場合、特にQAおよび開発チームの規模や構造によっては、利益を上回る課題をもたらす可能性もあります。

画像: Jiraボードはチームの作業を列から列へ自由に移動できるカードとして表示します。

テスト管理にJiraを利用する利点

テスト要件がそれほど複雑ではないチームにとっては、主に次の3つの理由から、Jiraはテスト アクティビティをモニタリングするのに適しているかもしれません。

  • アクセス: 
    • 開発作業を管理するためにJiraを購入済みであるなら、Jiraでテストを追跡するのに追加のライセンスを購入する必要はないかもしれません。
  • ツール統合: 
    • すべてを1つのツールで追跡することで、維持する必要があるプラットフォームが少なくなり、アジャイルソフトウェア開発作業全体の可視化を円滑にできる可能性があります。
  • 柔軟性: 
    • ある程度手を加えれば、Jiraの課題テンプレートを変更してさまざなカスタムフィールドを含めることができます。この機能を利用すると、エピック、ストーリー、タスク、サブタスク、バグなどのJiraのデフォルトの課題タイプのほかに、「探索テスト」、「回帰テスト」など特定のカスタム課題タイプを作成することができます。

テスト管理にJiraを利用する際の課題

じゅうぶんな時間と手間をかければ、Jiraをテスト管理に使用することは可能ですが、大きな課題もあります。

  • テストケースの整理とテストの計画が複雑な作業になる
  • 複数のテストサイクルにわたって、テスト結果を簡単に追跡する方法がない
  • テスト自動化をほとんど、またはまったくサポートしていない
  • トレーサビリティやカバレッジを簡単にレポートする方法がない

1.テスト計画とテスト整理のためのセットアップ作業が複雑になる

Jiraでテストケースを組織化したり、Jira課題を使用してテストスイートを構築するのは複雑なプロセスです。プラグインやアドオン、その他のツールを使用せずにJiraでテスト管理を行うためのアプローチは2つあります。 

既存のJiraワークフローにテストを取り込む 

課題の説明フィールドおよびサブタスクを使用して必要なテスト情報をすべて記録することで、既存のJiraワークフローでテストの追跡を始めることができます。しかし、このアプローチはスケーラブルではなく、テストデータや前提条件の管理が難しくなり、テストプロセス全体の可視性も限られます。

カスタムJira課題タイプを作成する

テストの記録と追跡により適したカスタムJira課題タイプを作成することもできます。しかし、この方法では、混乱を招いたり、Jiraボードが乱雑になったり、テスト用のJiraプロジェクトを分けて管理せざるを得なくなったりします。カスタムラベルやフィールドを使用してJiraの課題を「テストスイート」としてグループ化することもできますが、デフォルトでは、Jiraの課題を階層として整理する方法はなく、関連するテストを一目で把握するのは困難です。また、エピックを使用してテストスイートを作成することも可能ですが、再利用可能なテストや保守作業を必要とするテストを探すのに徹底的な検索が必要になります。

画像: カスタムJira課題を使用すると、Jiraボードが乱雑になったり、テスト用のプロジェクトを分けて管理せざるを得なくなったりします。

2.長期にわたってテスト結果を追跡するのが難しい

 テストの取り組みをスケールアップするには、テストケースは効率的に再利用できなければなりません。しかし、Jiraの課題はそのようなユースケースに適していません。あるリリースから次のリリースにJiraの課題を複製することは可能ですが、エンドツーエンドの回帰テストに必要なすべての課題を処理しようとすると、非常に長い時間がかかる可能性があります。それに加えて、課題を複製した場合、長期にわたってテストの成功率や失敗率を追跡する方法はありません。

Jira Query Language (JQL)を使用しても、探している課題が以前のテストから複製されたものだったり、別の課題のサブタスクだったりした場合は特に、特定の課題を見つけるのは困難です。Jiraタスクが「完了済み」とマークされると、それらのタスクは表示されなくなります。完了済みのタスクを見つけるには、Jiraの検索機能で過去の課題をしらみつぶしに探すか、過去のJira課題をExcelにエクスポートし、手動でソートやフィルターを行うしかありません。

3.テスト自動化をほとんどまたはまったくサポートしていない

JiraのREST APIは充実していますが、Jira自体はデフォルトではテスト自動化ツールをサポートしていません。 

Cucumberなどのツールを使ってBDDを実践している場合、またはJUnitやSeleniumなどのフレームワークを使ってテストを自動実行している場合、自動テストと他のJiraで管理されている手動テストを簡単に統合する方法はありません。結果としてQAチームが分断され、テストプロセスをリアルタイムで可視化するのが難しくなります。

4.テストカバレッジやトレーサビリティをレポートする方法がない

トレーサビリティは、ある要件に対応するドキュメントやテストケースをすばやく探したい場合に便利です。また、法的監査に合格しなければならない、規制のある業界やアプリケーションにとっては必須です。
Jiraではユーザーストーリー、欠陥、エピックを簡単にリンクできますが、デフォルトではカバレッジレポートやトレーサビリティレポートはありません。リンクされた課題を探すのは時間がかかるので、リンクが確立されたかどうかをチェックするためのワークフローやレポートがなければ、コンプライアンスの遵守は困難です。

テスト管理用Jiraアドオンを利用する

別の選択肢として、Atlassian Marketplaceから入手できるアプリまたはアドオンを利用する方法があります。 

Jiraには2つのタイプのテスト管理アプリがあります。

  1. Jira上に構築されJiraによって管理されるアプリ(Xrayなど)
  2. Jiraに統合される独自のテスト管理プラットフォームを持つアプリ(TestRailなど)
利点欠点
Jiraテスト管理アドオン
  • テストケースの整理および計画が容易になる
  • 可視性とレポートが強化される
  • 欠陥追跡とトレーサビリティが向上する
  • すべてのメンバーがJiraでテストケース、成果物、レポートにアクセスできる
  • 選択したアプリが有償の場合(Jira Server、 Jira Cloud、 Jira Data Center)、既存のAtlassianサブスクリプションの一部として課金される
  • コストの懸念: コストが高い場合がある(特にJiraユーザーごとにライセンスを購入する必要がある場合)
  • カスタマイズが限定的: ツールのほうがニーズに合わせるのではなく、ツールの設計にチームを合わせる必要がある場合もある
  • 導入が複雑: アドオンの導入と効果的な利用がチームメンバーにとっての課題になる場合がある
  • スケーリングへの影響: Jiraのスケールが拡大したとき、アドオンを使用するユーザーだけでなく、すべてのユーザーに影響を及ぼすパフォーマンスの問題につながる可能性がある
テスト管理専用ソリューションと同期するJiraアプリ
  • QAワークフローの管理が容易
  • テスト自動化および他のDevOpsプロセスとシームレスに統合できる
  • カスタマイズの自由度が高い
  • QAチームと開発チーム間の可視性が向上する
  • テスト管理が強化される
  • スケーラビリティが高い
  • 個別のライセンス: 通常、プラットフォーム用に別個のライセンスを購入する必要がある(Jiraアプリ自体が無償であっても)

適切なJiraテスト管理ソリューションを選択する方法

最適なツールを選ぶには、チーム固有のニーズとゴールを理解する必要があります。カバレッジの不足を検出することであれ、QAの生産性を最適化することであれ、あるいはテストプロセスを可視化することであれ、ゴールを明確に定義します。  

チーム固有のテストの目標に加えて、機能や価格、サポート体制、ユーザー評価や導入事例なども参考にしてツールを比較し、選択します。

調査を進め、Jiraを利用するチームにとって「適切な」テスト管理ツールを選択するにあたって考慮するべき条件を7つ挙げます。

1.ワークフローをカスタマイズできるか

効果的なテスト管理ツールは、テスト作業を整理し計画するための機能が充実しているべきです。テストケースの作成・管理、および再利用、テストの進捗追跡、レポート生成をサポートしている必要があります。
たとえばTestRailでは、すべてのテストケースを1つの共同プラットフォームで管理、整理、追跡し、複数のテスト実行、設定、マイルストーンにわたる包括的なプロジェクトレポートを生成し、トレーサビリティレポートおよびカバレッジレポートを受け取って要件、テスト、欠陥のカバレッジを追跡することができます。

画像: 優れたJiraテスト管理ツールは、テストケースおよびテスト結果フィールドからテストケーステンプレートおよびユーザーロールまで、多数の動作やテストエンティティを1つのプラットフォーム内でカスタマイズすることを可能にします。

2.学習コストが低いか

ツールの習得があまりに面倒だったり難しかったりすると、ツールの導入が苦しい戦いになるでしょう。試用によってユーザーエクスペリエンスを評価しましょう。直感的なインターフェイスと有用なドキュメントを備え、既存ユーザーに評価されているツールを探しましょう。

画像: (G2 レビュー)TestRailのユーザビリティと直感的なユーザーインターフェイスは迅速な導入を可能にします。

3.既存の技術スタックに統合できるか

テスト管理プラットフォームを技術スタックに統合することで、ユーザーエクスペリエンスが強化されるだけでなく、システムを越えた情報の共有が円滑になります。 

TestRailなどのスタンドアロンのテスト管理ツールを使用すると、ほぼどのようなテスト自動化ツール、CI/CDツール、その他の開発ツールとでも統合できます。これは、チームにとって最適なツールを使い続けながら、アプリケーションの品質に関して唯一の信頼できる情報ソースを維持できることを意味します。

画像: Seleniumなどの一般的な自動化ツール、JUnitなどの単体テストフレームワーク、Jenkinsなどの継続的インテグレーション(CI)システムを使用している場合でも—TestRailはほぼどんなツールとでも統合できます

4.スケーラビリティ

企業が成長するにつれて、テスト管理ツールはますます複雑化する要件、増大するテストデータの量、増加するユーザー数に対応できなければなりません。

これは多くのJiraアドオンにとって特に大きな課題です。なぜなら、テストの規模が大きくなるにつれて、Jiraインスタンスのデータベースに保存されるJira課題の数も増えるからです。Jira課題が多すぎるとインスタンスが劇的に遅くなり、チームの誰にとっても作業が困難になります。

多くの場合、Jiraの外に構築されたテスト管理ツールは、テストデータに関してより堅牢な基盤を提供します。なぜなら、そういったツールはJiraのデータ構造に依存せずに大規模な利用でのパフォーマンスを制御できるからです。過去のテストデータを凍結してアーカイブできるツールを探しましょう。そうすると、データへのアクティブなアクセスを維持してアプリケーションのパフォーマンスに影響を与えることなく過去のテスト実行およびテスト結果を参照できます。  

画像: TestRailでは、データへのアクティブなアクセスを維持せずに、過去のテスト実行およびテスト結果にアクセスして参照できます。この機能により、過去の情報の参照によってアプリケーションのパフォーマンスに影響を与えることを避けられます。

5.カバレッジ増加に役立つか

テストカバレッジはQAチームにとって鍵となるメトリクスであり、テストがアプリケーションのすべての機能をカバーしているかを確認するのに役立ちます。テスト管理ツールは要件カバレッジの視覚化を促進します。たとえば、TestRailを使用すると、ボタンをクリックするだけで、要件、テスト、欠陥のカバレッジレポートを受け取ることができます。 

TestRailなどのテスト管理ツールは、プロジェクトのライフサイクル全体を通じてカバレッジをモニターすることを容易にするほか、品質の高い製品をより確実にリリースするためにテストを追加したり、アクションを起こしたりするべき領域を把握するのに役立ちます。

画像: TestRailのJira統合機能を利用すると、ユーザーストーリー、エピック、その他のJira課題にテストケースをリンクし、どの要件がテスト済みかを明確にできます。

6.テストライフサイクルの可視性を改善するか

トレーサビリティはサービスまたは製品の品質と信頼性を向上させます。トレーサビリティは、要件/ユーザーストーリー/エピックなどの成果物から対応するテストケース/テストラン/テスト実行結果(欠陥の詳細があればそれも含む)へ、またその反対方向への関連付けを行います。

テスト管理ツールを使用してテストケースやバグの履歴を参照および管理し、テストが完了したもの、また今後テストするべきものを明確に記録できなければなりません。優れたテスト管理ツールは、QAチームが各テストおよびテストに関連付けられた要件の背後にあるロジックを推察しやすくなるよう、また開発チームおよびエンジニアリングチームがテスト中に見つかった問題を容易に切り分けできるようにします。

7.透明性を向上させるか

QAチーム内部で自分たちの進捗を追跡するのはもちろん、多くのチームにはテストの進捗を容易に把握したいと望む複数のステークホルダーがいるものです。テストカバレッジ、テスト完了ステータス、テスト信頼性などのQAメトリクスの伝達は容易であるべき、さらに言えば決められたスケジュールに従って自動化されているべきです。 

アドオンがJiraに統合される場合も、外部のテスト管理プラットフォームと同期する場合も、ステークホルダーや組織全体の伝達の透明性を改善し、シームレスな可視性を保証しなければなりません。

チームのニーズに最適なツールを選択することは死活問題です。いくらか時間をかけてチームのニーズと市場のツールを比較してみれば、すぐにスムーズかつ効率的なテスト管理に近づけるでしょう。

JiraおよびTestRailを使用して効率的なテストプロセスを構築し、カバレッジを追跡し、開発チームとQAチームにわたる包括的なトレーサビリティを実現する方法についてより詳しく知るには、TestRail & Jira in TestRail Academyでこのコースをチェックしてください。

(この記事は、開発元Gurock社の Blog 「Jira for Test Management: Options, Challenges, and Solutions」2023年2月18日の翻訳記事です。)

eBook 公開中

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

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

詳細はこちら