テストもリファクタリングさせてほしい
この記事は「書きたかった一人アドベントカレンダー、リキッドルームに」5日目の記事です。
最初に作るテストは大体冗長
プロダクト爆誕期に作ったころのテストってプロダクトの理解を進めながら作っていたりする+最初だからなるべく抜けないようにしようとして冗長になっていることが多いのです。
自分の未熟さを暴露している気もしますが事実です。
そして、その冗長のちりつもはやばい。
冗長なテストをそのままにしておくと、人が入れ替わり、年月が流れ、細かい経緯が分からなくなり…呪いと等しい量になります。
特にプロダクトに関わる人が入れ替わった場合に残されたテストというのが本当にやばく、そのやばさを残さないように人はテストケースを極力減らしたいと願っているのだと思います。
段々ポエムみが増してきました。
そして誰もいなくなると…
過去に作成したテストでその検討の内容がブラックボックス化してしまうことがあります。これが本当のブラックボックステストです。
こんなシケギャグを言っている場合ではなく、テスト内容をさらに読み解くこと…特に、詳細に書いたテストについてはプログラム理解と同じくらい時間がかかると思います。
これを派生開発のような短い開発期間の間でやろうとすると地獄が発生します。
定期的にテストを整頓したい
上記のような地獄を防ぐためにも、地獄の最小化を図りたいです。それが、『テストもリファクタリングさせてほしい』なんですね。
いっそリエンジニアリングでもいい。
いずれにせよ、作ったらおしまいにできる、その概念自体をおしまいにしたいです。
自動化するならなおさら整頓したい
自動化するとブラックボックス化がさらにブラックボックス化す…しないですかね?トレーサビリティをとれていればしないのかな?
するということにしておきます(?)なので、なおさら自動化する前に整然としておきたいです。自動化自体も文脈広すぎですが…
とにかくテストもリファクタリングという作業が必要なことが定着してほしい
・テストが何をやっているかわからなくなる
・テストの量が増えていく
・人が減っていく
この3つが重なると本当に辛いので、それに対抗するためにリファクタリングが必要(テストがすっきりしていれば量も増えず、人が少なくても対応できる)という認識が本当に広まってほしいです。
それと共に、自分もそれを提案でき、それをこなすことができる人であるように。