Un programmatore Junior dovrebbe aggiungere test TDD al progetto mvc

1

Sono un programmatore junior vicino al mio periodo di prova di 6 mesi, dopo la mia carriera iniziale che ha cambiato l'incarico di 3 mesi in cui ho aggiunto i test TDD e mi chiedevo se avrei dovuto aggiungere test al mio attuale lavoro. Il programmatore anziano dice che posso farlo se voglio ma non lo ha, ma vuole che io documenti il sistema mentre lo sto imparando.

Il sistema è un grande servizio Web MVC di 90 pagine che utilizza un numero di tecnologie giovani e meno recenti, ad esempio il progetto è stato migrato su MVC 5, utilizza un generatore DAL scritto in VB.net e ha il codice nell'unità del modello di progettazione del lavoro tra gli altri È stato lavorato da molti programmatori per un certo numero di anni e fornendo il mio codice funziona che posso fare quello che voglio.

La mia domanda è davvero, dovrei aggiungere TDD Sì su No.

    
posta Andrew Day 03.02.2016 - 15:27
fonte

2 risposte

3

TDD non riguarda il debug, ma sta dimostrando le funzioni del codice come previsto. A rigor di termini, i test avrebbero dovuto essere scritti prima del codice, ma tu sei dove sei.

I test unitari avvantaggiano gli sviluppatori futuri dal momento che i test falliti dovrebbero sollevare una bandiera rossa che hanno inavvertitamente rotto qualcosa e dovrebbero esserne coinvolti.

Questo non vuol dire che non ci sia alcun valore nel retro-adattarsi ai test - certamente c'è, ma potrebbe essere meno diretto in quanto ci si avventurerà in codice potenzialmente oscuro e raramente toccato.

I test unitari automatizzati e TDD in particolare sono un completo cambiamento di rotta rispetto alle pratiche precedenti, quindi incontrerai senza dubbio qualche resistenza. Il fatto che il tuo programmatore senior non veda il loro valore immediato parla da solo.

Il punto da asporto è capire che aggiungerai valore al sistema, quindi non scoraggiarti se nessun altro prende il testimone o sono parcheggiati vari test quando falliscono, ecc.

    
risposta data 03.02.2016 - 15:50
fonte
3

L'aggiunta di test unitari a un progetto in retrospettiva è solitamente più dolorosa di quanto valga. C'è un motivo per cui il flusso di lavoro red / green / refactor richiede di scrivere prima i test e il codice che li passa in seguito.

Per essere correttamente testabile, l'intera architettura del codice deve essere progettata tenendo conto dei test unitari. È necessario seguire schemi come l'iniezione di dipendenza, la separazione delle preoccupazioni e l'accoppiamento lento. Quando tali modelli non sono stati seguiti approfonditamente durante lo sviluppo (e considerando che si sta parlando di un vecchio progetto legacy sviluppato da molte persone diverse con metodologie differenti che probabilmente non erano) il codice richiederà spesso refactoring su larga scala prima che siano possibili test unitari significativi . Questi refactoring richiederebbero molto tempo e comportano un alto rischio di introduzione di nuovi bug.

Tuttavia, se vuoi davvero applicare le tue conoscenze TDD, puoi provare ad applicarlo a tutte le nuove funzionalità implementate.

    
risposta data 03.02.2016 - 15:57
fonte

Leggi altre domande sui tag