テストケースを作ろう
- A君
「テスト設計もしたし、 これでテストケースが書けるぞ!」
テストケースが仕様書の丸写し状態だったA君も、
- A君
「よーし、 頑張るぞ!」
こころなしかキーを叩く音も小気味良い感じです。
- A君
「この調子だと、 たくさんのテストケースが書けそうだ!」
A君のテストケース表は、
そこに、
- K先輩
「お、 随分調子がよさそうだね」 - A君
「はい、 以前に比べてテストケースが見違えるように良くなったと思います。これも先輩のアドバイスのおかげです。この調子だといくらでも書けそうですよ!」
A君は元気良く答えました。その言葉を受けてK先輩はモニタを覗き込んでみました。
が、
- K先輩
「確かに以前に比べるとテストケースの内容はよくなったけれど、 書き方がよくないね」
(え? テストケースの書き方???)
- K先輩
「まず、 文章が長い。それから曖昧な表現が多いね。これじゃテストはできないよ」
さらにK先輩は言葉を続けます。
- K先輩
「それから、 当然の事ながらテストケースは作りっぱなしにしてはいけない。レビュー相手との調整はしたの? なんなら僕がレビューしてあげるから、 そのときは詳細を教えて」
そういうと、
サクサクとテストケースを作り、
A君はまたもや途方にくれてしまいました。
テストケースには書き方があり、レビューされなければならない
テストケースには書き方があり、
新人さんはこれをしっかりと理解してください。
また、
新人さんはこの言葉を受けて、
- テストケースには書き方がある
- テストケースは作成後に、
レビューされなければならない
第4回は、
テストケースには書き方がある
プログラムはプログラム言語で書かれますが、
日本語についての詳しいことは専門の書籍などにおまかせしますが、
しかし、
答えは
日本語でテストケースを書くとき、
では、
- 文章は短くする
- 曖昧な表現は極力数字に置き換える
- (1)
文章は短くする 文章が長くなると、
何をやりたいかがぼけてしまいます。接続詞が使用されている文章は、 短文に分割しましょう。 基本的に一文一葉です。
- (2)
曖昧な表現は極力数字に置き換える 形容詞や副詞はなるべく使用しないようにします。
「Aボタンを速くたくさん打つ。」 という書き方は避けます。 「速く」 とはどれだけ速いのか、 たくさんとはどれだけなのかを具体的に書かなければいけません。 また、
形容詞や副詞を除いたとしても、 あやふやな表現をしてしまうことがあります。たとえば、 「Aボタンを連打する」 という表現です。これは 「Aボタンを1秒間当たり16回の速度で連打する」 というような表現にします。ただ 「連打する」 と書いておくだけだと、 1秒間に8回の速度でも連打ですし、 3秒に1回のペースでも連打とみなすことができます。 曖昧な表現は数値に置き換えるなど、
厳密な表現をしましょう。 テストケースは、
必ずしも自分が作って自分が実行するとは限りません。プロジェクトの進み方によっては、 自分が作成したテストケースを、 他の誰かが実行しなければならない局面に遭遇することもあるでしょう。また、 誰かが作成したテストケースを実行するという場面も多くあるでしょう。 誰もが解釈のブレがなく理解でき、
主観ではなく客観的かつ定量的な基準で合否判断を行うために、 文章表現には特に気をつける必要があります。 - テストケースそのもののバリエーションはたくさんある
テストケースは多くの場合文章として作成されると解説しました。しかしながら、
テストケースの表現は、 必ずしも文章だけではありません。 場合によっては、
文章ではなく図や表で表現するほうが適する場合があるかもしれません。また、 文章であっても、 一文で書くのか、 手順ベースで箇条書きにするのかといったスタイルもあります。 これらは、
どのようなテスト観点からどのようなテスト技法を使ってどのようなテストケース表現をするかといったことに依存します。 「テストケースには、 複数の記述スタイルが存在する」 ということを覚えておきましょう。 いろいろな方に話を聞きますと、
テストの観点と確認事項を列挙するして表にまとめる 「テスト項目型」 を採用する現場が多いようです。 このほか、
同じ表形式をとるものとして、 入出力やビジネスロジックの関係を表としてまとめる 「デシジョンテーブル型」 があります。 また、
操作や実行の手順を明確に書く 「手続き型」、 といったものがあります。 今挙げたものは代表的なものですが、
これら以外にも、 沢山の記述スタイルが存在します。 今から書こうとしているテストケースは、
どのようなスタイルで書くともっともわかり易く厳密に表現できるか、 よく考えましょう。 テストケースの記述スタイルについての詳しい解説はこの連載の範囲を超えてしまう ため、
より詳しく知りたい方は、 テスト技法の解説書や 『ソフトウェア・ の記事テストPRESS Vol. 4』 「マインドマップから始めるテストケース設計」 を参考にしてください。
テストケースは作成後にレビューされなければならない
先ほど解説したように、
それはレビューです。
レビューとは、
テストケースを作成したとしても、
これではテストとしての質は下がってしまうでしょう。これを防ぐために、
レビューの種類とまず押さえるべきポイント
レビューにはいくつかのレベルや手法がありますが、
- 個人レビュー
- 同僚レビュー
- 組織レビュー
- 個人レビュー
自分の作ったものを自分で見直します。一番手軽ですが、
自分の思い込みが強く影響してしまうため、 効果的に間違いを発見することには向いていません。ただし、 エンジニアのマナーとして、 自分が作ったものは最低限自分で見直すということをしなければなりません。 - 同僚レビュー
近くの同僚や先輩に見てもらいます。他人の視点からの指摘を獲得することができ、
自分の思い込みによる間違いの排除が期待できます。ただし、 他人の時間を使うことになるので、 時間の調整や多少の事前準備が必要となります。また、 同僚に対し説明する必要があるため、 レビュー対象物を深く理解しておく必要があります。 - 組織レビュー
チームやプロジェクト、
部門の単位で行うレビューです。事前の資料配布や開催時間の調整、 参加者の選定に場所の確保等、 計画的に行われる必要があります。参加者はプロジェクトメンバはもとより、 関連する他部門の有識者にも参加してもらいます。これにより、 より多角的な視点からの指摘を得ることができるようになります。このレベルになると、 専門の司会者 (モデレータ) を置いて開催することがほとんどです。 この連載のケースのように
「新人さんの初めての仕事」 という場合は、 いきなり新人さんが組織レビューを行うことはありえません。組織レビューは他部門を巻き込んで行いますから、 さまざまな調整作業が発生します。社内にまだ人脈がない新人さんには非常にハードルが高いレビューです。個人レビューと同僚レビューが、 新人の方でも比較的はやく経験するレビューになります。
では、
- 個人レビュー
- 致命的な間違いがないか、
もう一度考える - くだらない誤字脱字を訂正する
- 他人に見せる資料として体裁など問題ないかをチェックする
- 致命的な間違いがないか、
- 同僚レビュー
- 時間と場所の調整をつける
- 事前に資料を用意しておく
- とくに見てほしいポイントや不安な点について書き出しておく
- レビュー議事録を作成する
いきなり、
おわりに
テストケースには、
良いテストケースが作成されなければ、
テストケースの品質がテストの品質を決めることを肝に銘じて、
次回は、