2012-04-14 6 views
18

Questa relazione tra TDD e XP è ancora ambigua per me, perché una delle pratiche di XP è di scrivere prima il test. TDD anche (La mia comprensione) è solo sul test di scrittura prima.In che modo il TDD è correlato alla programmazione estrema?

Allora, qual è il nuovo su TDD? e in che modo è collegato a XP?

Un esempio sarà apprezzato.

+0

Considerando che Kent Beck (ri) ha scoperto TDD (e ha scritto il libro) e ha anche scritto il libro su XP (fuori dal suo lavoro sul progetto C3?) - Direi che sono strettamente correlati. Test First è un sottoinsieme di TDD. Non sono sicuro di ciò che stai cercando con un esempio – Gishu

risposta

14

XP è costituito da un numero di pratiche, progettato per essere utilizzato insieme. Uno di questi è TDD. Le organizzazioni non vogliono necessariamente adottare tutti gli XP. La mischia attualmente popolare prende un sottoinsieme delle pratiche XP incentrate sulla pianificazione e la gestione.

8

XP utilizza lo sviluppo basato su test (TDD) e il refactoring per aiutare a scoprire il progetto più efficace.

Questo è dallo Extreme Programming site. TDD è una pratica che XP adotta.

4

Una parte centrale dell'agile in generale, e di XP in particolare, è l'abilità (e in realtà, la necessità) di creare il software in modo incrementale ad ogni iterazione.

Questo si ottiene aggiungendo un nuovo codice ad ogni iterazione, ma anche rifattorizzando il codice esistente scritto durante iterazioni precedenti. Questo refactoring può essere raggiunto in sicurezza solo se si dispone di un sistema di test potente, in grado di verificare che l'intero prodotto software non si rompa quando si aggiunge un nuovo codice o quando si modificano quelli esistenti.

Quindi, quando si sviluppa il software, è finalmente creare due sistemi separati, ma fortemente connesse:

  • il prodotto software che si desidera fornire agli utenti
  • suo coordinatore di prova che ti aiuta a costruire lo incrementalmente

TDD è la pratica più nota per creare questo cablaggio di test, consentendo di creare in modo incrementale il software utilizzando un approccio agile.

+0

Non sono d'accordo sul fatto che avere un cablaggio di prova assicura che il prodotto non si rompa poiché il cablaggio di test è, di per sé, un "prodotto" che deve essere mantenuto.A meno che i test non siano scritti * prima * del codice e derivino dalle specifiche aggiornate del prodotto, esiste il potenziale per non testare le modifiche (mancano test funzionali aggiornati nell'imbracatura che poi (casualmente) manca la funzione che non era implementato (escape test funzionale) Ecco perché "Test First" è la soluzione migliore: gli scenari di test possono essere derivati ​​dai requisiti funzionali e/o dalle specifiche del prodotto. –

3

Extreme Programming è una metodologia di sviluppo software costituito da pratiche come -

  1. Coppia Programmazione
  2. Test Driven Development
  3. Continuous Integration
  4. refactoring
  5. Codice recensioni

TDD è una delle pratiche nella programmazione estrema, anche se discutibilmente è la più importante.