「ソフトウェア・テストの技法 第2版」読んだ

「ソフトウェア・テストの技法 第2版」はテストに関する基本的な概念、方法について書いてある非常に実用的な本である。

プログラムを書いたらテストをしてちゃんと実装できてるかを確かめることになる。テストを行うフレームワークJUnitとか色々あるけど、ツールの使い方ではなくて、そもそもテストってどうやったらいいの?っていうことがよく分かってなかった。

さて、そんな訳でこの本を読むと、テストはこう考えて,こうやればいいというのが、結構分かってきた。

テストの技法については、本に詳しく書いてあるので読めばがいいが,テストの基本的な概念についてこの本の内容を書いてみる。

テストとは、エラーを見つけるつもりでプログラムを実行する過程である

テストって何?

と聞かれて、「プログラムが正しいか検査することだよ」とか「バグがないことを確かめることだよ」とか答えるかもしれない。しかし、心の仲でもそのようにテストを捉えてしまうと適切なテストを作成する妨げとなるかもしれない。なぜなら、テストを通す事を成功と思うことで、間違いを発見するテストを書かなくなる恐れがあるからだ。そのため、プログラムに存在する間違いが修正される可能性が少なくなる。
そこで、テストを間違いを発見することが目的であり、間違いを多く発見するテストが,良いテストと思うことで、積極的に多くの間違いを発見するテストを書くようになる訳だ。

良いテスト、成功したテストとは、間違いを多く発見する、したものである

テストが通ることと、テストの良し悪しを混同してはならない。良いテストとは、実行の過程で多くの間違いを発見したものだ。

良いテストの書き方

テストは本当はプログラムのすべての間違いを見つけたいので徹底的(網羅的)な入力テストが基本としてある。しかし、そんなことはほとんどの場合には現実的もしくは根本的に不可能だ。なぜなら、テストケースが天文学的な数や無限になってしまうからだ。
そこでなるべく多くの間違いを見つけるいくらかのテストを書くことになる。その書き方がこの本に書いてある。

人によるテストは重要だ

コンピュータによるテストだけではなく、人がプログラムを読んで検査することは間違いの発見に、非常に有効であり他にも様々な利点がある。大事なのは他の人にコードの説明をすることだ。このための手法には、ウォークスルーテストなどがある。

ソフトウェア・テストの技法 第2版
J. マイヤーズ M. トーマス T. バジェット C. サンドラー Glenford J. Myers Todd M. Thomas Tom Badgett Corey Sandler 長尾 真 松尾 正信
近代科学社 (2006/08)
売り上げランキング: 90995