Le titre dit tout. Mon entreprise réutilise un projet de micrologiciel hérité pour un dispositif de microcontrôleur, écrit complètement en clair C.
Il y a des parties qui sont manifestement erronées et doivent être modifiées, et venant d'un arrière-plan C # / TDD, je n'aime pas l'idée de refactoriser au hasard des trucs sans tests pour nous assurer que la fonctionnalité reste inchangée. De plus, j'ai vu que des bogues difficiles à trouver ont été introduits à de nombreuses reprises par le biais de moindres changements (ce qui, je pense, serait corrigé si des tests de régression étaient utilisés). Beaucoup de précautions doivent être prises pour éviter ces erreurs: il est difficile de suivre un tas de globaux autour du code.
Résumer:
- Comment ajouter des tests unitaires au code étroitement couplé existant avant de le refactoriser?
- Quels outils recommandez-vous? (moins important, mais toujours agréable à savoir)
Je ne suis pas directement impliqué dans l'écriture de ce code (ma responsabilité est une application qui interagira avec l'appareil de diverses manières), mais ce serait mauvais si de bons principes de programmation étaient laissés pour compte s'il y avait une chance qu'ils puissent être utilisés.