Skip to Content
テスト駆動開発を学ぶ
book

テスト駆動開発を学ぶ

by Saleem Siddiqui
May 2025
Intermediate to advanced
280 pages
3h 35m
Japanese
O'Reilly Media, Inc.
Content preview from テスト駆動開発を学ぶ

序文

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

テスト駆動開発とは、プログラミング中の恐怖を管理する方法である。

ケント・ベック

私たちは本当に幸運だ!我々は何年もテスト駆動開発をしてきた。

マーキュリー宇宙計画のコードを書き込んだ開発者たちが、パンチカードTDD(テスト駆動開発)を実践してから数十年が経過した。テスト駆動開発の採用を促進するXUnitライブラリの歴史は、今世紀にさかのぼる。実際、ケント・ベック(Kent Beck)は『テスト駆動開発(Test-Driven Development:By Example』(Addison-Wesley Professional、2002年)を執筆し、JUnitフレームワークを開発したケント・ベックは、TDDの実践を(発明ではなく)「再発見」したと自称している。この文は彼の謙虚さの証拠であり、同時に真実でもある。TDDは、ソフトウェア開発そのものと同じくらい古いものだ。

ではなぜ、テスト駆動開発はいまだにコードを書く標準的な方法からほど遠いのだろうか?スケジュールのプレッシャーがあるとき、IT予算を切り詰める必要があるとき、あるいは(個人的に好きなのだが)「ソフトウェアデリバリーチームの速度を上げたい」という願望があるとき、なぜテスト駆動開発が最初に犠牲にされることが多いのだろうか?TDDが不具合のカウントを減らし、よりシンプルな設計を作成し、開発者のコードに対する自信を向上させるという経験的 実験的証拠がすぐに利用できるにもかかわらず、これらの理由はすべて提示される。

なぜTDDは不承不承採用され、すぐに放棄されるのだろうか?実践に消極的な人々からよく聞かれる以下の引数が、その理由を説明するかもしれない:

どこから、どうやって始めたらいいのかわからない。

おそらく最も一般的な理由は、認識不足と露出不足だろう。他のスキルと同様に、テスト駆動スタイルでコードを書くことは学ぶ必要がある。多くの開発者は、このスキルを習得するための外的な誘因(時間、リソース、指導、励まし)や内的な動機づけ(自分自身の消極性や恐怖に打ち勝つ)を得ていない。

TDDは、おもちゃのプログラムやコーディング面接では機能するが、"現実世界 "のコードを書くときには機能しない。

これは真実ではないが、理解できる。この本を含め、テスト駆動開発のチュートリアルや本のほとんどは、明らかなドメインから比較的単純な例を選ぶという制約がある。商業的にデプロイされたアプリケーション(金融機関、医療管理システム、自動運転自動車など)から抜き出したソフトウェアの実際のコードを使って、TDDの記事や本を書くのは難しい。ひとつには、このような実世界のコードの多くはプロプライエタリであり、オープンソースではないからだ。もうひとつは、最大の聴衆に最も広くアピールできる領域のコードを示すことが著者の仕事だということだ。高度に特殊化したドメインの文脈でTDDを示すのは、曖昧主義に近い非論理的なことだ。そうするためには、何よりもまず、その領域の難解な専門用語や専門用語について長々と説明する必要がある。それでは、TDDを理解しやすく、親しみやすく、愛すべきものにする、という著者の目的そのものが台無しになってしまう。

TDDの文献で実世界のコードを使用することに対するこのような障害はともかく、開発者は定期的にテスト駆動開発を使って量産ソフトウェアを書いている。おそらく最も説得力のある例は、 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

はじめての知識グラフ構築ガイド

はじめての知識グラフ構築ガイド

Jesus Barrasa, Jim Webber
初めてのGraphQL ―Webサービスを作って学ぶ新世代API

初めてのGraphQL ―Webサービスを作って学ぶ新世代API

Eve Porcello, Alex Banks, 尾崎 沙耶, あんどうやすし
ユーザーストーリーマッピング

ユーザーストーリーマッピング

Jeff Patton, 川口 恭伸, 長尾 高弘

Publisher Resources

ISBN: 9798341650992