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.

 
Anterior
Anterior

Monkey Tests: Conceito, Origem, Objetivos e Aplicação

Próximo
Próximo

QA FullStack