Por que um QA não é (nem deve ser) um DevOps
QA (Quality Assurance) e DevOps (Development and Operations) são disciplinas distintas, cada uma com seu próprio foco e responsabilidades dentro do ciclo de desenvolvimento de software.
Embora ambas sejam fundamentais para a entrega de software de qualidade, é importante entender por que um QA não deve ser confundido com um DevOps e quais são os papéis e as responsabilidades específicas de cada um.
Um QA não deve ser um DevOps, pois cada função exige um conjunto especializado de habilidades e foco. No entanto, a colaboração entre essas duas disciplinas é vital. Quando trabalham juntos, QA e DevOps podem criar um ciclo de desenvolvimento mais eficiente, rápido e, acima de tudo, de qualidade.
Mas, para se preparar para essa colaboração, o QA deve estar disposto a aprender sobre as práticas e as ferramentas de DevOps e tamém como é que essas práticas podem ser alinhadas com os objetivos de qualidade.
Quais as principais diferenças?
1. Foco Diferente
O foco principal do QA é garantir a qualidade do software. Isso envolve o planeamento, a execução e a monitorização dos testes, para identificar e corrigir defeitos, validar funcionalidades, e garantir que o produto final corresponde aos requisitos e expectativas dos utilizadores.
O foco do DevOps é na automação, integração contínua (CI), entrega contínua (CD), e operações de infraestrutura. A disciplina DevOps tem como objectivo agilizar o processo de desenvolvimento e deployment, assegurando que o código possa ser implantado e disponibilizado com rapidez e segurança.
2. Responsabilidades Distintas
O QA assegura que o software é testado de forma abrangente antes do lançamento, considerando testes funcionais, de regressão, de desempenho, de segurança, entre outros.
Já o DevOps gere o ambiente de desenvolvimento, as CI/CD pipelines, a automação do deployment, a monitorização da performance do sistema em produção e a optimização dos processos de entrega.
3. Habilidades Necessárias
O QA precisa de ter fortes capacidades e habilidades em testes de software, vasto entendimento sobre metodologias de teste, automação de testes, e conhecimento das práticas de qualidade.
Ao DevOps é requerido conhecimento em gestão de infraestructura, ferramentas de CI/CD (como o Jenkins, GitLab CI), containers (Docker, Kubernetes), scripting, e monitorização de sistemas.
Como um QA pode colaborar com a equipa de DevOps?
Apesar de serem disciplinas diferentes, a colaboração entre QA e DevOps é crucial para o sucesso do ciclo de desenvolvimento de software, principalmente num ambiente ágil. Algumas das áreas em que o QA pode colaborar com a equipa de DevOps são:
1. Integração de testes em pipelines de CI/CD:
Automação de testes: o QA pode criar e integrar suites de testes automatizados nas pipelines de CI/CD para garantir que cada build passe por uma validação básica antes de ser considerada estável.
Feedback rápido: com os testes automatizados nas pipelines, o QA ajuda com o feedback rápido sobre a qualidade do código a cada commit, permitindo que os programadores corrijam problemas de forma imediata, evitando problemas maiores.
2. Testes em ambientes de pré-produção:
Validação do ambiente: o QA pode colaborar com DevOps para garantir que o ambiente de staging (ou pré-produção) é configurado de forma semelhante ao ambiente de produção, assegurando assim que os testes são representativos do ambiente real.
Teste de infraestrutura: trabalhar com DevOps para validar a infraestrutura (como configurações de rede, gestores de carga, etc.) antes do deployment.
3. Monitorização e feedback pós-deployment:
Monitorização do ambiente de produção: o QA pode colaborar na configuração do processo de monitorização para recolher métricas de utilização e performance em produção, ajudando assim a identificar possíveis problemas que não foram capturados nos testes executados nos ambientes anteriores.
Testes em produção: em alguns casos, o QA pode colaborar em testes de smoke ou sanity diretamente em produção, verificando a estabilidade do sistema após um deployment.
4. Automatização e ferramentas compartilhadas:
Ferramentas de automação: O QA e DevOps podem partilhar a utilização de ferramentas de automação para tarefas como deploy, rollback, e execução de testes, permitindo criar uma sinergia e eficiência no processo de entrega.
Scripts e infraestrutura: O QA pode colaborar na revisão de scripts ou arquivos de configuração da infraestrutura, para garantir que as configurações suportam as necessidades de testes e respectiva qualidade.
5. Cultura DevOps e Qualidade:
Mentalidade de Qualidade em Todo o Ciclo: o QA pode ajudar a cultivar uma cultura de qualidade dentro da equipa DevOps, assegurando que a qualidade seja considerada em cada fase do processo, desde o desenvolvimento até o deployment.
Automatização do processo de QA: o QA deve colaborar com DevOps para automatizar o máximo possível do processo de QA, incluindo a execução de testes, relatórios e monitoramento.