私が取り組んでいるプロジェクトはほぼ完成しています。プロジェクトが始まる前に TDD を学ぶ機会がありませんでした。プロジェクトがほぼ完成した今、テストをセットアップする意味はありますか? もちろん、毎週多くのアドオンや変更が加えられるため、完全に完成したわけではありません。
ありがとう
最後に単体テストを追加すると便利ですが、TDD ではありません。
TDD はテスト駆動開発です。これは、テストが開発プロセスを導くことを意味します。ロジックが失敗しないことを確認するだけでなく、より良いコードを設計するのにも役立ちます。そのため、最初に作成する必要があります。
物事を正しく設定するのに遅すぎることはありません。
はい。単体テストを行う利点の 1 つは、関連のないコードの変更が原因で、以前は機能していた機能がいつ機能しなくなったかがわかることです。
私は以前にこれを経験したことがあり、すでに (一見) 完成したプロジェクトに単体テストを追加するとき、それは無意味な演習のように思えますが、そうではありません:
このシナリオでは、次の条件のいずれかに一致するコード領域にテストを実装することをお勧めします。
後者は特に重要です。何かが壊れてから 5 か月後に、それなしではシステムが何らかの形で足を引きずっていたことを発見することほど悪いことはありません。いくつかのものをより見やすくする必要があり、テストはそれを行うための良い方法です。
テストをあらゆる場所に配置するのが最善であることは明らかですが、それはスケジュールのニーズに反するだけでなく、政治的にも困難になる可能性があります。
テストをレガシ コードにレトロフィットするという難しい作業が必要になります。オンラインには多くの記事があり、それを実現するための方法もたくさんあります (GoldenMaster、WCF 系のものには最適です)。ソフトウェアのサポートや機能の追加が期待される場合は、少なくともいくつかのテスト (特に重要な領域) の実装に投資する価値があると思います。
テストを受けることは常に価値があります。ここでいくつかのテストを実装すると、コードにいくつかの重大なバグがあることに気付くかもしれません。今のところいくつかの基本的なテストのみを行い、徐々にそれらを構築する場合でも. 次に、新しいビットで TDD を使用します。
また、行った変更によってコードの他のセクションが破損するかどうかを特定するのにも役立ちます。