Gente tenho uma dúvida sobre QA e TDD. Estou em um estágio de QA e recebi acesso da empresa a uma plataforma digital para estudar sobre TDD. Minha dúvida é como aplicar o TDD em ambientes já entregues. Por exemplo, em sistemas que já estão estruturado, entregues e evoluindo? Pelo que vi do curso o TDD está ligado a desenvolver as funções e criar os testes ao mesmo tempo, essa visão que obtive está errada? Então seria desenvolver o produto desde o início e já abordando os testes. Ou tem alguma forma de criar os testes mesmo com o produto já robusto em código.
Todo sistema continua evoluindo, seja na forma de novas funcionalidades ou correções de bugs. Ao meu ver, dá para usar TDD em ambos os casos.
Por exemplo, ao encontrar um erro, vc escreve o teste para aquele cenário (o teste irá falhar), e depois efetua a correção, o que irá fazer com que o teste passe e garanta que aquele erro não ocorra novamente. A mesma coisa vale para as novas funcionalidades que entrarem no sistema.
No TDD, primeiro vc cria o teste, que irá falhar, depois vc faz o desenvolvimento do recurso (ou correção) e executa novamente o teste que deve passar dessa vez, e repete o fluxo até a funcionalidade for finalizada.