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. 

