はじめに
皆さんはテストを書いていますでしょうか?
この記事では私が経験した、「仕様書なしで運用が始まったシステムに後からテストを書く」について、発見したことをかんたんにご紹介します。
コード通りのテストケースしか分からない
コードを読み解いてテストを書くわけですが、条件通りのケースしか書けません。
素直に全パターン書くのは可能ですが、テスト数が多いと全部通すのに時間がかかります。
可能であれば必要十分なケース数で済ませたいところですが、数を削る判断基準がありません...
例えば...
-
他の箇所でテストしているから不要
-
仕様上ありえないから不要
使っていないメソッドが発見される
テスト対象のメソッドの呼び出し元を辿っていき、処理の流れを把握するのですが、検索で引っかからないということもしばしば。
エラーハンドリングされていない
処理の途中で空配列になった際を考慮できていなかったり。
同じ名前で似た処理のメソッドが存在する
8割くらい同じで、2割は違う内容のメソッドがあったり。
複数人で開発していて、それぞれ似たような処理を実装した、というところでしょうか。
おわりに
色々な発見があって面白かったです。
他の人が書いたコードをもとにテストを書くので、「テストを書きやすいコード」の基準がだんだんと分かってきました。自分が書く際には気をつけようと思います。