Neste post vamos falar de DevOps e qualidade de software, com foco em qual seria o novo papel do QA no mundo DevOps.

Ninguém pode negar que DevOps é uma tendência que não vai parar, os QAs/Testers precisam se familiarizar e se preparar para atuar nesse novo cenário, que representa novos desafios e oportunidades.

Primeiro vamos lembrar o que é DevOps, e o problema que pretende resolver. Quando as áreas, e processos, de Desenvolvimento e Operações funcionam de maneira isolada surge o problema da lentidão no ciclo das entregas, o time-to-market das aplicações é impactado. Resumidamente é esse o problema que os praticantes de DevOps tentam resolver, ou ao menos diminuir seus impactos.

DevOps é um conjunto de ferramentas, práticas e sobretudo é um mindset que tem como objetivo principal aumentar a velocidade e a colaboração num processo de desenvolvimento de software; mas obviamente que tudo isso sem perder a qualidade das entregas. Quando se implementa DevOps sempre devem ser consideradas as principais práticas: Continuous integration, Continuous Delivery, Continuous testing e Continuous monitoring; criando assim um fluxo contínuo de entregas no processo de desenvolvimento.

Principais benefícios esperados quando se implementa DevOps:

  1. Aumento da velocidade das entregas no ciclo de desenvolvimento;
  2. Entregas mais frequentes e com qualidade
  3. Redução do time-to-market das empresas

Tudo isso reforça a importância do QA, tanto pessoas quanto processo, dentro do DevOps. Cada empresa funciona de maneira diferente, por isso é importante considerar que a adoção de DevOps vai depender do contexto, das equipes e da cultura das empresas; mas dentro do Continuous testing não podemos esquecer da importância das atividades shift left, que tem por objetivo testar e identificar problemas o mais cedo possível e com um enfoque de prevenção de bugs. A imagem abaixo mostra onde os esforços de testes devem se concentrar nos modelos shift left.

Alem da prevenção o modelo também ajuda a encurtar os ciclos de desenvolvimento, sendo assim um modelo condizente com as abordagens Agile e práticas DevOps. Segue abaixo um resumo das atividades padrão de um QA e as que estão surgindo dentro da cultura DevOps, mas todas elas fazem parte do Continuous Testing

Atividades padrão de QA.

  • Review de user stories e mapeamento de cenários de teste
  • Testes estáticos de protótipos, validação de UX
  • Elaboração de casos de teste utilizando BDD
  • Mapeamento e geração de massas de teste
  • Execução de testes manuais roteirizados e exploratórios
  • Automação de testes Web e Mobile
  • Execução da automação
  • Gerenciamento de teste e Reports de progresso

Novas atividades de QA para agilizar o Continuous Testing dentro do DevOps

  • Definir a estratégia e orquestrar os testes dentro da esteira DevOps
  • Integração das automações na esteira DevOps
  • Configuração de ferramentas de escaneamento de código para análise estática de qualidade
  • Provisionamento de ambientes de teste: Ambientes cloud via IaC (Infra as code), criação de contêineres etc.
  • Criação de virtual services para simular componentes dentro dos testes integrados nas etapas iniciais do desenvolvimento
  • Automação de deploys na esteira DevOps
  • Automação para geração e gerenciamento de massas de teste
  • Analytics e report de testes na esteira DevOps completa

 

Como já deve ter percebido essas novas atividades são mais técnicas, o mais natural é serem assumidas por perfis mais focados em automação, e evoluindo para um DevOps QA Engineer; mas nada impede de outros perfis de QA começarem a apoiar em algumas dessas atividades, no final das contas DevOps é uma abordagem baseada em princípios lean e agile, onde negócio, desenvolvimento, operações e quality assurance precisam de velocidade e qualidade no delivery das entregas.

Autor: Jehú Ramos