テスト駆動開発のポイント
テスト駆動開発
和田卓人の“テスト駆動開発”講座の動画を見た。テスト駆動開発(TDD)がどういったものかを知ることができたと思う。
TDDで重要なのは、TDDで書くテストは開発を楽にするためのテストであるということ。これが一番大切でこの基準に照らしていけば、自分の行っていることがTDDにあっているかどうか分かる。
以下にTDDに沿って開発するときのポイントを書いていきたいと思う。
- TDDでのテストは品質保証ではない。
そのため、カバレッジ等を品質を担保するために用いるのはTDDの本来の目的にはそぐわない。 - テストとして不可欠なものは振る舞いの部分だけなので、仕様変更によって不要になった細かいテストについては削除して良い。
- テストを書くのが大変で、テストを書いていたら効率が落ちることが明らかな箇所はTDDで進める必要はない(GUI等)。
雑感
TDDにおけるテストは設計に近いのではないかと思う。だから、どのあたりまで細かく書くべきかということも個人によって異なる。
TDDで良いと思うところは、コードから始めるのではなく、機能から考え始めること。 それによって、機能を実現するためにコードを書けるということ。TDDにリズムが大切だということはあまり意識していなかったので、新鮮だった。 自分がTDDを実践するときにも意識したい。
動画の初めのほうで、「これから書く機能に対するテストを1つ書く。」とあって1度に1つのテストケースしか書かないのかと疑問に思った。 けれど、それは誤解で1つの機能に対するテストだけを書いていく程度の意味だと思う。