unit testをちゃんとした話
テストコードをちゃんとした話中村剛09/01 2015
View Slide
アジェンダ①なぜテストコードが書けていなかったのか反省と分析②現状を踏まえどうやって変えていったか③まとめ
①:忙しさという名の響きに負けた全くのゼロからのスタートアップでやるべき事が溢れ、後回しになり結局、十分な時間が取れなかったフレームワークの比較見当、コーディング規約、テスト方針、すべてが後手になり統一意識が取れず、各々が考える実装でくみ上げられていった。
・同じようなメソッドが無駄に増える・デグレが多発・単純な凡ミスが増加・ブラウザので手動テスト頼み、コストがドンドン膨らむこの時テストコードの存在すらないので当然カバレッジ0%よくあるダメなパターン
②:決めを作ってとにかく頑張るフレームワークの特性に合わせてある程度のコーディング規約を決めた。頑張ってリファクタした。Jenkinsでユニットテストを定期的に実施するようにしたJenkinsでテストの結果、カバレッジを視覚化したGithubに移行してレビュー行程を導入した
②:頑張った結果新たな問題もビジネスサイドからすると、エンジニアは頑張ってコード書いてるけど、別に新機能や改善されてる機能のリリースが少ないという不満抱えている問題、先送りすればするほど傷が深くなるので今その問題に対応してる為、新機能開発が遅れている旨を説明といってもリファクタ+テストコードの実装だけでずっと人員を避けないので、新規機能も実装+ボーイスカウトポリシー(通りかかった道のゴミを拾うポリシー)で実装を進めた
大きな声で言えないけど軽く無視してやり続けた。(時として必要)100%のカバレッジは果てしなく遠いゴールなので70〜80%した。Webサービスとして適正値と判断
③:まとめ・いくら時間が無くとも頑張りどころはあって、ココで踏ん張りきれずに妥協すると向こう2年をこの問題に悩まされると考えて頑張る・色々考えて決めたら、途中問題が出てきても頑張りきるただし、結果間違った決めだった可能性もあるので時に真摯に振返る・自動化できる部分やツールで軽減できる事、定量的に見える化は積極的に活用する