https://swet.dena.com/entry/2023/11/13/170000
会社でシステムの改修にたいして、Backlogのチケット単位での試験のエビデンスが必要になったので、どうしてやろうかとなってる。
せっかく自動テストやっとるので、自動テストやってる箇所についてはエビデンスもいい感じに生成されて欲しい。
jestで差分テストやって、その結果をチケットにコピペでぺってはったるのが一番素朴な感じ。
Githubでプルリク作ったらJestが走って、プルリクのコメントでJestの実行結果のレポート出るみたいな感じにしたいっすね。
JestのHTML reporter色々あるけど、定番とか無さげ?jest-junitがJestの公式で言及されてるけど、出力がXMLなので扱いがめんどい。
作っているシステムがなかなか品証を通らずリリースできないでいる。
品証が通らなければリリースを翌週に延期してバクを直すのだが、時間が余って機能追加するものだからそれでまたバグるみたいなことを繰り返している。
自動テストを作ってもコレなので、システムの規模が大きくなると厄介だ。
なんとか今日中にバグを直して、品質保証して、翌週月曜日にリリースできるようにしたいけども、今日は午後から社員旅行で時間がなくて無理そう。
バグ直すだけならできると思うんだけど、自動テストの拡充チャンスなので、自動テスト化してから直したい。
CypressによるE2Eテストもgit commitの度に実行されるようにしてあったのだが、これはやめてしまった。リリース時のみ使用することとした。
まず時間がかかりすぎる。1ケースあたり1秒はかかる。複雑なことをすれば10秒20秒かかるのが当たり前になる。現時点で20のテストケースが作られており、全て実行されるまでトイレに行く時間程度はかかる。
次にAWS費用が高くついた。E2Eテストなので当然APIが叩かれ、DBにクエリが走り、ログが保存される。1日に15回ほどのgit commitをしたところ、その日のCloudWatchの費用がX USDを超え、予算超過のアラートが出た。E2Eテストが今月分の予算を食い尽くしてしまった。確かに開発速度と引き換えの必要経費と言える。日給XXX円と思えば破格だ。しかし今は上司が育休に入っており予算を拡大するには予算申請が社長に飛ぶ。社長の時間単価はX USDよりはるかに高い。あとなんか怖い。予算超過は年に均せばまだセーフということで、なんとか爪に火を灯して凌ごうとなった。
しかし、このみみっちい判断が社長の意にそぐわない可能性は高い。やるべきことをやってない。XXX円のために人件費を垂れ流している。いや、そこまで考えるのは追い込み過ぎか。現時点で十二分に開発速度は速い。
React Testing libraryによって100を超えるテストケースが実装された。10秒ほどでそのすべてが実行される。
コードの保存、コミット、プッシュのたびに自動テストが実行されるようにしてある。
テスト作成になれてきている。加えて、一度テストを作成した箇所はテストの追加が容易だ。だんだんとテスト作成速度が上がってきている。
「4回のテストで自動テストはペイする」ということで、「
開発中の動作確認・git commit時の動作確認・git push時の動作確認・デプロイ時の動作確認
で自動テストがつかえるので、実質1サイクルで自動テストはペイする
」となった。なので「バクを直すとき」「新機能を追加するとき」「リファクタリングするとき」に
関連する自動テストを作るとコスパが良い。