はじめに
この記事は、「ワインバーグさんにまつわる Advent Calendar 2025」の5日目の記事です。
私はワインバーグ氏の「パーフェクトソフトウェア」について語ろうと思います。
パーフェクトソフトウェアの概要
「パーフェクトソフトウェア」と聞くと、「パーフェクトなソフトウェアとは何か」を伝えているように思えますが、実際は違います。
隅から隅まで読んだわけではないですが「パーフェクトソフトウェアとはなにか?」「それを事実から理解しよう」「事実を知る手段はテストだ」
という論調で、この本はいわばテストについて語った本です。
そして、この本はテスター向けでもありますが、ソフトウェア開発に携わるすべての人々へ、テストに対する正しい期待とテストが抱える難しい問題、あるいはテストではどうにもできないような現実を見事に表現しています。
アジャイル開発や自動テスト、生成AIが普及した今でも、この本で書かれていることの本質、「パーフェクトなソフトウェアは可能か」「パーフェクトなソフトウェアを実装するパーフェクトなテストは可能か」ということは同じく我々に突きつけられています。
お前はパーフェクトソフトウェアを読め
私はキャリアのかなり初期に「パーフェクトソフトウェア」を読みました。
多分エンジニア2ヶ月目とかで、研修期間中だったと思います。
なので、パーフェクトソフトウェアで書かれているソフトウェア開発の難しさ、そしてテストの限界は「当然の前提」のように感じていました。
今では、テストのコミュニティに限らずさまざまなコミュニティに参加させていただくことがあります。
私自身、さまざまなロールの人が参加できるtestingOsakaというコミュニティを運営しています。
そこでよく、「テストの技術を学ぶより、まず自分の地続きのところから品質について学んだ方がいい」ということを言っています。
この場では、あえてこう言いましょう。
「お前はパーフェクトソフトウェアを読め」
テスト技法やテストマネジメント、テスト戦略、テストアーキテクチャといった具体的な技術を学べば解決するかもしれません。
ただ、その前に、「テストとはなんなのか」「テストに期待することはなんなのか」ということを、おそらく皆さんの心にある「パーフェクトなソフトウェア」から連想する形で提示してくれます。
これからテストを学びたいと思った人、品質について考えたいと思った人へ、「テスト」という視点や考えで何がもたらされるかが、この本でわかります。
私はパーフェクトソフトウェアの読者の中で想定されている「プロのテスト技術者」に分類されると思います。
そしてプロのテスト技術者として、すべての人に読んで欲しいと思っています。