質問: tddと単体テスト 私の会社はコードを単体テストするのがかなり新しいです。私はtddと単体テストについてしばらく読んでおり、それらの価値を確信しています。私は、tddがプログラミング方法について学習し、考え方を変える努力の価値があることをチームに納得させようとしましたが、それは苦労です。これは私の質問に私をもたらします。tddコミュニティにはテストの作成とコードの作成に非常に熱心な人がたくさんいます(そして私は彼らと一緒にいます)が、tddに苦労しているチームにとって、妥協はまだ追加の利点をもたらしますか?コードが記述されたら(おそらくコードをチェックインするための要件として)、チームにユニットテストを記述させることに成功する可能性があり、私の前提は、これらのユニットテストの記述にはまだ価値があるということです。苦労しているチームをtddに取り込む最善の方法は何ですか?それに失敗したとしても、コードが書かれた後でも、単体テストを書く価値はありますか?[〜#〜]編集[〜#〜]私がこれから取り除いたのは、コーディングプロセスのどこかでユニットテストを開始することが重要であることです。チームのコンセプトを取り上げた人は、最初にtddとテストに向けて動き始めます。皆さまのご意見ありがとうございます。フォローアップ私たちは最近、新しい小さなプロジェクトを開始し、チームのごく一部がtddを使用しました。残りはコードの後にユニットテストを記述しました。プロジェクトのコーディング部分をまとめた後、コードの後のユニットテストの記述は、tddコーダーが既に実行されており、より堅実なコードを使用していたことに驚いていました。それは懐疑論者に勝つための良い方法でした。私達はまだ先に多くの成長する苦痛を持っていますが、意志の戦いは終わったようです。アドバイスをくれた皆さん、ありがとう!
回答: コードが記述されたら(おそらくコードをチェックインするための要件として)、チームにユニットテストを記述させることに成功する可能性があり、私の前提は、これらのユニットテストの記述にはまだ価値があるということです。 (テストがいつ作成されたかに関係なく)ユニットテストされたコードに価値があるという事実に疑いはなく、「コードはユニットテストされました」を「完了の定義」に含めます。テストする限り、人々はtddを使用してもしなくてもかまいません。バージョン管理に関しては、「開発ブランチ」をユニットテスト済みポリシーで使用します(コードをコンパイルしてビルドします)。すべての単体テストに合格します)。機能が完了すると、開発ブランチからトランクに公開されます。つまり、トランクブランチは「完了ブランチ」(トランクにジャンクはありません!)であり、shippableポリシー(いつでもリリースできます)。より厳格で、「単体テスト」よりも多くのものが含まれています。