はじめに
こんにちは。IT業界で働き始めて1年半の駆け出しエンジニアです。
今回は、現場で実際に経験した出来事を通して、単体テストにおける「テストコード実装の重要性」についてお話ししたいと思います。
なぜそう感じたのか
これまで私は3つの開発現場を経験してきました。
どの現場でも単体テストは「画面を実際に操作して確認し、スクリーンショットでエビデンスを残す」という手動テストが主流でした。
しかし、3つ目の現場での出来事が、私の考え方を大きく変えるきっかけになりました。
その現場では、同僚のAさんがB画面・C画面・D画面の結合テストを1ヶ月かけて担当することになっていました。
ところが、最初のB画面のテストを進めていく中で、次から次へとバグが発見されたのです。
しかもそのバグの多くは、そもそも正常な動作すらしないほど深刻なものでした。
Aさんは自分が開発した画面ではないにもかかわらず、テストよりもバグ修正がメイン作業となってしまいました。
(ちなみに、その画面を開発していた方はすでに別プロジェクトへ異動済みでした)
ある程度の修正が終わるとテストを再開し、また新たなバグが見つかって修正……。
このループにより、1画面の結合テストに1ヶ月もかかってしまったのです。
この状況を見て、私は思いました。
「もし、単体テスト時にテストコードが書かれていれば、こんなに大変なことにはならなかったのではないか?」と。
テストコードは本当に必要か
「テストコードって本当に必要なの?」
私も最初はそう思っていました。
「仕様通りに実装すれば、そこまでバグは出ないでしょ?」とも思っていました。
しかし、実際の現場では仕様通りに作ったつもりでも、バグは想像以上に発生します。
それに、画面操作でテストしてエビデンスを毎回残す作業は、地味に時間も手間もかかります。
一方で、テストコードがあれば
- 修正のたびに再テストを自動で実施できる
- バグの早期発見ができる
- 保守時の影響範囲を確認しやすくなる
など、長期的に見ればメリットが非常に大きいと感じました。
実際、ネットでも「テストコードを書く現場は少ない」という声を見かけます。
「工数がかかる」「開発スピードが落ちる」といった理由があるのも理解できます。
ですが、現場で手を動かしてきた身としては、
テストコードはやはり必要だと、強く感じています。
おわりに
今回の経験を通して、テストコードの有無が後工程に与える影響の大きさを実感しました。
目の前の納期や工数だけを考えるのではなく、その先の保守や品質も含めた視点で判断することの大切さを学びました。
これから現場に入る方や、テストコードを書くべきか迷っている方の参考になれば幸いです。