【初級エンジニア向け】テスト仕様書のを書く際のちょっとしたコツ

  • このエントリーをはてなブックマークに追加

テストはシステムの安全を保証するための重要な工程です。

その重要なテストを、いかに抜け漏れ無く行えるかは、

テスト仕様書の内容にかかっています。

テスト仕様書の書き方は、システムの内容や、仕様書のフォーマットによって様々ですが、

どんなテストをする時にも使える、ちょっとしたコツをまとめてみました。

よかったら参考にしてみてください。

MAX値とMIN値を意識する

例えば、DBに登録されている金額を表示させる画面があったとして。

その部分が

「3桁毎にカンマ区切りで表示、単位は”円”」

という仕様になっていたとします。

DBの”1000“という値を”1,000円”と表示させるやつですね。

この機能(仕様)が正しく動いているかテストするために必要なテストデータを考えてみましょう。

まずはDBに’1000’という値を入れたテストデータが必要なのはすぐに分かると思います。

しかしそれだけでは十分と言えず、それ以外のMAX値とMIN値を用意しておく必要があります。

MAX値

MAX値はこの場合DBのカラムのlengthによって変わってきますね。

lengthが8桁だったら”10000000“、もしくは”99999999“という値を用意して

それぞれ“10,000,000円”、”99,999,999円”というように表示されることを確認します。

MIN値

MIN値もDBの仕様によって変わってきますが、NULLなのか、0なのかが考えられます。

NULLが入るケースがある場合、この時の画面表示はブランクなのか、

それとも「円」だけ表示されているのか、もしくは「 – 円」というように

別の表示形式になるのか、などを確認しなければいけません。

もし「DBが0だった時の仕様を考えていなかった!」といったことがあれば、

この段階で気づくことが出来て修正することが出来ます。

色々な所でMAX値とMIN値は意識するようにしましょう。

 

ビフォーアフターを用意する

例えば、仕様書の確認項目として

「hogeテーブルのfugaの値が1になっていることを確認する」

という項目があったとします。

しかしこれだけでは確認項目として十分ではありません。

これは「アフター」だけ書かれていて、「ビフォー」が書かれていないからです。

この場合、第三者から見たら、「値が1にさえなっていればいいの?この前はどういう状態だったの?」

という疑問が湧いてしまいます。

自分にとっては「今更確認する必要もない」と思うようなことでも、

第三者から見たら疑問に思うこともあります。

それを防ぐために、このような「状態が変わる」ことを確認するテスト項目では

ビフォーとアフターを明確にしましょう。

今回の例の場合は以下のように記述すると良いです。

前提条件:hogeテーブルが「実行前」の状態になっていること

確認項目:処理を行った後にhogeテーブルが「実行後」の状態になっていることを確認する

実行前 実行後
fuga fuga
0 1

具体的な値を用意する

「入力された値が消費税込みの価格で表示されること」

はい、これもNGですね。

この確認項目だけでは、テストをする際にいちいち計算をしなければいけないし、

端数が切り捨てなのか、四捨五入なのかも分かりません。

「消費税込みの価格」という曖昧な表現ではなく、具体的な値を用意しましょう。

このような場合は以下のようにしましょう。

 

入力された値が消費税込みの価格で表示されることを確認する

※消費税は8%、端数は四捨五入して計算すること

「テストデータ1」を使用し、「想定結果」の状態になっていることを確認する

テストデータ1

¥100

¥101

¥120

想定結果

¥108

※1.08倍されていることを確認

¥109

※小数点第一位が切捨てされていることを確認

¥130

※小数点第一位が繰上げされていることを確認

無闇に番号をふらない

最後はちょっとした小技です。

以下のようにテスト仕様書を書いていたとします。

1 .   hoge処理の実行

 1-1. ・・・・・・

 1-2. ・・・・・・

 1-3. 「2 . fuga処理の実行」が行われること。

2 . fuga処理の実行

 2-1.  ・・・・・・

 2-2. ・・・・・・

 2-3. ・・・・・・

このテスト仕様書を書いている途中に、システムの仕様が変わり、

hoge処理の前にpiyo処理がが入ることになりました。

さあ、テスト仕様書も直さねば!

1 . piyo処理の実行

 1-1. ・・・・・・

 1-2. ・・・・・・

 1-3. 「2 . hoge処理の実行」が行われること。

2 . hoge処理の実行

 2-1.・・・・・・

 2-2. ・・・・・・

 2-3. 「2 . fuge処理の実行」が行われること。

3. fuge処理の実行

 3-1.・・・・・・

 3-2. ・・・・・・

 3-3. ・・・・・・

「piyo処理の実行」が1番目に来てしまったせいで、

全ての番号を振り直さなければいけなくなりました。

よくあることですね。

番号を一つ一つ振り直したかと思いきや、1箇所だけ直っていませんね。

 2-3. 「2 . fuge処理の実行」が行われること。

3. fuge処理の実行

はい、この「2 . fuge処理の実行」も「3 . fuge処理の実行」に直さなければいけませんね。

「直せばいいじゃん」って思われるかもしれませんが、まぁ~これがめんどくさい。

1箇所だけならともかく、このような記述が何箇所もあったら結構な時間がかかります。

何より見落としてしまう可能性もあります。

これを防ぐためには簡単です。

最初から

「2 .」は書かずに

「fuge処理の実行」が行われること。

とだけ書いておけばいいのです。

番号が振っていなくても、大して見辛くなることはないし、

これによって修正の手間とミスをする可能性が大幅に減ります。

もし番号を振ることがルールになっているのだとしたら、

「手間とミスを無くすために番号を無闇に振るのはやめませんか」と進言してみましょう!

 

まとめ

いかがだったでしょうか。

テストでは、とにかく抜け漏れなく行うことが求められますが、

今回紹介したような「ちょっとしたコツ」が分かっていると、どんな時にも役に立ちます。

このような「ちょっとしたコツ」の積み重ねが

自身のエンジニアとしてのスキル・経験値となっていきます。

ぜひ参考にしてみてください。