2012-04-14 4 views
18

TDDとXPとのこの関係は、私にとってはあまりにも曖昧です。なぜなら、XPのプラクティスの1つはテストを最初に書くことだからです。 TDDでも(私の理解)最初の筆記試験についてです。TDDは極限プログラミングにどのように関係していますか?

TDDの新機能は何ですか?どのようにXPに接続したのですか?

例が分かるでしょう。

+0

ケント・ベック(再)がTDDを発見して(本書を書いた)、XPの本を書いたことを考えると(C3プロジェクトの彼の仕事から?)、彼らは非常に強く関係していると言えるだろう。 Test FirstはTDDのサブセットです。私はあなたが探しているものが一例ではわからない – Gishu

答えて

14

XPは、一緒に使用するように設計された多くのプラクティスで構成されています。それらの1つはTDDです。組織は必ずしもすべてのXPを採用したいとは限りません。現在普及しているスクラムは、計画と管理に重点を置いたXPプラクティスのサブセットを取ります。

8

XPは、テスト駆動型開発(TDD)とリファクタリングを使用して、 最も効果的なデザインを発見するのに役立ちます。

これはExtreme Programming siteからです。 TDDは、XPが採用する手法です。

4

一般的にアジャイルの中心部分、特にXPは、各繰り返しでソフトウェアを段階的に作成する能力(実際には必要性)です。

これは、各反復で新しいコードを追加することによって達成されますが、以前の反復で書き込まれた既存のコードをリファクタリングすることによっても達成されます。このリファクタリングは、強力なテストシステムを備え、新しいコードを追加したとき、または既存のソフトウェアを修正したときにソフトウェア製品全体が壊れないことを確認できる場合にのみ、安全に達成できます。

したがって

、あなたがソフトウェアを開発するとき、あなたは最終的に二つの別々の、しかし強く接続されたシステムを作成:

  • あなたのユーザーにあなたがそれを構築することができます
  • そのテストハーネスを提供するソフトウェア製品をインクリメンタルに

このテストハーネスを作成するには、TDDが最もよく知られており、アジャイルアプローチを使用して段階的にソフトウェアを作成できます。

+0

テストハーネスは、テストハーネス自体が維持されなければならない「製品」であるため、製品が壊れないことを保証していないという意見はありません。テストが*コードの前*に書かれていない限り、更新された製品仕様から派生していない限り、変更点をテストしない可能性があります(ハーネスで更新された機能テストが不足している(機能テストエスケープ) これは、「テストファースト」がより良い解決策である理由です。テストシナリオは、機能要件および/または製品仕様から導き出すことができます。 –

3

エクストリームプログラミングのような慣行からなるソフトウェア開発方法論である -

  • テスト駆動開発
  • 継続的インテグレーション
  • リファクタリング
  • コードをプログラミング

    1. ペア

    レビューTDDはおそらくそれは最も重要なものですが、極端なプログラミングのプラクティスの1つです。

  • 関連する問題