【QA】テスト管理で使用しているTestRailについて詳しく調べ直してみました。

![test.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711491/d4f2bea5-1390-6296-1e98-9987ce705d8d.jpeg)

どうもこんにちは。

今回は、テストケースの管理で使用しているTestRailについて詳しく調べ直してみたので、調査結果を記事にしてみます。

詳しい使い方については、以下の記事で書いてくれているのでこちらをご参照ください。

https://qiita.com/pdc-ujoy/items/67148c4075f0523822a0

# はじめに
ソフトウェア開発において、テスト管理は品質保証の重要な要素です。
多くの企業がExcelを用いてテスト手順を管理していますが、これには限界があります。

# Excelを使用したテスト手順管理の限界
Excelは汎用性が高く、誰でも簡単に使えるため、多くの企業がテスト管理に利用しています。しかし、**<font color="red">Excelには限界があります</font>**。

## 1. スケーラビリティの問題
大規模なテストプロジェクトになると、**<font color="red">Excelのファイルサイズが大きくなり、動作が遅くなることがあります</font>**。
動作が遅くなることを解消するために、機能ごとにファイルを分けて管理することも可能ですが、**<font color="red">ファイルを行き来する必要があるため、不便になることがあります</font>**。

また、複数のチームが同時に編集する際には、ファイルの競合やデータの整合性の問題が発生しやすくなります。

OneDriveやGoogleDriveを使用して複数人で閲覧・編集を行うことも可能ですが、**<font color="red">ファイルやシートが多くなる度に管理は難しくなります</font>**。

## 2. バージョン管理の困難さ
Excelでは、複数のバージョン管理が難しいです。
**<font color="red">異なるバージョンのファイルが複数存在すると、どれが最新のものか分からなくなり、誤ったテストケースでテストを実行してしまうリスクがあります<font>**。

また、新バージョンがリリースされる度にテスト手順を作成し直すということも手間がかかり、ファイル数が増大してしまうため、管理が難しくなります。

## 3. リアルタイムの追跡が難しい
Excelでは、**<font color="red">テストの進捗状況や結果をリアルタイムで追跡するのが困難です</font>**。

自分で実行開始時間や終了時間などを入力することで可能にはなりますが、**<font color="red">いちいち入力するのはテスターにとっては手間でしかない</font>** ですよね。

## 4. レポートの作成に手間がかかる
Excelで詳細なレポートを作成するには、**<font color="red">関数を使ったり、マクロを組んだりする必要があるので、多くの時間と労力が必要です</font>**。
手動でデータをまとめるため、**<font color="red">ミスが発生する可能性も高くなります</font>**。

以上のように、Excelを使用したテスト手順の管理には、**<font color="red">時間と手間がかかります</font>**。

# TestRailを使用したテスト管理のメリット・デメリット

そこで登場するのが「**<font color="red">TestRail</font>**」というテスト管理ツールです。

## TestRailとは
TestRailは、テスト管理を効率化するためのツールで、TechMatrix社が提供しています。**<font color="red">テストケースの作成、実行、結果の記録、レポートの生成</font>** など、テストプロセス全体をサポートします。以下では、TestRailの機能とそれぞれのメリット・デメリットを具体的に見ていきます。

![スクリーンショット 2024-07-17 9.54.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711491/c4b3fc27-8871-2f54-1a57-cc4f990853be.png)

https://www.techmatrix.co.jp/index.html

## TestRailのメリット

### 1. テストケースの一元管理
TestRailを使用することで、すべてのテストケースを **<font color="red">一元的に管理できます</font>** 。これには以下のような利点があります。

- **中央集約**: すべてのテストケースが一つのシステムに集約されるため、異なる場所に散らばったファイルを探す手間が省けます
- **バージョン管理**: <font color="red">マイルストーン管理機能</font>を使用することで、各テストケースのバージョン管理を容易に行うことができ、常に最新バージョンのテストを実行することが可能です
- **検索機能**: <font color="red">検索,フィルタリング機能</font>により、特定のテストケースを迅速に見つけることができます
- **アクセス制御**: ユーザーごとにアクセス権限を設定でき、意図しない操作による変更などを回避することができます
- **自分のタスク管理**: 各テストケースに対してテスト担当者を設定でき、TODOタブやフィルタリングによって、自分が実行すべきテストケースがすぐに把握できます

ただし、すべてのテストケースが一つ集約されることで逆に管理が難しくなる場合があります。それを回避するために、**<font color="red">プロジェクト管理やテストスイート管理、セクション管理という機能が備わっています</font>**。

[プロジェクト一覧]
![スクリーンショット 2024-07-15 13.19.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711491/08d0513c-ba58-8736-728f-b294b0c6ce33.png)

[プロジェクト概要]
![スクリーンショット 2024-07-15 13.25.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711491/49660bcb-bb3b-4dcf-64fc-faf5cc671fd1.png)

[テストスイート一覧]
![スクリーンショット 2024-07-15 13.30.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711491/a3ca38cd-8b9c-d5f5-90bf-48437ab63518.png)

[マイルストーン一覧]
![スクリーンショット 2024-07-15 13.31.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711491/eee19126-6bde-9c40-2176-6b7b587efa0e.png)

### 2. テストケースとテストランの分離

TestRailでは、手順を作成/管理するためのテストケースとテストを実行して結果を管理するためのテストランを作成することができます。

テストケースの管理構成は、以下のようになっています。（セクションの中にサブセクションをいくつも設定できるので、テストケースの管理がしやすいです。）

```
- テストスイートA
    |- セクションA
        |- テストケース1
        |- テストケース2
        |- サブセクションA
            |- テストケース3
            |- テストケース４
            |- サブサブセクションAA
    |- セクションB
        |- サブセクションC
            |- テストケース５
    |- セクションC
        |- サブセクションD
            |- サブサブセクションDA
                |- テストケース6  
```

[テストケース管理画面]
![スクリーンショット 2024-07-17 9.11.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711491/a51cf21e-7298-ce54-c4cf-16ad8d31e545.png)

[テストラン（テスト実行）画面]
![スクリーンショット 2024-07-17 9.18.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711491/3aa55411-d83f-86f4-8d10-37bde11567f6.png)

### 3. テスト実行の自動化と追跡

TestRailは、**<font color="red">テストの実行状況をリアルタイムで追跡できる機能を持っています</font>**（テストランの画面上部）。これがあることで、チーム内で進捗状況や結果を即座に確認でき、問題の早期発見が可能です。

また、TestRailはAPIを使用することができるため、AWSのCodeBuildやJenkinsでの自動テストのエラーをフックして自動的にTestRailに記録することができます。（エラーが出たらBacklogへの課題起票を自動で行うこともできます。）

https://docs.testrail.techmatrix.jp/testrail/docs/702/api/

他にもAPIを使用して、未実施テストケースを自分のタスク管理アプリに登録したり、実施したら更新したりということが可能です。

### 4. 豊富なレポート機能

TestRailは、テスト結果を詳細にレポートする機能を備えています。
カスタマイズ可能なレポートテンプレートにより、プロジェクトの進捗や品質に関する洞察を得ることができます。

カスタマイズしなくても、以下のような種類のレポートを作成することができます。

![スクリーンショット 2024-07-17 9.34.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2711491/59c85863-09ca-2c44-a00c-b9fb1d984ad8.png)

## TestRailのデメリット

### 1. コスト

TestRailは商用ツールであり、使用にはコストがかかります。特に中小企業にとっては、導入コストが負担になることがあります。

以下の記事では、クラウド版の場合は「**<font color="red">5ユーザまでで258,000円</font>**」ということでした。
2021年時点での内容なので、現在とは異なる可能性があります。

https://www.techmatrix.co.jp/nc/news/testrail_20210421_newsrelease.html

ただ、価格相応もしくはそれ以上の機能を提供してくれていると感じています。

### 2. 学習難易度

TestRailの多機能性は魅力ですが、**<font color="red">初めて使う場合は習得に時間がかかることがあります</font>**。
特に、従来のExcel管理から移行する際には、使い方を学ぶ必要があります。

実際、一年ほど前にTestRailを使用し始めましたが、使い方をマスターするまでにかなり時間を要した記憶があります。

使用を始める前に、**<font color="red">テストケースをどのような形で保存するのか、どのようにテストを実行していくのかをあらかじめ決めておくことをお勧めします</font>**。

### 3. カスタマイズの難易度

TestRailは柔軟なカスタマイズが可能で、テストケースに必要な項目を追加したり、削除したりできます。
テストケース以外にも、テストランの実行結果の選択肢をカスタマイズすることができるなど、**<font color="red">あらゆる箇所で自社オリジナルのカスタマイズを行うことができます</font>**。

## まとめ
TestRailは、Excelに代わる強力なテスト管理ツールです。その一元管理機能、テスト実行の自動化、豊富なレポート機能、他ツールとの統合など、多くのメリットがあります。しかし、コストや学習難易度、カスタマイズの難易度といったデメリットも存在します。自社のニーズに合わせて、導入を検討してみてください。

# おまけ（TestRailAPIの使用方法）

簡単にRuby on RailsでTestRailAPIを使用する方法を紹介します。

## セットアップ

1. [github](https://github.com/gurock/testrail-api/blob/master/ruby/testrail.rb)からファイルをダウンロードします
2. `config/initializers`ディレクトリにダウンロードしたファイルを保存します
2. `@url`には「`https://<サブドメイン>.tmxtestrail.com`」を入力し、`@user`,`@password`には、TestRailでログインするためのユーザ情報を入力します

```ruby
@url = ''
@user = ''
@password = ''
```

これでRailsサーバーを再起動すればTestRailAPIが使用できるようになります。

## 使用方法

基本的に、`send_get`メソッドと`send_post`メソッドの２つしか使用しません。

例えば、テストケースの内容を取得するには、以下のように指定します。

```ruby
case_id = '' # ここにケースIDを入れる
@data = send_get('GET', "get_case/#{case_id}")
```

詳しくはAPIリファレンスを参照してください。

# 参考リンク
- [TechMatrix - TestRail](https://www.techmatrix.co.jp/product/testrail/)
- [TechMatrix - TestRail 機能](https://www.techmatrix.co.jp/product/testrail/function/modern-test-management.html)
- [TechMatrix - TestRail テストランと結果](https://www.techmatrix.co.jp/product/testrail/function/test-runs-results.html)
- [TechMatrix - TestRail レポートとメトリクス](https://www.techmatrix.co.jp/product/testrail/function/test-reporting-metrics.html)
- [TechMatrix - TestRail テスト統合](https://www.techmatrix.co.jp/product/testrail/function/testing-integration.html)
- [TechMatrix - TestRail Ranorex統合](https://www.techmatrix.co.jp/product/testrail/function/ranorex-integration.html)