ソフトウェアの品質を学びまくる

ソフトウェアの品質、ソフトウェアテストなどについて学んだことを記録するブログです。

テストケース管理ツールとスプレッドシートでは、テスト管理の何が違うのか

 テスト管理ツール導入を検討するにあたって、「Excelと比べて何がいいのよ?」という疑問は挙がって当然でしょう。
 ツールベンダからの情報はけっこうあるのですが、ユーザからの情報ってあんまりないんじゃないかと思って、ちょっと書いてみました。導入の検討の際に、何かしらお役に立てば。

はじめに

 まずこちらが、おおものとスプレッドシートで、テスト管理ツールとスプレッドシート、テスト管理においてどんな長所・短所があるかの私見をまとめたものです*1

docs.google.com

 本記事は、このバージョンの現時点版から転記したものです。メンテはスプレッドシート側のみに反映します。

注意点

 注意点は、以下の2点です。

  • あくまで機能面にのみ注目しており、たとえばコスト(ライセンスコスト、維持運用コスト、学習コスト、Excel職人コストなど)は対象外です。
  • わたしが 使ってみたツールの数は限られますので、「テスト管理ツールって一般的にこうです!」というのはちょっと嘘かもしれません。

 なおテスト管理ツールについては、テストケースのグルーピングについて以下のような記事も書いています。よろしければ。 www.kzsuzuki.com

テスト管理ツールベストプラクティス!?

 この手の話、つまり「テスト管理ツールの機能」の話じゃなくて、「テスト管理ツールをどう使うといいのか」という、「テスト管理ツールベストプラクティス」を考えるコミュニティ活動、やってみたいです。もう存在するなら仲間に入れてくれ・・・。

 検討したいテーマは、こんな感じ。

  • テストケースの集合のツリー管理やタグ付けといった、管理の方法
  • テスト実行のステータス遷移
  • テストケースの命名
  • ・・・

 では以下、比較です。ただ、スプレッドシートを見た方が早いです!


テスト計画

工数見積もり

従来のスプレッドシート運用
特になし

一般的なテスト管理ツール

  • 過去の実行結果に基づいて、実行工数の見積もりができる。
  • バーンダウン・バーンアップチャートなどが自動生成され、開始時点ですでに無理がないかを確認できる。

担当者アサイン

従来のスプレッドシート運用
特になし

一般的なテスト管理ツール

  • 実行担当者のアサイン、作業の平準化がしやすい。

テスト分析・設計

従来のスプレッドシート運用

  • 図・表形式で設計したテストケースを、そのままテストケースとして使うことができる。ただし設計ごとに表現方法が異なるため、集計は困難になる。

一般的なテスト管理ツール

  • テスト分析・設計をサポートしているテスト管理ツールは、一般的ではない*2

テストケース管理

一覧性

従来のスプレッドシート運用

  • テストケースが、詳細も含めて一覧化されるので、全体感がわかりやすい。

一般的なテスト管理ツール

  • テストケースごとに1枚の画面がある*3ため、全体感がわかりづらい*4

編集容易性

従来のスプレッドシート運用

  • 一括置換・コピペ・ 行移動・フィルタ・ソートなどが容易で、編集がしやすい。

一般的なテスト管理ツール

  • 複数のテストケースをまとめて修正する必要がある場合に手間がかかる。
  • 複数ユーザによる同時編集をしても、問題がない*5

属性の付与

従来のスプレッドシート運用

  • 必要な属性を自由に追加し、集計に使うことができる。Excel職人大活躍である*6

一般的なテスト管理ツール

  • テストケースに属性を追加したい場合、ツールがカスタムフィールドをサポートしている必要がある。

データの可搬性

従来のスプレッドシート運用

  • セル結合をしていると、テスト管理ツールへのインポートはいきなりハードルが上がる。

一般的なテスト管理ツール

  • スプレッドシートベースのテストケースや、他のツールのテストケースを、インポート/エクスポートすることができる*7

仕様とのトレーサビリティ

従来のスプレッドシート運用

  • 情報として持たせることはできる。

一般的なテスト管理ツール

  • チケット管理システムとの連動で、仕様とのトレーサビリティ管理ができる。

テスト設計とのトレーサビリティ

従来のスプレッドシート運用

  • 情報として持たせることはできる。

一般的なテスト管理ツール

  • 一般的には、サポートされていない*8

バージョン管理

従来のスプレッドシート運用

  • テストケース自体のバージョン管理がしづらい。

一般的なテスト管理ツール

  • テストケースはバージョン管理されることが多い*9。されない場合でも、テストケース実行時点のスナップショットは残っており、テスト実行時の内容が、その後のテストケースの修正の影響を受けることはないことが多い。

フルテストセット管理

管理容易性

従来のスプレッドシート運用

  • プロダクトのあるバージョンに対するテストのために、過去のテストケースをコピペして寄せ集めにしがちで、重複が多くなる。また、フルテストセット*10、「最新のテストケース一覧」という概念が成り立たない。

一般的なテスト管理ツール

  • 最新のテストケースが一元管理できる。

テストセット管理

管理容易性

従来のスプレッドシート運用

  • フルテストセット*11と同じ理由で、同じテストケースが別のものとしていろいろな場所に重複してしまう。

一般的なテスト管理ツール

  • フルテストセットから、特定の目的をもったテストケースの集まりを定義できる。これによって、「毎回行うリグレッションテスト」といったテストセットを、テストケースのコピペなしに構成することができる。
  • 構成したテストセットを、テスト実行サイクルに割り当てることができる。これによって、ひとつひとつテストケースを割り当てる手間が省ける。

テスト実行管理

テスト実行管理

従来のスプレッドシート運用

  • 「テストケースに対して実行は1回」という暗黙の前提があるため、複数回実行した場合の結果を適切に管理しづらい。結果、同じセルに「×→〇(2022/10/1)」といった記載を始めてしまい、集計を破壊する。

一般的なテスト管理ツール

  • 1つのテストケースに対し、テスト実行が複数回あることが前提のデータモデル。いつ、どのテストケースが、どういう結果だったかが実行ごとに記録できる。これまでパスしていたテストがいつから失敗しているか、といった遡りも容易。

進捗管理

従来のスプレッドシート運用

  • 進捗やグラフは自分で作りこむ必要がある。Excel職人がいれば、必要なグラフを柔軟に作り込むことができるが、メンテナンスが難しい。
  • 担当ごと、機能ごとといった切り口での進捗状況が把握しづらい。

一般的なテスト管理ツール

  • ビルトインで用意されたグラフや表はリアルタイムに集計され、すぐに使うことができる。
  • ビルトインで用意されていないグラフは使えない*12

タスク管理

従来のスプレッドシート運用

  • 担当者間で実行項目のタスク調整をしても、リーダーから作業量が見えにくい。

一般的なテスト管理ツール

  • リーダーが負荷と状況を見て、担当調整がしやすい。
  • 担当者間でタスクのやり取りをした結果も、リーダから把握しやすい。

インシデントとのとのトレーサビリティ

従来のスプレッドシート運用

  • 情報として持たせることはできる。ただし、「1つの実行に対して複数のバグ」といった状況に弱い。

一般的なテスト管理ツール

  • チケット管理システムとの連動で、バグとのトレーサビリティ管理ができる。
  • あるインシデントが、どのくらいのテストケース実行のブロックになっているか、といった情報が把握しやすい。

おわりに

 まだまだ不完全な表でしょうし、本当の「イマドキの」ツールはもっと進化しているのかもしれません。
 Googleスプレッドシートはコメントを受け付けているので、よかったらコメントください。

docs.google.com

Greater and Lesser Yellowlegs

*1:表をマークダウンでブログに書くのも何だか・・・となってためらっていたのですが、最近「スプレッドシート形式ならGoogleスプレッドシートで作ってリンク貼ればいいんだよ!」とわかったので、今回もその方法で

*2:というのは言い過ぎで、単にわたしが知らない。

*3:帳票形式でテストケースを管理するツールもある。

*4:チケット型テストケース管理でも、全体構成をツリー表示できることがある。ただしこの場合には、テストケースの名称から内容がある程度把握できることが必要。

*5:複数人でExcelを編集した結果、ファイルが破損・・・という悲劇、かつてはよく見られましたが、今ではそこまで悲惨ではないと思います。自動バックアップもありますし。

*6:いずれにしても、属性の追加をし過ぎると、他の管理方法との互換性は低くなる。

*7:テスト管理ツールへのインポートは、インポート元のフィールドと先のフィールドを、ユーザが対応づけることによって行うことが多いようだ。

*8:テスト設計のためのモデリングツールはある。

*9:バージョン管理をテストケースではなく、テストセットの単位で行うツールもある。

*10:ここでいうフルテストセットとは、「定義されたすべてのテストケースの集合」の意味。

*11:ここでいうテストセットとは、「特定の目的のために、テストケース全体(フルテストセット)の中から一部のテストケースを選択したもの」の意味。

*12:保持しているデータを組み合わせてグラフをカスタマイズできるツールもあるが、正直難しかった・・・。