Agile Mind for XP《24》テストファースト開発(Test-First Development)

記事一覧

Smalltalk use: better "Agile Mind for XP"

《24》テストファースト開発 (Test-First Development)

《著》真樹育未・小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第1版♪2001/04/27

■ 概要

この連載では、XP によるオブジェクト指向プログラミングへの扉を開きます。

■ 関連記事

前の記事次の記事

テストファースト開発(Test-First Development)

ペアが選択するタスクは、テストケース(顧客が望む最小価値を)単位にします。目標は、テストケースを満たすコードを作成することです。完了したタスクは、すぐに「リリース」して、他のペアに対する「フィードバック」を提供します。

テストケースは、コードの動作を検証するのではなく、顧客の要求が実現可能であることを実証します(契約に基づくプログラミング)。ここで言う実現可能とは、技術的な問題の克服だけではなく、コスト(費用/時間)の妥当性をも示唆しています。仮に、テストに合格して技術的な問題を解消しても、コストに合わないテストケースは、顧客に 0% の価値しか提供できません。

《付記》導入時には「単体テストを課して」雰囲気に慣れるのが良いでしょう。

《余録》付図に示すように、すべてのペアは最新リリースを抱えた状態から開発するので、どのように些細なコードの断片でも、稼働するシステムと同じ(統合開発)環境で実行/評価されます。開発環境/実行環境が異なる場合には、単体テスト/結合テスト(二重チェック)が必須になります。そのため、Smalltalk と比べて、二度手間のコスト(費用/時間)を加味する必要があります。むしろ深刻なのは、結合テストまで問題が露呈しないことです。とくに、スケジュールの後半に結合テストを予定していると、事態はより深刻になりがちです。テストケースの作成には「多くの時間を割くだけの価値がある」ことを、顧客が納得することに意義があります。□

Last updated♪2009/08/10