コース: C#:テスト駆動開発

TDDの概要を学ぶ

このレッスンでは テスト駆動開発の概要について 解説します。 テスト駆動開発は ソフトウェアを開発する手法のひとつで TestDrivenDevelopment の頭文字で TDD と言われることもあります。 最初にテストコードを書いてから そのテストに則したプログラムコードを 記述していきます。 テスト駆動開発で対象となるテストは クラスやモジュールの単体テストです。 テスト駆動開発は アジャイル開発などで推奨されています。 テスト駆動開発では まず最初に失敗するテストを作成します。 このテストはまだ実装はされていないが アプリケーションが備えるべき 機能に関してのテストです。 続いてテストが成功するように プログラムの方を修正します。 テストに失敗する状態を RED テストが成功した状態を GREEN といいます。 そしてプログラムの動作を 変更することなしに コードの整理を行います。 これをリファクタリングといいます。 テスト開発駆動では この RED・GREEN・リファクタリングを 繰り返して行うことで アプリケーションを作成していきます。 リファクタリングは プログラムの動作は変更せずに コードを読みやすくしたり 単純化する作業です。 リファクタリングでは 機能は追加されません。 もし動作を変更してしまった場合は 単体テストがエラーとなり それを教えてくれます。 もちろんすべての変更に関して 単体テストが教えてくれる というわけではありませんが 単体テストが記述されていることで リファクタリングを より安全に行うことができます。 RED・GREEN・リファクタリング という流れを繰り返すと言いましたが RED・GREEN の後に 必ず実行する必要はありません。 ある程度失敗するテストを書き、 テストを成功するように実装する という作業を繰り返したのちに リファクタリングを行います。 テスト駆動開発は アジャイル開発の中の ひとつの手法として広がりました。 スクラムや エクストリーム・プログラミング といったアジャイル開発では テスト駆動開発や ペアプログラミングを推奨しています。 ただしアジャイル開発以外で テスト駆動開発が使えない というわけではありません。 もちろん、向き不向きはありますが ウォーターフォール開発の 一部のモジュールを作成する際に テスト駆動開発を行う というようなことも可能です。 同じくアジャイル開発で 広がった手法のひとつである ペアプログラミングと 相性が良いというのも特徴です。 ペアプログラミングでは ドライバーとナビゲーターという 2つの役割に分かれ コードを記述する人、 ドライバーとプログラミングの作業全体を 見回しながら 次に行うべき作業をナビゲートする ナビゲーターという2つの役割に分かれます。 ナビゲーターがいることで テスト駆動開発のフローを 実行しやすくなります。 このレッスンでは テスト駆動開発の概要について 解説しました。

目次