Quali sono alcuni suggerimenti per scrivere un numero elevato di test unitari? [chiuso]

0

Recentemente mi è stato assegnato il compito di testare alcuni oggetti COM dell'applicazione desktop su cui lavoro. Ciò significa in pratica scrivere un numero elevato di test unitari (> 100) per testare metodi e oggetti diversi ma correlati. Mentre gli unit test sono abbastanza semplici (di solito uno o due Assert () - controlli di tipo per test), sto faticando a capire il modo migliore per scrivere questi test in modo coerente e organizzato. Quello che ho trovato è che la codifica di copia e incolla dovrebbe essere evitata. Crea più problemi di quanti ne valga la pena, ed è anche peggio del codice copia e incolla nel codice di produzione perché il codice di test deve essere aggiornato e modificato più frequentemente.

Sono propenso a provare un approccio OO usando, ma ancora una volta, il semplice numero rende anche questo approccio scoraggiante dal punto di vista organizzativo a causa della preoccupazione per la manutenzione. Inoltre, non aiuta che i test siano attualmente scritti in C ++, il che aggiunge una certa complessità ai problemi di gestione della memoria.

Qualche idea o suggerimento?

    
posta joshin4colours 21.08.2012 - 18:25
fonte

4 risposte

6

Any thoughts or suggestions?

Concentrati su un test alla volta. Essere coerente da un test all'altro. Rivaluta il tuo approccio dopo aver effettuato circa 10 test alla cintura.

Realisticamente, 100 test unitari a ~ 6-10 righe di codice un pezzo sono come la pena di una settimana di lavoro. Lavoro fastidioso e noioso ... ma non molto. Metti giù la testa e non pensare troppo alle cose.

    
risposta data 21.08.2012 - 19:02
fonte
5

Mi piacerebbe offrire l'opinione opposta di Anton.

I test unitari sono codice. Il fatto che non siano spediti al cliente non toglie in alcun modo la loro importanza al codice base. Sono un investimento del vostro tempo di programmazione che si ripaga nella maggiore velocità e precisione di ulteriori modifiche della base di codice; quindi meritano un buon principio di progettazione che si applichi al tuo codice commerciale.

Fornisci alcuni suggerimenti su come evitare la duplicazione nei singoli test; Io dico di andare. La migliore comprensione di una suite di test più ampia compensa lo sforzo della deduplicazione. La complessità del codice, ciclomatico o altro, è ovviamente una pressione che dovresti evitare per quanto ragionevole, ma non lasciare mai che la paura dell'astrazione ti impedisca di scrivere i tuoi test professionalmente come la logica della tua applicazione.

    
risposta data 21.08.2012 - 18:58
fonte
4

Non dimenticare che Cyclomatic Complexity dei tuoi test deve essere il più basso (circa 2). Questo ti aiuterà a evitare di fare bug in unit test. I test devono essere facili come si può fare. Quindi, non provare a realizzare il miglior design e utilizzare tutti i modelli di design che conosci.

    
risposta data 21.08.2012 - 18:46
fonte
0

Estrai tutto il codice di installazione nelle classi "helper". Questo aiuterà a evitare le situazioni di copia / incolla (vedo il codice di installazione copia / incolla degli sviluppatori per il test molto).

    
risposta data 25.10.2012 - 18:29
fonte

Leggi altre domande sui tag