8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ソフトウェアテストの小ネタAdvent Calendar 2017

Day 11

テスト実行時に手戻りしないための小ネタ

Last updated at Posted at 2017-12-10

#ノーモア手戻り
皆さん、テストで手戻りした経験はありますか?
私はいっぱいあります。
テストをやっているときは基本的にコードを書かないと思いますので、
退屈に感じる人も多いと思います。

でも、テストは大切な作業です。素早くミスなくきっちり終わらせたいものです。
手戻りをできるだけ回避するためのTIPSを、自分なりにまとめてみました。

#前提の整理
この記事では、「テスト実行時に、何らかの失敗をして、テスト実行をやり直すこと」を「手戻り」と呼びます。

  • そもそものユーザーストーリーが間違っていた
  • 実装をするための設計にミスがあった
  • 実装が間違っていた
  • テスト仕様書が噓をついていた

といった、「テスト実行より手前の段取りに不備があったこと」を理由にした「やり直し」については触れません。

#1.テスト実行前にやること
####テスト準備の不備をつぶす

  • 「前提条件」をリスト化し、すべて確認する
    • テスト実行環境
    • テスト対象のリソース
    • テスト実行ユーザ
    • テストデータ
    • (他にもいろいろ)

経験上、テストの手戻りでいちばんありがちなパターンが、
「前提条件を間違えていた」です。

例を挙げると、

  • ひとつ前のリビジョンでテストをしていた
  • 環境Aでやらなければならないテストを環境Bでやっていた
  • 「女性」ユーザ限定の機能を確認するテストなのに「男性」ユーザを使用していた

などです。

これらの前提条件の準備に間違いがあると、テストをすべてやり直しする羽目になってしまいます。状況によって「何を網羅すれば準備完了といえるのか」は変わりますが、例えばそれをリスト化することによって、抜け漏れを検知することができます。

特に、プロジェクトに入って日が浅い人は、モブプログラミングのような形で、グループで「前提条件のリスト」をレビューしてあげると良いと思います。

#2.テスト実行中にやること
####とにかく落ち着いて、一つずつ

  • テストケースをひとつ実行するたびに、いま何をしなければいけないかを確認する
    • 前提条件
    • テスト実行手順
    • 期待値を確認するタイミング
    • 期待値と、OK\NGの判断根拠

先ほどの例に似ていますが、例えば、テストケース№1~100までが「男性」ユーザのテストケースで、№101からが「女性」ユーザのテストケースだったとします。
前提条件を都度チェックせず、№101以降も「男性」ユーザでテストを進めてしまうと、手戻りが発生します。

####アナログな手法を活用する

  • テスト仕様書の黙読を避ける
    • いま自分が読んでいる箇所を「指さし確認」する
    • ついでに「声に出して読む」
    • 読んだところに「取り消し線」を引く
    • 紙に印刷してしまう

実行者が人間である限り、ヒューマンエラーは起きます。
「前提条件を確認したつもり(だけど確認が漏れていた)」「この手順を実行したつもり(だけど異なる手順を実行していた)」といったことです。
実行した箇所をツールが自動的に「実行しました」とチェックしてくれるようなツールがあれば嬉しいのですが、2017年現在は、まだそのようなツールは世の中に出回っていません。
とてもアナログではありますが、例えば指さし確認をすることで、自分の意識をその箇所に集中させることができます。

#3.テスト実行後にやること
####実行ミスがないかチェックする

  • 結果の評価にツールを使う
  • 事前にユニットテストを自動化しておく
  • Excelなどの数式で比較する
  • 差分比較ツールを使う→テキストファイル、画像、PDFなど

ここでも、実行者が人間である限り、ヒューマンエラーは起きます。
「実行ミスがないかチェックする」と口でいうのは簡単なのですが、
「実行ミスが実行ミスであることに正確に気づく」ことはとても大変です。
ツールなどを使って、「嫌でもミスに気付く」仕組みを作っていければ望ましいと思います。

#おわりに
上記に書いたことを、すべて実行できるとは限らないと思います。
指さし確認をしていたら「変な人だなあ」と思われることもありますし、
そんな悠長なことをやっていられない局面もあります。
けれども、「急がば回れ」が原則だと私は考えています。
ノーモア手戻り。あなたにとってテストが楽しく、充実した時間になりますように。

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?