Come rilevare gli impatti causati dalle modifiche?

4

Ho spesso eseguito questo problema. Ora sto lavorando a un team di 4 persone e abbiamo creato molte cose. Stiamo ancora finendo qualcosa e apportando modifiche . Il problema è che queste modifiche possono (e molto probabilmente lo faranno) causare un'interruzione dell'interfaccia / business.

Non abbiamo nessun tipo di mappa che ci mostri qualcosa del tipo "Se cambi il DataSource di questa tabella il codice X su quel tavolo dovrà cambiare e sullo schermo X la lista dovrà essere cambiata".

I test unitari possono aiutare a convalidare le regole aziendali, e il business dell'interfaccia? Può anche convalidare il codice associato all'interfaccia? Dovremmo fare affidamento solo sui test unitari? E quanto deve essere profondo per prevenire la rottura del codice a causa di cambiamenti? Dovremmo usare anche un altro approccio?

    
posta BrunoLM 09.12.2011 - 20:50
fonte

1 risposta

6

Sono necessari (preferibilmente automatizzati) anche test di integrazione / di sistema, a parte i test di unità, proprio per verificare che le modifiche come il tuo esempio non interrompano le funzionalità esistenti - apparentemente non correlate - nel tuo sistema nel suo complesso.

I test dell'interfaccia utente sono molto più difficili dei test unitari, ma ci sono strumenti che possono aiutare almeno un po '. Per le pagine Web, ad es. HttpUnit o selenio sono raccomandati da molti. Se comunichi di più sul tipo di sistema, potremmo essere in grado di dare consigli più precisi.

Un percorso intermedio può essere quello di scrivere test del sottosistema, che sono tecnicamente come test unitari più grandi, possibilmente anche con il DB. DbUnit è uno strumento che può aiutarti in questo. I test di sottosistema possono consentire di verificare dipendenze / ipotesi come quella che descrivi, in modo che se si modifica l'origine dati della tabella T, alcuni test per il codice X non andranno a buon fine, costringendo anche l'aggiornamento di quel codice.

Il problema di fondo è che apparentemente non capisci come funziona il tuo sistema. Questo è tristemente comune per le app legacy, ma le tue descrizioni sembrano suggerire che questo sistema è stato costruito dal tuo team fin dall'inizio - nel qual caso c'è un problema fondamentale nel modo in cui lavori. Devi assolutamente imparare a documentare le dipendenze all'interno del tuo sistema e devi anche lavorare per ridurre e controllare queste dipendenze. Fai attenzione a accoppiamento e coesione nella tua architettura, al fine di dividere il tuo sistema in moduli / componenti indipendenti che si influenzano solo l'un l'altro in modi ben definiti.

    
risposta data 09.12.2011 - 21:01
fonte

Leggi altre domande sui tag