3

私が取り組んでいるプロジェクトはほぼ完成しています。プロジェクトが始まる前に TDD を学ぶ機会がありませんでした。プロジェクトがほぼ完成した今、テストをセットアップする意味はありますか? もちろん、毎週多くのアドオンや変更が加えられるため、完全に完成したわけではありません。

ありがとう

4

6 に答える 6

10

最後に単体テストを追加すると便利ですが、TDD ではありません。

TDD はテスト駆動開発です。これは、テストが開発プロセスを導くことを意味します。ロジックが失敗しないことを確認するだけでなく、より良いコードを設計するのにも役立ちます。そのため、最初に作成する必要があります。

于 2012-08-13T14:39:01.217 に答える
1

物事を正しく設定するのに遅すぎることはありません。

于 2012-08-13T14:38:00.487 に答える
1

はい。単体テストを行う利点の 1 つは、関連のないコードの変更が原因で、以前は機能していた機能がいつ機能しなくなったかがわかることです。

私は以前にこれを経験したことがあり、すでに (一見) 完成したプロジェクトに単体テストを追加するとき、それは無意味な演習のように思えますが、そうではありません:

  1. このようにして、多くの小さな欠陥を発見しました。そうでなければ後になって検出されず、おそらく本番環境で発生する可能性のある欠陥
  2. プロジェクトはその時点で終了したように見えましたが、顧客からの変更要求を受けてさらに 6 か月間継続し、単体テストは非常に有用であることが判明しました。
于 2012-08-13T14:38:07.077 に答える
1

このシナリオでは、次の条件のいずれかに一致するコード領域にテストを実装することをお勧めします。

  • それらはプログラムの動作にとって重要です
  • 壊れても誰もすぐに気付かない

後者は特に重要です。何かが壊れてから 5 か月後に、それなしではシステムが何らかの形で足を引きずっていたことを発見することほど悪いことはありません。いくつかのものをより見やすくする必要があり、テストはそれを行うための良い方法です。

テストをあらゆる場所に配置するのが最善であることは明らかですが、それはスケジュールのニーズに反するだけでなく、政治的にも困難になる可能性があります。

于 2012-08-13T14:41:09.710 に答える
0

テストをレガシ コードにレトロフィットするという難しい作業が必要になります。オンラインには多くの記事があり、それを実現するための方法もたくさんあります (GoldenMaster、WCF 系のものには最適です)。ソフトウェアのサポートや機能の追加が期待される場合は、少なくともいくつかのテスト (特に重要な領域) の実装に投資する価値があると思います。

于 2012-08-13T15:01:15.753 に答える
0

テストを受けることは常に価値があります。ここでいくつかのテストを実装すると、コードにいくつかの重大なバグがあることに気付くかもしれません。今のところいくつかの基本的なテストのみを行い、徐々にそれらを構築する場合でも. 次に、新しいビットで TDD を使用します。

また、行った変更によってコードの他のセクションが破損するかどうかを特定するのにも役立ちます。

于 2012-08-13T14:38:25.707 に答える