2010-01-17 9 views
8

Voglio imparare come creare un software "robusto" progettato per testare se stesso. In altre parole, come faccio a implementare test automatici nel mio software (usando java o groovy o C++).Dove e come posso imparare le tecniche di test del software?

Quindi voglio sapere dove imparare questo (libri o siti Web) e quali strumenti e librerie mi serviranno per questo?

+1

Buona domanda, ma penso che l'argomento è un po 'di. Dovrebbe essere "Dove e come posso imparare le tecniche di test automatico del software?" –

risposta

5
  • generale TDD per principianti: Kent Beck: Test Driven Development by Example
  • generale Unit Testing Riferimento: Gerard Meszaros: Patterns xUnit prova: Refactoring Codice di prova
  • TDD per progetti greenfield: Steve Freeman, Nat Pryce : Growing Software Object-Oriented, guidata da test
  • TDD per i progetti brownfield: Piume Micheal: lavorando in modo efficace con il codice legacy
  • Q & a per problemi di prova: http://www.stackoverflow.com
  • Software list (scorrere verso il basso)
+1

+1 - Il volume di Beck è molto utile. –

0

JUnit, il cablaggio di prova automatizzato per Java, è lo strumento che ha davvero dato il via. The JUnit site è un ottimo punto di partenza. Raccoglie molti articoli e link a strumenti di test.

1

Oltre al già citato sviluppo test-driven (TDD) tecnica, è possibile dare uno sguardo al design by contract, un'altra tecnica in cui, in sostanza, uno aggiungere asserzioni nel codice di produzione per validare al runtime che le clausole del contratto (ingressi, uscite e invarianti) tra i componenti siano rispettate. Queste asserzioni possono essere rimosse o mantenute quando il software viene consegnato.

Vorrei aggiungere la mia risposta per chiarire che TDD non porta a "software progettato per testare se stesso", ma alcuni software, - l'unit test suite, cresciuta insieme al codice di produzione, che i test un altro pezzo di software.

0

Ho trovato The Art of Unit Testing by Roy Osherove molto utile per comprendere le basi dei test di unità, test di interezza, TDD e così via. È un po 'su misura per i linguaggi .Net, ma fornisce anche ottime informazioni sulle idee alla base dei test automatizzati.