ソフトウェアのテストを書くのが嫌になる瞬間、今回は第5位です。
以下、単に”テスト”と書いた場合は、テストコードのことを指し、CIツールなどで自動実行されるものを指します。また、単に"コード"と書いた場合には、プロダクションコードを指します。 また、単体テストよりもエンドtoエンドのテストを厚く書く職場で働いています。
テストを書くのが嫌になる瞬間 第5位 : テストを書いたにも関わらずリリース後にバグが発見されたとき
辛い。
今回は漫画なしです。
テストを書くとバグが減ると思ってましたが、大して減りません。
バグが発生した原因としては、大きく分けると
- 自動テストのケース漏れ
- 手動でしか確認できない部分の漏れ(副作用系)
に分けられます。
リリース後に発見される(大抵はユーザ問い合わせで発覚する)バグで多いのは、"手動でしか確認できない部分の漏れ(副作用系)"です。このバグは自動テスト導入しても(当然ながら)一向に減ることはありません。
手動でしか確認できない部分の漏れ(副作用系)の具体的な内容としては、以下のようなものです。
- ファイルの書き出しが正しくされていない
- 他のAPIに通知されるはずが通知されていない
- メールが送られるはずが送られていない
- 親子関係のあるデータで、親を削除した時に子のデータも一緒に削除されるはずが、されていない
また、現在システムが複雑化していて、同じ機能を持ったアプリが複数ある状況で、片方で登録した内容がもう片方で正しく表示されない、などの問題もありました。
あとは、これはリリース前に気づいたことですが、運用ログが出力されていないということもありました。(参照する変数が間違っていて毎回ID:null
と出ていたり、文字列だけ組み立てて出力するコードを書き忘れていたり)。
個人的な感想ですが、自動テストを導入してそちらのテストに気を取られて手動でしか確認できないテストに手と気が回らなくなってる気がします。ツールの問題より人間の気力というのが難しいところです。
また、テストが通ること=バグがないこと、と思い、手動テストが必要だという意識がないメンバーもいて、頭を悩ませているところです。 テストを書くことによる恩恵も受けているので、テストを書かなくするという対応策も取れず。
第5位は以上です。その他のソフトウェアのテストを書くのが嫌になる瞬間は以下にまとめています。