Test delle unità in modo succinto Nozioni di base sui test

Questo è un estratto dall'eBook Testing Unit Affinity, di Marc Clifton, gentilmente fornito da Syncfusion.

Innanzitutto, si presume che siano presenti altre due parti fondamentali di qualsiasi progetto di sviluppo software:

  • Un sistema di controllo sorgente, come CVS, SVN, Git, Mercurial, ecc.
  • Un sistema di tracciamento dei bug, come Bugzilla, FogBugz, ecc.

Microsoft fornisce l'integrazione di questi componenti con Visual Source Safe, SharePoint e altri prodotti.

Se non hai tutti e due di questi pezzi già pronti, fermati ora. Questi sono componenti vitali di un buon processo di test unitario.


Quindi hai un bug

Se scopri un bug, usando l'applicazione o un test unitario fallito:

  • Segnala il bug nel bug tracker e assegnalo a qualcuno.

Se il bug non è riportato da un test unitario ma è stato scoperto usando il codice (o un altro sviluppatore o un utente):

  • Scrivi il test unitario che verifica come creare il problema (vedi "test negativo" descritto in precedenza).

Con il tuo sistema di controllo sorgente:

  • Prendi in considerazione la possibilità di creare un ramo specifico per questa correzione di bug.

Poi:

  • Scrivi il test unitario che descrive come il metodo dovrebbe comportarsi correttamente.
  • Risolvi il bug e ripeti il ​​test.

Con il tuo sistema di controllo sorgente:

  • Controlla le modifiche, facendo riferimento al numero di bug assegnato dal bug tracker.
  • Se hai aggiunto nuovi test unitari, controlla questi in, facendo nuovamente riferimento al numero del bug.
  • Se hai diramato il codice, decidi quando vuoi unire le modifiche nel ramo principale.

Tracciamento e segnalazione

Lavorando con un sistema di tracciamento dei bug e di controllo delle versioni, chiunque (dal responsabile al programmatore junior) può facilmente rivedere:

  • Le modifiche apportate al codice di base.
  • L'unità prova per creare il problema.
  • I test unitari che risolvono il problema.

Ciò rende la vita molto più semplice per il team di sviluppatori, la gestione e persino l'utente finale se il tuo progetto è impostato in modo tale che l'utente finale sia interessato a questo livello di dettaglio. (Ad esempio, se il software viene sviluppato internamente per un altro reparto, altri potrebbero essere interessati a sapere quando viene risolto un bug.)

L'integrazione con altre tecnologie come SharePoint può facilitare la comunicazione tra membri del team, manager e altri reparti. Inoltre, l'utilizzo di sofisticati strumenti di controllo del codice sorgente come Perforce e strumenti di integrazione continua come CruiseControl.NET integrerà ulteriormente e automatizzerà l'uso del controllo del codice sorgente con test delle unità, test di integrazione, strumenti di reporting e così via..