11章テストの時代

品質はタダである。ただし、品質に対して喜んでお金を出す人だけに対して。

――トム・デマルコ、ディモシー・リスター

『ピープルウェア』

テスト駆動開発(TDD:Test-Driven Development)は、人によっては宗教であり、コードを開発するための唯一の健全な方法です。一方、素晴らしいアイデアにもかかわらず、あまり実施されていないものでもあります。そして、純粋に無駄骨だと思っている人もいます。

テスト駆動開発とは、何なのでしょうか。

テスト駆動が何を意味し、単体テストが何であるかに関しては、いまだに曖昧です。しかし、テスト駆動開発は優れたソフトウェアを構築するための重要な技法です。優れたコードを書くために、その曖昧さを解消して、開発テストに対する健全な取り組み方を見つけましょう。

なぜテストをするのか

それは分かりきったことです。私達は、自分のコードをテストしなければなりません

もちろん、プログラムを動作させなければ、そのプログラムが正しく機能するかを知ることはできません。コードを試すことなくリリースするほどの自信があるプログラマはほとんどいません。試すことを省略した場合、コードが最初から機能するのはまれです。QAチーム、もっと悪い場合はユーザが使ったときに、初めて問題が発見されます。

フィードバックループを短くする

優れたソフトウェアを開発するには、プログラマはフィードバックを必要とします。できる限り頻繁かつ素早いフィードバックが必要です。優れたテスト戦略は、フィードバックループを短くするので、効率的に仕事ができます。

  • コードが市場しじょうで使われて、正しい結果をエンドユーザへ返しているなら、コードが正しく機能していることが分かります。なぜなら、機能していなければ、ユーザは苦情をいってくるからです。もし、ユーザからの苦情が唯一のフィードバックループであれば、ソフトウェア開発は遅く、費用を要します。しかし、もっとうまい方法があります。 ...

Get ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.