O título diz tudo. Minha empresa está reutilizando um projeto de firmware herdado para um dispositivo de microcontrolador, totalmente escrito em C.
Obviamente, existem partes que estão erradas e precisam ser alteradas. Vindo de um background em C # / TDD, não gosto da ideia de refatorar aleatoriamente itens sem testes para garantir que a funcionalidade permaneça inalterada. Além disso, vi que erros difíceis de encontrar foram introduzidos em muitas ocasiões através de pequenas alterações (o que acredito que seria corrigido se o teste de regressão fosse usado). É preciso tomar muito cuidado para evitar esses erros: é difícil rastrear um monte de globais em todo o código.
Para resumir:
- Como você adiciona testes de unidade ao código fortemente acoplado existente antes da refatoração?
- Quais ferramentas você recomenda? (menos importante, mas ainda é bom saber)
Não estou diretamente envolvido na escrita desse código (minha responsabilidade é um aplicativo que irá interagir com o dispositivo de várias maneiras), mas seria ruim se bons princípios de programação fossem deixados para trás se houvesse uma chance de que eles pudessem ser usados.