Techtouch Developers Blog

テックタッチ株式会社の開発チームによるテックブログです

最高効率でテストをするためにQaseを選んだ理由

QA エンジニアの mikaty です。
最近、キャベツの芯に砂糖水をあげていたら花が咲きました。

テックタッチでは2023年7月からテスト管理ツールの Qase をスタートアッププランで利用しています。
この記事では、テスト管理ツールを導入するにあたり検討したことと、Qase を選んだ理由と1年利用して分かったことについて紹介します。

テスト管理ツール導入を検討するまでのテストケース管理

Qase を利用するまで、スプレッドシートでテストケースの管理※1 を行っていました。
当初はスプレッドシートの自由度の高さがメリットとして大きく感じられていたのですが、プロダクトが成長するにつれて、テストを実行できる人員も増加したため、フォーマットやプロセスの型化が必要となりました。

スプレッドシートと比較した時のテスト管理ツール全体のメリットは以下が挙げられます。

  • テストラン※2 の作成、管理、実行、モニタリングが自動でできる
  • テストの進行状況と結果をリアルタイムでモニタリングすることができる(関数や GAS を組む手間がない)
  • 一度作成したテストケースを再利用しやすい
  • 誤編集を行うリスクが少ない
    • テストケースのマスターデータの修正漏れが起こるリスクが少ない

また、テストケースの件数が増加し、自動テストと手動テストを同じツールでモニタリングする必要性が高まりました。
これらの理由から、一元的な管理が可能なテスト管理ツールの導入を検討し始めました。

※1 ここで記載しているテストケースの管理とは、テストケースを作成し、テスト結果の入力と実施進捗をモニタリングすることです。
※2 テストを実行するためのテスト対象のテストケース一覧のことをテストランと呼んでいます。

テスト管理ツールに必要な機能とは何か?を考えてみた

上記の画像は当時使用したアイディア出しのボードを外部公開用に編集したものです。Miro で作成しています。

まず、社内のテストプロセスを俯瞰し、やりたいことを QA チーム内で話し合いました。
その結果をもとに、テストケース管理に特に必要な機能をピックアップしました。

テストのモニタリングとコントロール

  • 予実工数が管理できる

これまではスプレッドシートの関数や手動での記録を駆使して管理していたのですが、テスト管理ツールであれば、ある程度管理を自動化できることを期待しています。

テスト実装

  • テストタイプが分類できる
  • テストスコープが管理できる
  • ステータスなどにカスタム項目を追加できる
    • 手動テストと自動テストを区別できる
    • 優先度の設定、絞り込みができる

今後の拡張性を見据えて、テストケースに属性を設定し、絞り込む機能が挙がりました。
例えば、バージョン 3.7 で実装された機能の手動のテストケースのみを抽出したい場合は、事前にテストケースに「バージョン 3.7」と「手動」の属性を設定し、絞り込むことでテストランを作成します。

  • テストスイートで管理できる

これまでも、テスト対象の機能によって階層構造でテストケースを管理しており、スプレッドシートでの管理の際は機能ごとにシートで分割していました。
この階層構造を維持できるとテストスコープの選定やテストケースの修正時に情報が参照しやすいと考えています。

  • バージョンごとの管理ができる

テックタッチは最新バージョン以前も保証対象となるため、どのバージョンに対するテストケースなのかを確認できる状態にしておく必要があります。

テスト実行

  • ブラウザやデバイスごとに実行結果を記録できる
  • CircleCI で実行結果を自動で取り込んで結果を表示できる
  • テストケースとバグが紐付けられる

テックタッチのテスト自動化はまだまだ発展途上です。
気軽にテストの PDCA サイクルを回すため、自動テストの実行結果を容易に確認できることは必須と考えていました。

その他、プロセスを問わない機能

  • 情報が一元管理できる
  • ユーザーの権限管理ができる
  • キーワード検索ができる
  • 変更履歴が確認できる
  • プロジェクト管理ツールの Jira と連携ができる
  • 統計的な分析のもととなるデータが出力できる

特に重要視していたのが、変更履歴が確認できることと、Jira と連携ができることです。
スプレッドシートでの管理の際は変更履歴や関連チケットとのトレーサビリティが取りづらい状況でした。
テスト管理ツールにあらかじめ機能として包含されていれば、運用時に必要なルールの設計もシンプルにできます。

4つのテスト管理ツールを比較した

前項で挙げた必要な機能を重視しつつ、候補として TestRailPractiTestQualityForwardQase の4つのテスト管理ツールが挙がりました。
カタログスペックでの比較を行った後、実際にツールのトライアル期間を設けて使用感を比較しました。

TestRail

  • バージョンごとの管理ができる
  • テストケースの手順欄がカスタマイズしやすい
  • 自動テストの連携など、細かい設定を行おうとすると手動設定を要求される箇所が多い

PractiTest

  • フォルダのような階層構造で管理するのではなく、テストケースにラベルを付けてフィルターで絞り込む形式
  • 自動テストの連携は手動で設定する必要がある

QualityForward

  • テストケースがスプレッドシートの形そのままで取り込まれるので、UIで迷うことはない
  • テストスイートをバージョンごとに管理できる
  • 自動テストの連携は手動で設定する必要がある

Qase

  • 自動テストの連携機能が圧倒的に簡単
  • UI が直感的で分かりやすい
  • Jira など、API 連携が豊富
  • バージョンごとの管理はできない

どのテスト管理ツールも甲乙つけ難かったですが、自動テストの連携がほとんど自動で行われ、圧倒的に操作が簡単だったことが決め手となり、Qase の採用に至りました。

Qase に移行して特に良かったこと

テストケースの管理を Qase に移行してから1年経ちました。
実際に移行してみて、良かったことを紹介します。

チケットとテストケースの連携がスムーズだった

Qase からはもちろん、プロジェクト管理ツールの Jira からもテストケースを関連付けすることができ、複雑な操作が不要だったことから情報の一元管理がしやすくなりました。

また、Qase 移行後にプロジェクト管理ツールを Jira から Linear に移行しました。
Linear に移行しても Jira と同じように、Qase の API 連携でスムーズに移行し不便なく使えています。

Add filter のExternal issueにチケット番号を入力すると、対象チケットの番号が登録されたテストケースのみを抽出することができます。また、Qaseのシステム上には「テックタッチ」のツールチップを設定し、操作方法について迷ったときに参照できるようにしています。

テスト自動化が進めやすくなった

手動テストと自動テストの実行結果が同じツール上で管理されている状態になり、テストについて、プロダクトの開発を行うエンジニアとコミュニケーションが取りやすくなりました。
元々別々の場所にあったテストケースが一箇所に集約されつつあり、より情報が俯瞰しやすい状態になっています。

問い合わせ用のチャットが使いやすい

Qase では画面右上の吹き出しアイコンから問い合わせを行うことができます。
ヘルプページを見ても分からなかった不明点など、思い立った時に気軽に問い合わせすることができ、問い合わせに対する返信も早く、助かっています。

Qase 移行後の課題

ここまでは Qase に移行して良かったことを記載しましたが、今後の課題と感じている点もあります。

バージョンごとの管理ができない

テスト管理ツールの比較検討時に特に必要な機能として挙げたものの、最終的にできないことを許容した機能です。
バージョンごとの管理ができないと、テスト対象のバージョンが分かりません。これにより以下の問題が発生します。

  • 同じテストケースで複数のバージョンのテストを実行したい時、どれがどのバージョンなのかが分からない
  • バージョンごとに異なる期待値のテストケースの管理方法を決めておく必要がある

これらの問題は運用でカバーできるよう模索中です。
現在は以下の運用ルールで管理しています。

  • テストランのタイトルに実行バージョンを記載する
    • テストランをバージョンごとに分ける
    • テストケースに実装バージョン、適用バージョン、廃止バージョンを記載する
  • バージョンで挙動が異なるテストケースは、個別のテストケースとして分岐させる

キーワード検索でテストスイート名を抽出できない

Qase のキーワード検索は、Description(テストケースの概要説明欄)と Steps(テストの実行手順)を抽出することは可能なのですが、テストスイート名を抽出することはできませんでした。
階層構造のため、テストスイート名は対象のテストケースよりも抽象度の高い機能の名前や概要で作成されます。

テストケース名を簡潔に分かりやすくするため、同じテストスイート配下のテストケースからはテストスイート名で判別できる内容を省略したくなるのですが、省略するとキーワード検索で抽出することができなくなるというジレンマがあります。
テストケースの作り方次第で解決できる問題ですが、キーワード検索を有効に使うためには Description に抽出したい用語をあらかじめ記載しておくなど、工夫が必要です。

Shared Steps を使いこなせていない

Shared Steps は共通の手順を複数のテストケースで使いまわせる機能です。
テストケース作成後に手順を修正したい時などに、Shared Steps で作成していると手順の修正が1回で済みます。

残念ながら現状はあまり使えておらず、改善の余地がある状況です。
スプレッドシートからテスト管理ツールへの移行に際して、既存の共通手順を Shared Steps に登録することができませんでした。
また、Shared Steps を管理するための運用方法について、修正時の影響調査が煩雑そうであること、重複した Shared Steps が作成されてしまう懸念から運用ルール化に至っていません。
今後も引き続き、最適な使い方がないか模索していきたいと思っています。

おわりに

まだまだ課題もありますが、総合的に見ると、テスト管理ツールを Qase に移行して良かったと思います。
何よりも、テストケースが客観的に参照しやすい資産となったことで、開発者と協業しやすくなり、プロダクトチーム全体で品質向上を目指せる環境が整ったことが大きな財産です。

今回は QA チーム内からスプレッドシートでのテストケース管理について提案があり、Qase を採用しました。
本文でも触れましたが、テックタッチでは Jira にかわるプロジェクト管理ツールとして Linear を採用しました。この時も開発チームのメンバーが声を上げ、検討を経て導入に至っています。

テックタッチでは、今後もより良い開発者体験や品質向上のために挑戦していきます。
志を共にできる仲間も募集中です。もし興味を持っていただけたら、ぜひ弊社の採用ページをご覧下さい。