多くの人が、コードを書き始める前に、コードのテストを書くことについて話します。この方法は、一般にテスト駆動開発または略してTDDとして知られています。この方法でソフトウェアを作成することでどのようなメリットがありますか?この練習を始めるにはどうすればよいですか?
4 に答える
多くの利点があります:
- コードが機能しているかどうかについてすぐにフィードバックが得られるため、バグをすばやく見つけることができます
- テストが赤から緑に変わるのを見ると、回帰テストとコードの両方が機能していることがわかります。
- 既存のコードをリファクタリングする自信が得られます。つまり、コードが壊れることを心配せずにコードをクリーンアップできます。
- 最後に、自動ビルド中に実行できる一連の回帰テストがあり、コードベースが安定していることをより確信できます。
始めるための最良の方法は、ただ始めることです。テスト駆動開発についてのケントベックによる素晴らしい本があります。新しいコードから始めて、古いコードについて心配する必要はありません...コードをリファクタリングする必要があると感じたときはいつでも、既存の機能のテストを作成し、それをリファクタリングして、テストがグリーンのままであることを確認してください。また、この素晴らしい記事を読んでください。
メリットの部分は最近取り上げられました。どこから始めればよいのかというと、未知数があまり多くないためリスクが低い小規模な企業システムです。テストフレームワーク(NUnitなど)をまだ知らない場合は、それを学ぶことから始めてください。それ以外の場合は、最初のテストを書くことから始めます:)
利点
- コードをコンパートメント化する方法を理解する
- コードで何をしたいのかを正確に把握する
- あなたはそれがどのように動作するべきかを知っていて、リファクタリングによって何かが壊れた場合
- コードが何をすべきかを常に認識していることを確認する習慣を身につけます
入門
早くやれよ。やりたいことのテストケースを書き、テストに合格するコードを書きます。テストに合格した場合は、コードが常に失敗するケースの記述に進むことができます (たとえば、2 + 2 は 5 に等しくないはずです)。
すべてのテストに合格したら、実際のビジネス ロジックを記述して、やりたいことを何でも実行します。
ゼロから始める場合は、使いやすい優れたテスト スイートを見つけてください。私は PHP が好きなので、PHPUnit や SimpleTest はうまく機能します。ほとんどすべての一般的な言語には、テストの構築と自動化に役立つ xUnit テスト スイートが用意されています。
私の意見では、唯一の最大のことは、コードが想定どおりに機能するかどうかを明確に確認できることです。これは当たり前のように思えるかもしれませんが、私が過去に知ったように、元の目標を誤って実行するのは非常に簡単です:p