Considere as seguintes definições relacionadas a práticas ágeis, com lacunas a preencher, e assinale a alternativa que preencha corretamente as três definições, considerando sua ordem.
1. __________ é uma abordagem de desenvolvimento de software que se concentra em escrever testes antes de escrever o código propriamente dito. O desenvolvedor escreve um teste para uma nova funcionalidade e, em seguida, escreve o código para implementar essa funcionalidade. Quando o teste passar, o desenvolvedor sabe que a funcionalidade está funcionando corretamente.
2. __________ é uma prática de desenvolvimento de software que visa integrar pequenas mudanças no código de forma frequente e automatizada. Isso geralmente é feito com a ajuda de ferramentas que executam a compilação, testes e outros processos para verificar se o código é estável e se se integra corretamente com outros componentes do sistema.
3. __________ é o processo de melhorar o design e a estrutura de um código existente sem alterar sua funcionalidade. É uma técnica comum usada na programação orientada a objetos para tornar o código mais fácil de manter e compreender.