2009-05-16 8 views
5

Il mio posto di lavoro è composto da molti codificatori per cowboy. Molti di loro sono junior. Che, casualmente, contribuisce a molti problemi di qualità del codice.Introduzione allo sviluppo basato su test in PHP

Sto cercando suggerimenti su come smussare al meglio il mio team nell'uso del TDD (possiamo iniziare con i test di unità e passare ai test di regressione e in seguito a test più automatizzati).

In definitiva, voglio che impariamo più rapidamente dai nostri errori, produciamo codice migliore e generiamo sviluppatori migliori.

Spero ci siano alcuni suggerimenti pratici su come introdurre TDD in una squadra. In particolare, quali sono gli strumenti migliori da scegliere nello stack LAMP (php).

Ci scusiamo se questa domanda è troppo aperta.

risposta

3

Dopo aver eseguito questa procedura quattro volte, ho scoperto che qualsiasi introduzione di TDD fallirà senza un certo livello di applicazione. I programmatori non vogliono cambiare stile e non scrivono il loro primo test di unità e improvvisamente vedono la luce.

È possibile applicare a livello di gestione, ma questo richiede molto tempo a tutti i soggetti coinvolti. Ad ogni modo, all'inizio è necessario un livello minimo, ma alla fine è necessaria l'applicazione automatica.La risposta a questo è introdurre l'integrazione continua.

Ho trovato che un server CI è la chiave di volta definitiva per qualsiasi ambiente TDD. A meno che gli sviluppatori non sappiano che succederà qualcosa di brutto se non scrivono i test, avrai sempre dei cowboys che sentono che è sotto di loro.

0

Per quanto riguarda la domanda del team e le idee universali sullo sviluppo e sui test del software, suggerirei il sito web ei libri di Joel Spolski: http://joelonsoftware.com/ Ho avuto molte informazioni da lui.

0

SimpleTest - eccellente documentazione e le spiegazioni di test per PHP

0

Un altro modo per iniziare TDD è cercare di utilizzare framework PHP. Senza framework, è difficile implementare efficacemente il test unitario.

+0

Non ti seguo? – troelskn

2

scrittura dei test Marchio facile ei risultati visibile.

  • Utilizzare un TestFramework con una buona documentazione. come SimpleTest
  • Se il test dipende dal contenuto del database, creare un database di riferimento che verrà eliminato e creato all'inizio di uno script.
  • Crea uno script che esegue tutti i test e mostra i risultati su un monitor autonomo o qualcosa che renderà il test visibile/facilmente accessibile. (L'esecuzione di un prompt dei comandi non è un'opzione)

Personalmente non scrivo per ogni pezzo di codice nell'applicazione.
Concentrarsi sugli oggetti dominio nell'applicazione. Nel mio caso si tratta di "calcolo dei prezzi" e "variazioni d'inventario"

Ricordare loro che probabilmente stanno già scrivendo dei test, ma che cancellano il loro lavoro subito dopo la creazione. Esempio: durante lo sviluppo di una funzione avrai una pagina/testscript con un echo o var_dump() il risultato. Dopo una convalida manuale del risultato, modificherete i parametri della funzione e verificate di nuovo.

Con qualche sforzo in più questi test potrebbero essere automatizzati in un UnitTest. E a quale programmatore non piace automatizzare le cose?

+0

grazie NebyGemini – chadl