モダンなテスト管理のコンセプトに関する覚え書き
主にレガシー(エクセルでテスト項目書作る)に対するアンチとして、自分の理解をまとめた。
テストとは
テストは以下の一連の流れから成る。
- (1)テスト作成
- (2)テスト実施
- (3)テスト実施状況管理
- (4)発見した問題の共有
狭義には特に 2 の実施を指すことが多い。
テスト管理とは
テスト管理もまた広義で曖昧な言葉であるが、上記 1-4 を管理することを指す。
管理対象としてたとえば以下がある。
- 作成したテストケース
- 誰がどのテストをいつ実施したかという記録
- テスター毎の進捗
- テスト時に報告された問題およびそのステータス
テストケースとテストスイート
テストケースとはテスト項目のこと。
テストケースは「インプット」と「期待する結果」を含む。インプットに従ってテストを行い、期待する結果になれば結果良しとする。
- テストケース
- インプット
- 前提条件
- 実施手順
- 使用するデータ(例:フォームに入力する値)
- 期待する結果
- インプット
ただしインプットは DB やネットワーク、マシン構成など複雑な事もある(その場合はテストケースから切り離して付録として提供することも多い)。
テストスイート とはテストケースを適当に束ねた単位のこと。
項目と実施の分離
テストを行う、とは以下のように言い直すことができる。
「テスト項目書」に従ってテストを実施し、実施した記録を「テスト報告書」に残す
レガシーなやり方ではテスト項目書とテスト報告書を同一の(エクセル)ファイルで扱う。しかしこのやり方は再利用性に難があり、後からテスト項目書を修正したり、何度もテストを実施する際に手間である。
モダンなテスト管理では 項目書と実施書を分離する ことでこの問題を解決する。たとえばテスト実施時はテスト項目書を元にテスト報告書ファイルを別途作成し、テスト項目書自体は更新しない、という運用にする。
Selective Suite
Selective Suite とは、テストを実施する際に「実施したいテストスイートから都度適当に選んでから実施する」というやり方である。
レガシーなテストでは毎回全てのテスト項目を消化することを目標にしてしまうが、正直言って非現実的である。モダンなテスト管理ではテスト実施時、状況に応じて「今回はここまでやろう」「今回はここだけで良い」と判断して、実施するテストスイートを選択してからテストする。
もちろん Selective Suite にはテストスイートの正しい設計(選んで使いまわせるように作り込んであること)が必要。
ブラウザベース(脱エクセル)
レガシーなテスト項目書はエクセルファイルで提供されるが、これには多数の欠点がある。
- 同時編集が行えずファイルの複製が発生し、あとでマージする手間が生じる
- 進捗計算や表示機能を自分で作り込む必要がある
- 画面が煩雑になりがちで見辛い
- 画面が大きくなりがちで見辛い(ウィンドウやディスプレイで表示しきれずスクロールの多用を余儀なくされる)
モダンなテスト管理ではエクセルは使わない。代わりに ブラウザベースのアプリ を使う。これにより以下メリットがある。
- 同時利用が可能(複数人が同時にテストし記録を残せる)
- 項目と実施が分離されており、テスト項目をメンテしやすい
- Selective Suite をサポートしている
- テスト体系、フォーマット、利用方法などが統一化されており混乱が少ない
BTS との自動連携
テスト実施中に発生した問題を手動で BTS(バグトラッキングシステム) に登録する事には何かと苦労がつきまとう。
- 煩雑なフォーム群に手作業で値を入れていくのに時間がかかる
- テスト実施とバグ登録作業との間でコンテキストスイッチが発生する
- 登録したバグ報告の品質にばらつきがある
- 例: 必要以上に詳細すぎる
- 例: 必要な情報が足らない
モダンなテスト管理では、テスト中に発生したバグを(半)自動的に BTS に紐付ける。これによりバグ登録の手間を最小化するとともに、登録時の情報及びその内容もある程度共通化できる。