Galera,
Dei uma procurada no google e aqui no guj e não consegui achar nenhum post referente a isso, então segue a minha dúvida.
Aqui na empresa que eu entrei, temos um sistema que é dividido em campanhas. As campanhas tem mecanismos básicos que são padrões, mas toda vez que o cliente quer uma campanha nova, ele passa um monte de solicitações novas que mexem com esses mecanismos. =)
E do jeito que foi arquitetado aqui, todas as campanhas utilizam as mesmas classes para funcionar. Ou seja, a mesma classe tem que atender campanhas diferentes. Sim eu sei, não é o melhor cenário, mas aqui está assim. Estamos planejando refatorar…mas até lá, precisamos garantir que a arquitetura atenda a todas as campanhas.
E não temos testes para nada disso! (Que bom não?!)
E estamos querendo implementar testes, para garantir que qualquer mudança que nós iremos fazer, não acabe com a funcionalidade de uma campanha antiga.
Mas existem várias classes, e estavámos discutindo aqui como poderíamos implementar esses testes. Ainda não chegamos a um consenso, mas por enquanto tende a ser JUnit + DBUnit. Só que começaríamos de cima pra baixo, ou seja, com testes de sistema primeiro para garantir o correto funcionamento das campanhas. E quando algum desses testes falhassem, descobriríamos o erro e criaríamos o teste unitário do método que deu o erro e assim, aos poucos, teríamos todos os métodos sendo testados.
Só que ainda não estou confortável com essa solução, alguém já passou por algo parecido? Alguém tem idéias melhores de implementar isso?