まあこの流れぐらいは理解しておきましょうね。

http://gihyo.jp/dev/serial/01/tdd/0002

テスト駆動開発は,小さなステップを繰り返してプログラムの設計と開発を行っていく
ソフトウェア開発手法です。テスト駆動開発は次の3ステップから構成されています。

テスト駆動開発の3ステップ
ステップ1:これから書く機能に対するテストを1つ書き,テストが失敗することを確認する(レッド)
ステップ2:ステップ1のテストを通す最低限のコードを実装する(グリーン)
ステップ3:リファクタリングを行う(リファクタリング)

ステップ1:これから書く機能に対するテストを1つ書き,テストが失敗することを確認する

テスト駆動開発では,まず1ステップ目として,これから書く機能のテストを1つ書きます。
「テストを書く」と簡単に言っていますが,ここでの「テスト」とは,開発者が自分で書く,
プログラムの形で書かれたテスト(テストコード)のことです。

ステップ2では,ステップ1で書いたテストを通す最低限の実装を書きます。
機能が動作するところまで持っていくのがこのステップ2です。

ステップ3:リファクタリングを行う

ステップ2では,テストを通すために最もシンプルなコードを書くことを選択しました。
すると,ステップ2で最低限の実装を書いた時点では,コードに無駄があったり愚直過ぎる
コードだったりと,いくつか直したい点があると思います。たとえばコードの重複です。