/var/log/study

つまり雑記

テストを書いた経験と、「書いていない」という話を受けて

厨二的ポエム

前提

  • 「テストコードを書いている」と言うことについて、現状の気持ちをざっくりと残しておきたい。
  • 「気持ち」なので技術的に云々の話は書かない。
  • ここで指す「テストコード」もしくは「テスト」とは単体テストのことで、それ以外のことを指すときは明記する。

テストコードを書いた経験

2016年の5月あたりに、@t_wadaさんの新人プログラマ向けの公演を聴き、「やっぱテストはきちんと書きたいよなぁ」なんて思っていた。

それまでもちょこちょこテストを書いて恩恵は受けてたけれども。

そんなことを考えていた矢先、2016年の7月下旬から9月23日までの2ヶ月足らずの間、テスト駆動開発的に、コードのリファクタリングをする機会に恵まれた。 参加させてもらったチームが持っている、改善対象のプロダクトには、回帰テストが用意されていたので、自分が修正する分に対して出来る限りテストコード追加してリファクタリング進めていった。

期間が9/23までという都合上、改善の余地のあるコードを残してしまったし、自分のテストコードが妥当であるかどうか?は反省すべき点が多い。 それでも Red-Green-Refactor の Green-Refactor回帰テスト単体テストの両方を利用して繰り返し、現状よりは良いコードを残せたのではないか?と考えている。

絶賛稼働中のプロダクトに対して、テストを書いて改善する活動を通しての感想は、「t_wadaさんの言っていたことは本当でした!」の一言に尽きる。

そんな感じの話を「テストコードを書くと言うのはつまり安心感を高める事に繋がるよ」という所に重点を置きつつ部署の人に対してプレゼンしたらだいぶ納得してもらえたし、「テスト書きたいと思えた」なんて感想もいただけた。

いい感じにt_wadaさんの公演が、自分や組織のためになったなぁと思っている。

「テストコードを書いていない」という話

それはさておき、最近、たまたま同期の「テストコードは書いていない」と言う話しを聞いた。

とりあえず、現状、雑でもテストを書けるようなったからと言って、「テストを書いていない」と言った同期に対して、鬼の首を取ったように責めたいわけではない。

いくらt_wadaさんの話しを聞いたとはいえ、突然テストが書けるようになるもんでも無いのは分かっている。

とはいえ、テストを書いていないのは事実で、「時間がないからテストをしないのではなく、テストを書かないから時間がなくなる」と教わって、実際に自分でテストを利用して改善する経験を積んだ後だとなんだかなぁと思った。

テストを書いた経験と、「書いていない」という話を受けて

まず最初に思ったことは、自分から進んでテストが書けるようになるまで、プログラミングを始めてからおおよそ3年はかかっていて、つまり「テストは書いていない」という状態は「来た道」だと認識している。

なので個人のスキルとしてテストが書けない人を見かけたら、一緒にテストが書ける様にガイド出来たら良いなぁと思う。

プロジェクト単位でテストを書く書かないは、トレードオフ的な話(ちょっと昔に公開されていたスライドだと、たとえばこれ)とか、理由はいくらでもあると思っているし、テストコード自体に良し悪しが当然あるので、書いているから良、書いていないから悪ではないと思う。

ただ、「書いていない」よりも「書いている」方が良い状況(=安心感がより高い状況)である事が大半だと思う。単純な技術的負債の意味合いでテストが無いプロジェクトにjoinする機会が巡ってくるまでに、テストを導入する提案とか、テストコードを書く環境の提供とかをサクッと出来るように努力したい。

とりあえず、現状自分には「テストを書く」以外でプログラム的側面から発生する、バグが発生しているかもしれない等の不安への対処方法が無い。

なので今後も継続的にテストコードを書いて行きたいなぁと思った次第でございます。