テスト管理システム(3)
テスト管理システム TestRail を使い始めました。
ウチは、
- テスト専用チームなんて持てない
- テスト管理に関する、成熟した文化を持っていない
という極小組織です。ですから、基本的にはズボラをしつつ、多少はテスト管理をしてみようかな、という感じで始めて見ました。
ちなみに、単体テストは対象外です。(C++testを使って自動化しており、これで困っていません。)
登場人物紹介
エンジニア
・私 要件開発、設計、実装、テスト、ドキュメンテーションが担当。 とても負荷が高い。
・ヨメさん 実装、テストが担当。 負荷はそこそこ。
システム
・TestRail テスト管理システム。ブラウザーからアクセスできる
・Test Suite TestRail内の概念。多数のテストケースを1まとめにしたもの。階層構造も持たせられる。
・Test Run TestRail内の概念。 テスト実行の記録。「どのTest Suiteを実行したら」「どんな結果になったのか」を持たせられる。
方針
理想形は、がっちりテスト計画をたて、テスト設計をし、テストケースをすべて作った上でテストを実行することです。でも、ムリ。
人員に余裕のある組織とか、テストに関する成熟した文化を持っている所であれば、できるのでしょう。でも、いきなりそんな事を言われても、ムリ。
そこで、次の2つのテストの大原則(だと私が思っている)だけを満たすことにします。
・どんなテストをしたのかがわかる 同じテストを再現できるレベルにすること。
・どんな結果になったのかわかる どういう期待をしていたのに、どうなっちゃったのかがわかる事
私の視点
ステップ1:ざっくりテスト設計
仕様書をもとに、ざっくりこんなテストをしようと決めます。そして、それをヨメさんに口頭で伝えます。おわり。(とってもらくちん)
ちなみに、ボイスレコーダー使うと間違いが少なくていいです。
ステップ2:テスト内容、テスト結果の確認
たまーに、「どうなってんのかな?」と気になったとき、ブラウザを開いてTestRailにアクセスします。すると・・・
おぉ、テストが増えているぞ。ふむふむ。これが、TestRunの統計画面です。
じゃあ、どんなテストケースになってるのかな?とクリックしてみると・・・
こんな感じです。ものすごいザックリですが、これで分かるのでOKです。
ちなみに本来であれば、「パラメータの値が意図した通りに変更されている」とか、ザックリすぎてダメなんでしょうが、今回のテスト対象はちょっと特殊で、これだけでも十分意味が通るのです。
そして右側にある「Attachments」には、テストに使用するモデルが添付されています。もしも、同じテストを再現しようとしたら、これさえあれば何とかなります。
まとめ
ざっくり伝えて、ざっくり確認。テスト内容に不備があれば、口頭で伝えればOK。
使っていて思ったのですが、テスト状況を確認するのにヨメさんの手を煩わせなくて済む、というのが一番良かったです。
Excelで管理していたら、「あれ、どうなった?」とか「Excelシートちょうだい」とか、なんだかんだと煩わせてしまいますからね。
ヨメさんの視点
ほんとは、この部分をヨメさんに書いてもらおうと思っていたのですが・・・それは時間の都合でまた今度。とりあえず私が書きます。
ステップ1:ざっくり設計を聞く(困るなぁ)
何をテストしたいのか?どういう方針でテスト設計をしていけばいいのか?方針だけ聞きます。
そこから先、同値分析だの何だのは、ヨメさんの仕事です。ザックリすぎて困っているんでしょうが・・・仕方ないですよ。ウン。
ステップ2:TestSuiteに、テストを1つ追加
とりあえず、テスト用の入力データを1つ作って、そいつをTestSuiteに登録します。
ブラウザを立ち上げてTestRailにアクセスし、ひたすら条件を入力するだけです。テストモデルなんかがあれば、テストケースに添付できます。
ステップ3:テストを1つ実行し、TestRunに結果を入力
テストを実行したら、その結果を入力します。上図の場合は「Passed」になっていて「チェック終了」としか書いていません。
不合格の場合は、その状況を事細かに記載します。
ほとんどヒミツで申し訳ないのですが。。。「Failed」の場合は、こんな感じになります。
あとは、全部のテストを終えるまで、ステップ2~3を繰り返します。
まとめ
これまでは、Excelなりメモ帳なりに入力していた内容を、TestRailへ入力するようになっただけです。基本的にやる事は変わっていません。
あえて言うなら、Excelにモデルファイルを張り付ける事はできません(やってやれない事はないが、ふつうはやらない)ので、その分だけ便利になったでしょうか。
結論
今回の、
・TestRailを使う
・テストケースを、1つ入力しては1つ実行していく
という方針は、意外と良い感じです。
一気にテスト設計してしまったり、Excelなどで管理するやり方と違い、「ごめん、このテストじゃダメだ。考えなおしー」というパターンに強い気がします。
というのも、1つ1つ入力していく事によって、私がリアルタイムにヨメさんの行動を監視できます。監視というのは、サボっているかどうか、ではありません。(それは、隣に座っているので、見ればわかる)
そうでなくて、「テストケース」と「テスト結果」の組み合わせを眺めていて、あれ?と思ったらすぐに軌道修正できます。
ポイントは、「状況をリアルタイムに把握」という1点です。
その他の利点としては、テストケースの使いまわしが簡単そうとか、そのまま提出用のテストレポートができて便利だとかありますが、上記の利点が一番大きいように思います。