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:
- Aumento da velocidade das entregas no ciclo de desenvolvimento;
- Entregas mais frequentes e com qualidade
- 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