最近、仕事で自動テストを書いており、色々と悩むことが多かったので『初めての自動テスト』を読んでみた。
平易な文章で書かれており、イラストも多く、とても読みやすい。
プログラミングができないテスターも対象読者であるため、直感的に理解しやすいUIテストから始まり、統合テスト、ユニットテストと進んでいく。
僕が一番悩んでいたのはユニットテストを書く粒度の決め方。
そして、テストとコードの結合度の高さ。
如何せん、テストを書く文化がない会社で育ったため、参考にできるサンプルが全くない。
(githubから適当なサンプルコードを持って来いと言われると何も言い返せないが。。。)
入門書ということもあり、そういった具体的な悩みに対するズバリな答えは見つからなかったが、ヒントになる箇所も見つかった。
- ユニットテストはブラックボックスに近いアプローチで行う
テストとコードの結合度を下げるためにも、ユニットテストの対象はパブリックなモジュールのみとし、プライベートなモジュールはパブリックなモジュール経由でテストを行う。
ユニットテストはモジュールを細分化し、それぞれについて細かくテストを書いていくものだと考えていた。
それではテストとコードの結合度が上がり、保守の工数が跳ね上がる。
テストを書きすぎて保守が大変なら、テストを減らせばいいじゃない、って当たり前の発想なのだが、初めて書く人間からすると、目からうろこであった。
カバレッジは100%でなくてよいとは、こういうことだったのか。
ユニットテストでBDDというのもこの考えならうなずける。
幸いまだあまりテストを書けていないので(TDDなんてとんでもない)、テストのやり方を検討してみようと思う。
まあ、ブラックボックスに近いっていうのが困るんだよな。。。
その辺の匙加減とかができれば一番知りたいわけだが。。。
もっと、関連書籍を読んで、勉強しよう。
初めての自動テスト
0 件のコメント:
コメントを投稿