【Quality】年の瀬にテスト管理に入門してみた【Forward】

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/1ae322b7-0b22-7484-11a7-496627ce48c3.png)

## 本記事の要旨
本記事では、テスト管理ツール [QualityForward](https://www.veriserve.co.jp/lp/qf06) の基本的な使い方を、筆者のトライアル経験を交えて紹介します。特に、初めてツールを触る方でも理解できるよう、具体的な業務シーンを再現しながら進めていきます。

:::note
**QualityForward**は株式会社ベリザーブ様が提供中の「ソフト開発で繰り返されるテストでの非効率な作業を減らし、開発スピードの向上と品質の向上を支援するテスト管理ツール」です。無料で利用を開始できます。
:::

QualityForward を使ってみた感想は以下の通りです。
- テストの条件、実行計画、結果記録を紐づけて**簡単に管理**できて便利！
- プロダクトのバージョンアップや、テスト条件の変更など、**業務で発生するシーンを適切に表現できる**ワークフローが魅力的！
- **操作も直感的**で誰でも扱いやすい！
- ソフト開発だけでなく、ハードウェア開発も含めた様々な開発に活用できるのでは？と思いました。

では、本文に入っていきます。**エンジョイテスト**！ :rocket: 

## 本記事の対象読者
- 業務などでテストの計画や実施を担当している人
- テスト管理ツールを使ったことはないが興味はある人

## はじめに
2024年も残り僅か、皆さまいかがお過ごしでしょうか？
年末は何かと忙しいですが、それでも学びは続けていきたいですね。ということで、私はこれまで使ってみたことがないテスト管理ツール QualityForward に触れてみました :smile: 

本取組のきっかけは[QualityForwardを用いたテスト管理の体験談を投稿しよう！](https://qiita.com/advent-calendar/2024/qualityforward02)なのですが、実際にツールを触ってみるととても良い体験ができましたので、本記事で共有させて頂きます。

## 本記事の構成
いきなりの業務適用は難しいため、架空の「データ加工ツール」を題材にQualityForwardを利用してみました。

3つのステップでQualityForwardを活用します:
- Step1: 初リリースのテストを計画し、結果を記録する
- Step2: バージョンアップ後も同じテストを実施し、結果を記録する
- Step3: バージョンアップでテスト項目を追加・変更し、結果を記録する

新機能をリリースした後に既存テストを繰り返し実施し、さらに仕様変更に応じたテストを追加していく。このような状況は、多くの開発現場で日常的に起きるのではないでしょうか？

各ステップの詳細を、以下のセクションで解説していきます！

:::note warn
QualityForwardを利用し始める手順については説明しません。サービスのページを参照頂ければ特に問題なく実施できるかと思います。
:::

## 本記事で使用する用語
さて、さっそく内容に入っていきたいところですが、本記事を読む上で必要な用語について最初に紹介しておきます。

ここでは必要最低限の説明を行います。正確な用語説明は[こちら](https://qualityforward.zendesk.com/hc/ja/articles/5049964535577-基本用語)をご覧下さい。


| 用語 | 意味 | 例 |
| --- | --- | --- |
| テストケース | テストの確認内容、テスト条件、テスト実行手順、期待する結果をまとめたもの。 | 対応可能なファイル形式を読み込むケース |
| テストスイート | テストケースをまとめたもの。 | ファイル読み込み機能テスト |
| テストフェーズ | テストを実施する期間。テストスイートを選んで、この期間内に実施する。 | 初回リリース前テスト |
| テストサイクル | テストフェーズの中で細かく区切った期間。 | テスト1回目 |

では、いよいよ本題に入っていきましょう！

## 3ステップでQualityForwardを活用してみる
[本記事の構成](#本記事の構成)で説明したように、3ステップを順になぞって、QualityForwardの活用方法を紹介していきます。

### Step1: 初リリースのテストを計画し、結果を記録する
では始めましょう！本ステップでは、まず以下のガイドを参考にして基本的な流れを追ってみます。

https://qualityforward.zendesk.com/hc/ja/articles/15829351242393-クイックスタートガイド-基本の4ステップ

今回題材とする架空の「データ加工ツール」は次の機能を持つものとします。
- ファイルの読み込み
- データの加工
- ファイルの保存

これらの機能に対してテストを検討し、テスト結果を記録してみます。

#### プロジェクトの作成
まずはプロジェクトを作成します。「プロジェクト追加」(図1)ボタンから進んでいきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/388e92ba-f5fd-1647-c096-3babfbe6c47f.png)
<i>図1. プロジェクト一覧画面<i>

プロジェクト名と概要を入力してプロジェクトを作成すると、ダッシュボードに遷移します(図2)。概要には重要事項など、チーム内で頻繁に確認したい項目を明記しておくと便利そうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/eea4abe8-7e44-ea40-4781-85fbe9e93c49.png)
<i>図2. プロジェクトのダッシュボード<i>


#### テストスイートの作成
メニューの「テストスイート」に進み、**テストスイート**を作成してみます。

今回はツールの3つの機能それぞれについて分けてテストスイートを作成してみました。本記事では代表して「ファイルの読み込み機能テスト」について記載していきます。

テストスイート作成画面では2つの必須設定項目と、複数の任意設定項目があります。今回は必須設定項目(テストスイート名、初回バージョン名)だけを入力しました。

| 項目 | 値 |
| --- | --- |
| テストスイート名 | ファイルの読み込み機能テスト |
| 初回バージョン名 | v1.0初回リリース |

テストスイートを作成すると、**テストケース**の編集画面(図3)に遷移します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/5f0b5887-f09c-650c-9d26-539f3b9123f7.png)
<i>図3. テストケースの編集画面<i>

なるほど、`テストスイート - バージョン`という単位でテストケースを管理していくようです。

テストケースをいくつか作成してみました！(図4)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/3c4f0229-5a47-84c0-adc0-ae12b3d54886.png)
<i>図4. テストケースを追加した後の状態<i>

:::note
エクセルライクな操作感でサクサクと編集できました！
:::

今回は使用しませんでしたが、既存のエクセルファイル等をテストケースとしてインポートすることも可能とのことです。エクセルを使ったテスト管理からの移行もスムーズそうですね。

編集画面からテストスイート一覧に戻ると、先ほど作成したテストスイートは「編集中」となっていました。(図5)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/05612136-4221-56fd-39f6-906407938e38.png)
<i>図5. テストスイート作成直後の状態<i>

この状態では次の「テストフェーズの作成」を行えないため、ステータスを変更する必要がありました。バージョン名の下の「設定」から設定画面に進み、ステータスを「**利用可**」に変更します。

すると、無事、テストスイートを利用できるようになりました(図6)！テストスイート作成はこれにていったん完了です :rocket: 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/38bee0d3-a144-e96d-a2e0-44cfc347931c.png)
<i>図6. テストスイートのステータスが利用可に変わった<i>

では次に、テストを実施していくため、テストフェーズを作成していきます。

#### テストフェーズの作成
**テストフェーズ**を作成してみましょう！テストフェーズは**実行するテストスイートの選択**と、**テストの記録**を行うためのものです。

メニューからテストフェーズを選択し、テストフェーズ一覧画面から新規テストフェーズを追加していきましょう。テストフェーズ名などの編集(図7)と、テストフェーズ内で実行するテストスイートの選択(図8)を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/ceab0d26-3d70-c0ad-aab6-fd9f996da22a.png)
<i>図7. テストフェーズ作成画面1<i>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/030c08aa-1210-4a8e-9cf8-790cef6d2533.png)
<i>図8. テストフェーズ作成画面2<i>

テストスイートの選択では、先ほど作成した「ファイルの読み込み機能テスト」だけを選ぶことにしました。

次に、このテストフェーズを細分化した**テストサイクル**を作成していきます。「スイート一覧」(図9)から、選択したテストスイートごとにテストサイクルを作成していく必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/0354238f-e142-4a39-9fa0-b1604120ab01.png)
<i>図9. テストフェーズ編集画面<i>

:::note warn
マルチサイクルという機能もありますが本記事では言及しません。
:::

テストサイクルを新規作成すると、`{テストスイート名} - {バージョン名}1回目`という名前のサイクルが作成されました(図10)。なるほど、テストフェーズの中で、各テストスイートごとに複数回テストすることを想定したデータ構造でできているんですね。テストのやり直しとか、バグ修正後の確認とかありますものね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/b2c75aac-bbf4-8b19-84a4-40f3cef10d57.png)
<i>図10. テストサイクル作成画面<i>

はい、テストサイクルができました(図11)。
![スクリーンショット 2024-12-03 14.10.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/5bd12188-e7ee-8b64-5ae5-f861ae096d3d.png)
<i>図11. テストサイクル一覧画面<i>

あとはテストを実行し、テスト結果を記録していきます(図12)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/4b94c2d5-f983-18a8-5eef-17add80a1fa9.png)
<i>図12. テストサイクル編集画面<i>

テストの結果はレポート機能などで確認することができます。本記事では説明を割愛します。

以上でStep1.が完了です！全体的にストレスなく操作ができましたし、何よりも**QualityForwardのワークフローに乗っかることで、誰でも迷いなくテスト管理を始められるように感じました**！

次のセクションでは、ツールをバージョンアップしたことを想定し、バージョンアップ後のツールで同じテストを実施する手順を試してみます。


### Step2: バージョンアップ後も同じテストを実施し、結果を記録する
実際の業務では、ツールを一度リリースしてはいおしまい、ということは少ないと思います。そこでStep2.では、バージョンアップ後のツールで同じテストを実施します。

やることはシンプルで以下の通りです。
1. テストフェーズ・テストサイクルの追加
1. テストサイクルに結果を記録

イメージ具体化のため、画面を示しながらサクサクっと説明していきます！

テストフェーズ一覧から、新しく「ツールv2リリース前テスト」というテストフェーズを作成しました(図13)。(キャプチャ画面上では、テストサイクルも追加済みです)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/a136c8a5-47ea-b8c2-ce9a-c9874da3a937.png)
<i>図13. 新テストフェーズ作成後の状態<i>

テストスイートは変えていません。あとは結果を記録していくだけ…！簡単ですね！**テストスイートという設計資産を簡単に流用することができました** :rocket: 

次のセクションでは、ツールの機能追加や仕様変更に伴い、テストの追加・変更を行う場合を試して、本記事を締めくくりましょう！

### Step3: バージョンアップでテスト項目を追加・変更し、結果を記録する

テストの内容変更があった場合には**テストスイートのバージョンを更新して対応します**。以下の手順で進めていきます。

1. テストスイートの**複製**（新しいバージョンを作る）
1. 複製後のテストスイートを編集
1. 複製後のテストスイートに対し、テストフェーズ・テストサイクルを作成
1. テストサイクルに結果を記録

新しい操作である「テストスイートの複製」を中心に説明しますね。

テストスイート一覧から、作成済みのテストスイートを探し、バージョン名欄の「コピー」を実行します(図14)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/865e3b61-3969-bd19-ef0e-82cc063ba7e4.png)
<i>図14. テストスイートの複製<i>

すると、テストスイートの複製画面が表示されます。どのバージョンから派生させたか、を明示する仕組みになっていますね(図15)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/e0bad931-9868-2a99-eab2-25624f9e5cc1.png)
<i>図15. テストスイートの複製操作画面<i>

これだけで、元のテストスイートを引き継いだ新しいテストスイートが作成できました(図16)。各テストスイートごとにバージョンを作成できるのは強力な機能であると感じました。
![スクリーンショット 2024-12-03 14.28.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/8fd80e67-f7ba-2383-e485-1feb729460f3.png)
<i>図16. 一つのテストスイートに複数バージョンが入った状態<i>

あとは、新たに作成したテストスイートのテストケースを編集し、Step1や2と同様の処理を行なっていくだけ(図17)。簡単ですね！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1553191/ea9226e8-483e-53a8-4dc9-dea2b733f385.png)
<i>図17. 新しいバージョンのテストスイートを選択した状態<i>

:::note warn
同一スイートの複数バージョンを一つのテストフェーズに紐づけることができたのですが、これはできて良いのやら、紐付けミスを無くすために禁止した方が良いのかは、ちょっと判断に迷いました。
:::

私の過去の業務経験では、テスト内容が変わった際のバージョン管理をどうしようと悩んでしまうこともあったのですが、その悩みをサクサクっと解決してくれました！

3つのステップを通じて、QualityForwardの活用方法がよく理解できたように思います！

## おわりに
はじめてテスト管理ツールを触ってみたのですが、想像以上に扱いやすく、え、業務でも使ってみたいね！という感想を抱きました。特に「プロダクトを作って、テストして、改修して、またテストして」というループを回しやすいことが印象的でした。

記事の途中でも記載したように、QualityForwardのワークフローに乗ることで、誰でもテスト管理を始められるとも感じました。大変魅力的です！

**ここまでお読み下さりありがとうございました、良いお年を！** :confetti_ball: 


## おまけ：さらに高度な使い方
### テスト要求ツリー
テストすべき項目の抜け漏れがないかを、テスト要求ツリーを用いて確認することが可能とのことです。今回は触れなかったのですが、重要な機能だと思いました。

https://qualityforward.zendesk.com/hc/ja/articles/5662810256409-テスト要求ツリーのカバレッジパネルでテストの作成漏れを防止する

### バグトラッカーとの連携
JIRAのようなバグトラッカーとの連携が可能とのことです。バグの詳細や、対応方法、対応状況をまとめていくのに便利そうです。