「網羅」の幻想を捨て、線を引く。テスト設計と占いに共通する「決断」の技術

エンジニアは、しばしば「網羅」という言葉の呪縛に囚われます。
かつて僕がシニアエンジニアとぶつかり続けたのも、ここが原因でした。すべてのパターンをコードで網羅しようとするあまり、結果として「コードをもう一度書き直す」ような無意味なテストが出来上がるか、あるいは挫折してテスト自体を放棄してしまう。
実は、テストが書けない本当の理由は技術不足ではありません。「何をカバーし、何を捨てるか」という、抽象的な境界線を引く決断ができないことにあります。そしてこの「決め」の欠如は、僕がなぜ占いを活用しているのかという理由とも、深く根底でつながっています。
🛠 1行ずつの網羅は、ただの「逃げ」である
多くのエンジニアは、心配だからこそ、コードの1行1行すべてをテストしようとします。しかし、それは品質管理ではなく、ただの安心感への執着です。
- 具体の罠
すべての分岐を網羅しようとすれば、テストコードは際限なく膨らみ、本体のコードと同じ複雑さを持ち始めます。それはもはや、テストの体をなしていません。 - 抽象の決断
本当に高い品質を維持できるエンジニアは、「この領域をカバーすれば、システム全体としての整合性は担保される」という抽象化による網羅を行います。
この「ここから先はテストしない」と線を引く行為。これは、論理を超えた「決め」の問題なのです。
⚖️ 品質向上は、具体と抽象の往復にある
「システムを長生きさせる」ためには、コードという「具体」のレイヤーと、品質基準という「抽象」のレイヤーを自在に行き来できなければなりません。
抽象化ができないエンジニアは、目に見えるコード(具体)しか信じられません。だからこそ、占いや性格分析のような「目に見えないが、構造や傾向を示すツール」を、ただのオカルトだと断じて排除してしまいます。
しかし、僕にとって占いは、不確実な現実という巨大なシステムを、抽象的なパターン(運気や周期)として捉えるためのツールの一つに過ぎません。テストの境界線を決めるのと同じように、人生やビジネスにおける「攻め時・引き時」という境界線を、抽象的な視点から決断しているだけなのです。
🏁 占いを笑う者は、テストも書けない
「占いなんて非論理的だ」と笑うエンジニアに、僕は問いたい。
「では、あなたの書いているテストは、何を根拠に『これで十分だ』と断言できるのですか?」
100%の網羅が不可能な世界で、僕たちに必要なのは、論理を積み上げた先にある 「決断という名の抽象化」 です。
占いを単なるオカルトとしてではなく、一つの「判断ツール」として理解し、取り入れられるかどうか。それは、そのエンジニアが「具体と抽象を往復する力」を持っているか、つまりは真に高い品質のシステムを設計できるかどうかの、一つのリトマス試験紙になると僕は考えています。