Sfondo Lavoro in un team di 7 sviluppatori e 2 tester che lavorano su un sistema logistico. Utilizziamo Delphi 2007 e lo sviluppo modeldriven con Bold for Delphi come framework. Il sistema è in produzione da circa 7 anni e ha circa 1,7 milioni di linee di codice. Rilasciamo in produzione dopo 4-5 settimane e dopo quasi tutte le versioni dobbiamo fare alcune patch per bug che non abbiamo trovato. Questo è ovviamente irritante per noi e per i clienti.Aumentare la testabilità, quando si codifica con Bold per il framework Delphi
Test corrente La soluzione è ovviamente più test automatico. Attualmente abbiamo test manuali. Un TestDbgenerator che inizia con un database vuoto e aggiunge dati dai metodi modellati. Abbiamo anche Testcomplete che esegue alcuni script di base per testare la GUI. La mancanza di tempo ci impedisce di aggiungere altri test, ma gli script sono anche sensibili ai cambiamenti nell'applicazione. Per alcuni anni ho davvero provato i test unitari con DUnit, ma ho rinunciato dopo alcuni giorni. Le unità hanno connessioni troppo forti.
precondizioni test delle unità credo di sapere alcune precondizioni per il test delle unità:
- Scrivi piccoli metodi che fanno una cosa, ma farlo bene.
- Non ripeterti.
- Prima scrivere il test che non riesce, quindi scrivere il codice in modo che il test passi.
- Le connessioni tra le unità devono essere libere. Non dovrebbero sapere molto l'uno dell'altro.
- Utilizzare l'iniezione dipendente.
Framework da utilizzare possiamo effettuare l'aggiornamento a Delphi XE2, soprattutto a causa del compilatore a 64 bit. Ho guardato un po 'lo Spring ma questo richiede un aggiornamento da D2007 e questo non succederà ora. Forse l'anno prossimo.
La domanda La maggior parte del codice non viene ancora testata automaticamente. Quindi qual è il percorso migliore per aumentare la testabilità del vecchio codice? O forse è meglio iniziare a scrivere test solo per nuovi metodi? Non sono sicuro di quale sia il modo migliore per aumentare i test automatici e i commenti su di esso sono i benvenuti. Possiamo usare D2007 + DUnit ora e poi passare facilmente a Delphi XE2 + Spring in seguito?
EDIT: sulla metodologia corrente di prova per il test manuale è solo "libra su di esso e cercare di romperlo", come lo chiamano Chris.
Votazione per la migrazione ai programmatori. È una buona domanda e più adatto lì credo. –
+1 Grazie per aver chiesto questa domanda. – jrodenhi