【コード哲学エッセイ】 テストは 「保険」 じゃない。未来の僕へ捧げる 「祈り」 だ
「あとで書く」 という嘘
「テストコード、書かなきゃなぁ……」
納期に追われる深夜、エディタのカーソルを見つめながら、僕は何度この言葉を飲み込んだことでしょうか。
機能の実装だけで手一杯。動いているんだから大丈夫。テストなんて書いても、ユーザーには見えないし。
そうやって自分に言い訳をして、「あとで書く(TODO: add tests)」というコメントを残してコミットする。
けれど、その「あとで」が永遠に来ないことを、僕自身が一番よく知っていました。
当時の僕にとって、テストコードは「保険」でした。
万が一のバグに備えて、しぶしぶ払う掛け金。
何も起きなければ無駄になるコスト。
だから、余裕がない時は真っ先に切り捨てられる対象だったのです。
しかし、ある冬の出来事が、その冷たい価値観を変えました。
孤独な夜を照らす緑色の光
それは、個人開発していたサービスの決済機能に、深刻なバグが見つかった時のことでした。
特定の条件下で、二重課金が発生してしまう。
深夜 2 時。暖房の切れた部屋で、僕は震える手でコードを修正していました。
直しても直しても、別のどこかが壊れる恐怖。
「これで本当に大丈夫なのか?」という不安が、冷気と共に足元から這い上がってきます。
すがるような思いで、過去の自分が書いたテストスイートを実行しました。
プログレスバーが走り出します。
ひとつ、またひとつと、テストケースが通過していく。
. . . . .そして最後に、全てのテストがパスしたことを告げる**「GREEN(成功)」**の文字が表示されました。
その瞬間、張り詰めていた糸がふっと緩み、涙が出そうになりました。
それは単なる「バグがないことの証明」ではありませんでした。
「大丈夫だよ」
「君が守ろうとしたロジックは、まだここにあるよ」
過去の僕が、未来の(今の)僕にそう語りかけてくれているように感じたのです。
「祈り」 としてのテストコード
あの日以来、僕の中でテストコードの意味が変わりました。
それは「保険」などという損得勘定で語れるものではありません。
テストを書くこと。
それは、未来の自分や、このコードを触る誰かへ向けた「祈り」に近い行為なのです。
「どうか、このロジックが壊れませんように」
「どうか、未来の君が安心して眠れますように」
そんな願いを込めて、アサーション(断定)を書く。
`expect(result).toBe(true)` という一行は、論理的な検証であると同時に、「こうあってほしい」という強い意志の表明でもあります。
そう考えると、テストを書く時間が、少しだけ愛おしいものに変わりました。
それは、コードという無機質なものに、開発者の体温を吹き込む儀式のようなものだからです。
完璧じゃなくていい、優しさを残そう
もちろん、全てのコードに完璧なテストを書くのは難しいかもしれません。
カバレッジ(網羅率) 100% を目指して疲弊してしまうのも、本末転倒です。
でも、「ここだけは壊したくない」「ここは複雑だから不安だ」という場所に、ひとつだけテストを書いてみる。
それは、未来の自分へのささやかなプレゼントになります。
もし今、あなたがテストを書くことに義務感や苦痛を感じているなら、少しだけ視点を変えてみてほしいのです。
それは、誰かに見せるための「証明書」ではありません。
未来のあなたが、恐怖に怯えず、健やかに開発を続けるための「お守り」です。
コードの向こう側にいる 「人」 を想う
エンジニアは、コンピューターと対話する仕事だと思われがちです。
けれど、そのコードを書き、保守し、その上で動くサービスを使うのは、いつだって「人」です。
テストコードは、時を超えて「人(過去の自分)」と「人(未来の自分)」を繋ぐ、優しさの架け橋なのかもしれません。
だから僕は今日も、祈るようにテストを書きます。
画面に灯る緑色の光が、いつか誰かの夜明けを照らすことを信じて。
あわせて読みたい
技術と感情の狭間で揺れるエンジニアの心に寄り添う、コード哲学エッセイシリーズです。
無機質なコミットログに絶望したことはありませんか?
ログを「作業記録」ではなく、未来の自分への「手紙」として捉え直すことで、開発に物語と温度を取り戻すエッセイです。
過去の自分が書いた「汚いコード」を責めてしまうあなたへ。
リファクタリングを単なる修正作業ではなく、過去の自分との「和解」のプロセスとして描いた、癒やしの技術論です。
言葉が出ない苦しみを知っているからこそ、書くことの尊さがわかる。
吃音を持つ僕が、プログラミングという「話さない言葉」に出会い、世界とつながっていく再生の物語です。
ひとりごと
「テスト駆動開発(TDD)」という言葉がありますが、僕は最近「愛情駆動開発(Love Driven Development)」があってもいいんじゃないかと思っています。
自分の書いたコードを愛し、それを触る未来の自分を慈しむ。
その具体的な行動が「テストを書く」ということ。
そう捉えると、面倒だったテスト記述が、なんだか丁寧な暮らしの一部のように思えてくるから不思議です。
あなたのコードにも、優しい祈りが宿りますように。

いいなと思ったら応援しよう!
最後まで読んでいただき、ありがとうございます。もしこの記事が「役に立った」「心に響いた」と感じたら、珈琲一杯分サポートいただけると嬉しいです。あなたの温かい応援を力に、また次の創作活動に励みます。