2009-06-19 13 views
7

Ho appena letto l'ottimo libro di Michael C. Feathers Working Effectively with Legacy Code, la bibbia di introdurre test sul codice legacy. In questo libro egli descrive qualcosa chiamato Edit-triggered test:Il test successivo è attivato con modifica?

Se non lo è dal momento in cui questo libro è uscito, ho il sospetto che qualcuno sarà presto sviluppare un IDE che consente di specificare un serie di test che verranno eseguiti ad ogni battitura. Sarebbe un modo incredibile per chiudere il ciclo di feedback.

Deve succedere. Sembra inevitabile. Ci sono già IDE che controllano la sintassi su ogni tasto premuto e cambiano il colore del codice quando ci sono degli errori. Il test attivato tramite modifica è il passaggio successivo.

Quando ho letto questo non avevo sentito parlare di alcun IDE o strumenti che supportano questo. Tuttavia, ho appena trovato un progetto chiamato Infinitest che supporta questo per Java.

Le mie domande sono:

  1. Ci sono altri strumenti/framework che supporta questo (si spera anche per Visual Studio)?
  2. Quali sono le tue esperienze con questo tipo di test (efficiente, rallenta l'IDE, ecc.)?
  3. È questo il prossimo passo di TDD?

Aggiornamenti:

+0

interessante concept! Penso che ci vorrà un po 'prima che questo sia affidabile e performante. –

risposta

0

Bene, in sostanza è lo sviluppo basato su Test, con test eseguiti continuamente, durante la digitazione? Quindi non direi che il "test innescato da modifica" è una nuova tecnica di sviluppo, ma semplicemente una caratteristica del tuo IDE.

Per quanto riguarda la velocità di questa funzione, immagino che dipenda davvero dalla complessità del progetto, dal compilatore e dalla lingua che si sta utilizzando e dalle modifiche che si stanno apportando. Se stai modificando alcune librerie di base che sono usate nel progetto, il compilatore dovrà ricompilare gran parte del tuo programma per poter eseguire test in altre librerie usando il tuo codice.

+0

D'accordo sul fatto che non si tratta di una nuova tecnica di sviluppo, si tratta piuttosto di accorciare il feedback dei test. – BengtBe

1

C'è il Autotest per rubino. Esegue continuamente test unitari durante la modifica dei file, utilizzando alcune semplici convenzioni per mappare i file sorgente per testare i file. C'è anche un plug-in che ho visto che colora il codice di test rosso o verde in emacs in modo interattivo. Penso che questa idea di feedback visivo immediato di passare/fallire nell'editor di codice stesso sia grandiosa.

+0

+1 per trovare un altro strumento che supporti questo! – BengtBe

1

Sono passati alcuni anni dalla domanda originale e ci sono alcuni strumenti disponibili per .NET (presumo che questo spazio sia cresciuto anche per altre lingue).

Esiste una versione .NET di Autotest (mentioned previously in this thread) denominata AutoTest.NET, che è stata biforcuta e aggiornata in uno strumento più completo denominato ContinuousTests.L'ho provato circa un anno fa, e sembrava avere un sacco di potenziale a quel punto, ma sfortunatamente sembra che abbiano deciso di interrompere lo sviluppo. Sul lato positivo, tuttavia, è ora free!

Non ho usato NCrunch, ma è un prodotto commerciale che sembra essere attivamente sviluppato.

ci sono script-based tools che potrebbe anche andare bene il disegno di legge per quello che stai chiedendo

Vedi anche questa domanda: How do I do continuous testing in .NET?

Problemi correlati