Il mio lavoro attuale è principalmente quello di scrivere codice di test GUI per varie applicazioni su cui lavoriamo. Tuttavia, trovo che tendo a copiare e incollare molto codice all'interno dei test. La ragione di ciò è che le aree che sto testando tendono ad essere abbastanza simili da richiedere ripetizioni ma non abbastanza simili da incapsulare il codice in metodi o oggetti. Trovo che quando provo ad usare classi o metodi in modo più esteso, i test diventano più ingombranti da mantenere e talvolta addirittura difficili da scrivere in primo luogo.
Invece, di solito copio un grosso pezzo di codice di test da una sezione e lo incollo in un'altra, e apporto le modifiche minori di cui ho bisogno. Non uso modi più strutturati di codifica, come l'uso di più principi o funzioni OO.
Gli altri programmatori si sentono così quando scrivono il codice di prova? Ovviamente voglio seguire i principi DRY e YAGNI, ma trovo che il codice di test (codice di test automatizzato per i test GUI) può rendere questi principi difficili da seguire. O ho solo bisogno di più pratiche di codifica e di un migliore sistema generale di fare le cose?
EDIT: lo strumento che sto usando è SilkTest, che è in un linguaggio proprietario chiamato 4Test. Inoltre, questi test sono principalmente per le applicazioni desktop Windows, ma ho anche testato le app Web utilizzando questa configurazione.