テスト管理システム(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点です。

その他の利点としては、テストケースの使いまわしが簡単そうとか、そのまま提出用のテストレポートができて便利だとかありますが、上記の利点が一番大きいように思います。