TestRail使ってます！

## はじめに

TestRailを導入したのは2016年、使い始めて今年で8年目になります。

わりと長く使用している方（なんじゃないかな、たぶん）だと思うので、機能紹介等は一旦置いておいて、実際にどんな使い方をしているのかを中心に書いてみたいと思います。

が、前から使ってる分、使い方が若干古いかも？と思ったりしないでもないです。使い初めの頃にはなかった機能で使ってみてないものもいくつかありますし。
あくまで、こんな使い方もあるよ、という一例としてみていただければと思います。

:::note info
貼ってある画面キャプチャはテーマをデフォルトの「モダン」から「クラシック」に変更しているので、チュートリアル等と見た目が違っています
:::
:::note info
入力されているデータは社内用に作ったサンプルやお試し用の適当データです
:::


## ケース作成は慣れが必要
TestRailで新規にケースを作成する一般的な方法は、ケース追加ボタンを押して「ケースの追加」画面を開き、そこで1件ずつ内容を入力して保存する、というものかと思いますが、実際にはこの方法ではあまりやっていません。（正直めんどくさい）

方法はいくつかありますが、大体以下のパターンに収束してきました。

### 新規プロジェクトでいちからケースを作成する場合
* Excelでケースを作ってある程度内容が固まってからまとめてインポート

TestRailには**文言の一括変換的なものがなく**（たぶん）、修正には１件ずつ編集画面で修正して保存して、という作業を繰り返さなければなりません（後述の「選択して編集」等を除く）。細かな修正が入りがちな開発初期は特に修正作業が多くなり、これが地味にめんどくさいので、Excelで作ってCSVでインポートしています。
   
### 似ている機能のケースがすでにTestRail上にある場合
* TestRail上でコピーして違うところだけ修正する

上にも書きましたが、文言の一括変換的なものがないのでケースの書き方によっては修正箇所が多くて大変です。XMLにエクスポートしてテキストエディタで文字列置換してインポートしなおす、とかやってみたこともありますが、よほど大量でないと手間に見合わないなーと思いました。

### シナリオテスト等、コピーでの量産が必要なさそうな場合
* 題名だけ先に登録して全体像を把握する
* 事前条件など中身が全く同じになるような項目には「選択して編集」を使ってまとめて編集

これが想定されている使い方なのかなと思っています。テストの目的（テスト観点）を題名に登録しておき、そこで最低限の抜け漏れをチェック、テストの内容詳細については後から追記でOK、抽象的ケースとしてならそのまま使用できる、みたいな。

### 結局、、、
テストケースの、特にプロジェクトの初期での作成については、**コピー＆ペースト、文言の置き換えを駆使する** なら、やはり**Excelの方が圧倒的に使い勝手がよい**です。

## テストケース作成後の利点が大きい

テストケースをケースとして作成して整理するだけならEXCELに軍配が上がります。置換、検索、コピペ、楽だし。

ただ、TestRailはテスト管理ツールなので、**本領を発揮するのはケース作成後**、テストの実施や進捗管理、レポート作成等です。さらに有用なのは、開発後に保守、改修も請け負うことがわかっている場合です。
なので、単発の小さい案件でテストして納品して終わり、という場合にはまあ、Excelでもいいかな。

### テストの実施管理ツールとしては直感的でわかりやすい
テストケースを作成後、テスト実施して結果登録するには、一番簡単にやるならテストランを作成するだけでOKです。作成したテストランに対して、結果を記録すれば、進捗は勝手にグラフにして表示してくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316788/f1fb329b-2c17-d144-b700-de0d85177a85.png)

テスト担当者の割り振りもできるので、複数人でテストする場合にも便利です。
結果登録時にテストでかかった実時間も入力しておけば、このペースだとあとどのくらいで終わります、とかの表示もしてくれる機能もあります（つい、計測ボタン押し忘れて時間経過がわからなくなるので使ってないですけど）。


### テスト全体の管理ツールとしては自由度が高すぎて逆に使い方に悩む
特にマイルストーン、テストプラン、テストランについては自由度が高くてどうにでも使える、逆に使い方がよくわからない、と長年思っていました。結局今は以下のような使い方をすることが多いです（当社比）

* マイルストーン＝リリースのタイミングとして設定する
* 結合テストは単独のテストランとして作成
* デバイスごとの表示確認はテストプランにまとめる

![スクリーンショット 2024-07-15 143220.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316788/4809feb9-0d05-7d24-4093-42265abd28dc.png)



リリース予定日を期日としてマイルストーンを作成しています。
そのマイルストーンに各テストランを所属させる感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316788/f4e2dce2-a76a-7751-645a-8727792c7f2b.png)

画像の左下、テストランの四角いアンコンが重なっているのは**テストプラン**です。
上の画像のテストプラン「表示確認」のリンクをクリックすると、以下のような画面に遷移します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316788/2c175f1b-204d-8d54-9ef3-255a240c53c0.png)

例えばスマホやPCなど、OS・ブラウザごとに表示を確認する場合に、**同じ内容のテストケースのセットを複数回使用する場合**があると思います。そうした場合にはテストプランの**構成で一括作成**が便利。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316788/7d59604b-9bbc-c27c-fd56-134763335292.png)

この「構成」の内容自体も自分で自由に設定できます。（ここにIE11とかEdgeとかFFとかブラウザの種類を並べてたりしたこともあったなぁ）

### 進捗度合いの確認もやろうと思えば細かくできる
マイルストーンをうまく使って、結果登録時の時間経過設定もきちんとやっていれば、ケース消化速度とか進捗予測とかも精度高く管理できると思います。ただ、そこまでするのは大規模・大人数向けかなと思います。小規模・少人数だとケース1件当たりにかかる時間やベテランと新人のスピード差も均されないので結果が微妙。

## 保守開発案件で真価を発揮（※個人の感想です）

新規開発したシステムのリリース後、そのまま保守をしつつ追加案件を受けるパターンも多いと思います。
機能が追加される場合は影響を受ける既存箇所の修正も発生。

そんな時、設計書を加筆修正しつつ、一緒にテストケースも追加・修正する必要があるのですが、**変更前と変更後の内容をそれぞれ管理しておきたい**と思うはず。TestRailではこの部分がすごく楽！

### テストケースは常に最新の設計に合わせておけばOK

テストケースとテストランは別物なので、**過去のテストランに書かれているケースの内容は、テスト実施した時のまま**変わりません。

なので、追加機能のテストケースを作成し、既存で影響を受ける部分は修正して常に最新の状態にしておくのがお勧めです。

### 変更部分だけ簡単に抽出したいときはカスタムフィールドを活用
追加・改修したケースのカスタムフィールドなどに「202407_○○機能追加」のように決まった値入力しておくと、設定した値で**フィルタリングして改修部分だけのテストラン**を簡単に作ることができます。
また、前に使ったリリース前チェック用のケースなどをそのままリグレッションテストとしてテストランに組み込むことも、もちろんできます。

### 各テストケースの変更履歴はテストランの「履歴と状況」で確認可能
各テストランのケースでは同じテストケースを使ったほかのテストランを一覧表示してくれます。（↓赤枠の部分）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316788/648ee21c-86c5-1657-a588-90011149c398.png)

この機能は過去の時点でどうだったっけ？というのを探すときにすごく便利。これを知ってしまうとExcelのファイルをいちいち開いて確認していたあの時代にはもう戻れません。



## その他私が個人的に気に入っている点を雑にあげておきます

#### テストケースの視認性がよい
* ケースの題名の一覧表示を左側に、右側に詳細内容を表示するスタイル
* 目的のケースをクリックするだけでテストケースの内容確認ができる

#### テスト結果の登録が簡単
* プルダウンで結果を選択する
* バグチケット（Redmine）の連携ができる

#### エビデンスの保存がしやすい・見やすい
* 画面キャプチャはクリップボードにコピーしたものがそのまま貼り付けられる
* 結果に画像のサムネイルが表示される
* 画像以外のファイルも添付できる

#### フィルタ機能が便利
* 不合格、再テスト、未テストなど、ステータスでフィルタ出来る
* アサイン（担当者の指定）をしておけば、自分の担当ケースだけ表示も可能

#### テストのレポートがカスタマイズできる
* カスタムレポートプラグイン（要PHP知識）を使えば、かなり凝ったこともできる
（例えば、顧客への納品用に、テスト結果に添付した画面キャプチャをまとめて出力して、EXCELの一覧表からリンクで表示できるようなレポートを作ったりしました。）

## おわりに
TestRailは機能が豊富で全機能を使いこなすにはなかなか大変です。最初はいろいろ迷走しましたが、結局は使いたい部分から使って慣れていくのがよいのだと思います。

**カスタマイズできる部分も多い**ので、勘所がわかってくればいろいろな使い方ができるのではと思います。それでも、ベースの部分はJSTQBに出てくるような **テストのセオリー的なものをしっかり押さえている**ので、自社のやり方ではうまくはまらない部分は逆にTestRailに合うようにやり方を変えてしまうのも、それはそれで結果としてよいのではないかと思ったりもします。
一番の難点はコスト？それと、文字列の検索＆置き換えができたら最高なのになーと思います。