Il titolo dice tutto. La mia azienda sta riutilizzando un progetto firmware legacy per un dispositivo microcontrollore, scritto completamente in semplice C.
Ci sono parti che sono ovviamente sbagliate e devono essere cambiate, e che provengono da un background C # / TDD Non mi piace l'idea di eseguire il refactoring casuale di elementi senza test per assicurarci che la funzionalità rimanga invariata. Inoltre, ho visto che i bug difficili da trovare sono stati introdotti in molte occasioni attraverso i minimi cambiamenti (il che è qualcosa che credo sarebbe stato risolto se fosse stato utilizzato il test di regressione). Bisogna fare molta attenzione per evitare questi errori: è difficile rintracciare un sacco di globali attorno al codice.
Riassumere:
- Come si aggiungono i test unitari al codice strettamente accoppiato esistente prima del refactoring?
- Quali strumenti mi consigliate? (meno importante, ma comunque bello da sapere)
Non sono direttamente coinvolto nella stesura di questo codice (la mia responsabilità è un'app che interagirà con il dispositivo in vari modi), ma sarebbe male se si lasciassero buoni principi di programmazione se ci fosse la possibilità che possano essere usati.