Publicado em: janeiro 6, 2021
Como a automação de testes pode construir uma cultura de garantia da qualidade e, ao mesmo tempo, acelerar a entrega contínua.
Ao construir uma cultura de automação de testes focada nas melhores práticas, DevOps As equipes podem atingir as metas de entrega contínua, minimizando os riscos.
O nível de cobertura de testes automatizados de uma organização está se tornando rapidamente um diferencial competitivo. O objetivo da entrega contínua não pode ser alcançado se o processo for prejudicado por práticas antigas, como considerar os testes manuais como padrão. A falta de cobertura de testes também pode levar a falhas em produção, resultando em trabalho não planejado e tempo de inatividade inesperado.
Como especialista em transformação digital e autor Isaac Sacolick notas“A automação permite que as equipes desenvolvam testes para componentes e serviços de aplicativos individuais ou em grupo, facilitando o isolamento de problemas antes que se tornem defeitos de produção.”
Ao automatizar os testes em diferentes áreas do software ou em vários níveis (por exemplo, nível de unidade, integração), torna-se mais fácil identificar problemas e corrigi-los precocemente. É muito mais difícil isolar a causa raiz e corrigir um problema em produção do que em desenvolvimento.
A automação de testes também proporciona às organizações a agilidade necessária para implementar mudanças rapidamente, minimizando riscos. Além disso, a automação de testes cria uma infraestrutura dentro do desenvolvimento, permitindo que cada etapa do trabalho seja verificada quanto à integridade e desempenho, bem como quanto a questões prioritárias, como segurança, governança e conformidade. Com testes automatizados implementados, os resultados de cada etapa do desenvolvimento podem ser verificados antes de avançar para a próxima.
Assim como na programação, a automação de testes deve seguir as melhores práticas. A diligência garante os resultados desejados e que geram valor, tanto com rapidez quanto em escala. Algumas abordagens recomendadas incluem:
- Incorporar a automação de testes na sua organização DevOps oleoduto
- Permitir que os desenvolvedores liderem a criação de testes promove a responsabilidade pelo processo.
- Definir critérios de cobertura de testes para equilibrar a gestão de riscos com a agilidade, garantindo que os testes se concentrem em áreas específicas ou funcionalidades de software.
Integre os testes automatizados em DevOps
Algumas pessoas veem os testes automatizados simplesmente como uma forma de substituir os testes manuais, que os especialistas em controle de qualidade frequentemente consideram lentos, frustrantes e repetitivos, levando a erros.
Mas a automação também representa uma movimentação mais fluida de trabalho e valor para DevOpsO próprio teste torna-se um processo automático, em vez de uma etapa que precisa ser deliberadamente implementada ou incentivada.
Os testes automatizados também podem significar testes mais rápidos e em intervalos mais frequentes, potencialmente detectando defeitos ou erros antes que comecem a gerar trabalho não planejado. Além disso, deixam um registro automático e eliminam grande parte do erro humano associado a etapas e processos manuais.
As melhores práticas devem ser seguidas para atingir o objetivo de testes contínuos em conjunto com a entrega contínua. Um ótimo exemplo: os scripts de teste não devem ser criados isoladamente, mas sim como parte de um conjunto de testes. Quando o primeiro script for escrito para um novo recurso ou função, os desenvolvedores devem criar imediatamente um conjunto de testes que outros possam complementar conforme necessário. Isso reduzirá o atrito gerado em cada etapa do novo trabalho, estabelecendo um modelo para alterações subsequentes na mesma área.
Uma arquitetura de testes sólida pode significar a diferença entre mais liberdade e frustrações para sua equipe de desenvolvimento. É por isso que muitas organizações incentivam o uso de frameworks de teste, que oferecem benefícios como:
- Criação de testes mais rápida
- Manutenção mais fácil
- Previna defeitos, em vez de detectá-los na produção.
- Foque nas histórias de usuário, não nas funções técnicas (por exemplo, priorizando a necessidade de menos cliques do usuário em vez da necessidade de verificações de validação em vários estágios de uso da plataforma).
Incorpore os testes à cultura de desenvolvimento.
Os melhores scripts de teste automatizados são gerados pela própria equipe de desenvolvimento, e não por pessoas de fora dela.
De acordo com as DevOps Dados de Pesquisa e Avaliação (DORA)“Os desenvolvedores são os principais responsáveis pela criação e manutenção de conjuntos de testes automatizados e, quando é fácil para eles corrigirem as falhas nos testes de aceitação, isso impulsiona uma melhoria no desempenho.”
Os desenvolvedores precisam entender os testes e também devem ser capazes de ajustar os critérios de aprovação para otimizar os testes em relação às metas da sprint.
Existem casos em que os testes podem ser criados fora da equipe de desenvolvimento, desde que os desenvolvedores continuem responsáveis pela qualidade do próprio código, pela correção de bugs e pelo desempenho. Eles também devem ter a capacidade de solicitar otimizações com base em sua intuição.
Ainda assim, os desenvolvedores precisarão ser orientados para garantir que todos os envolvidos sigam as práticas de teste que aumentarão as chances de um produto final de qualidade. Essa diligência oferece aos especialistas em QA a oportunidade de assumir funções mais consultivas, à medida que as organizações dependem menos de processos de teste manuais. Tal transição não apenas dá mais autonomia aos especialistas em QA, como também ajuda os desenvolvedores a aprenderem a escrever testes melhores e aprimorarem sua abordagem na busca por problemas de qualidade.
É importante ressaltar que a simples criação de conjuntos de testes não é suficiente para garantir os resultados desejados. As equipes de desenvolvimento devem ser capazes de monitorar proativamente os resultados dos testes, interpretá-los e, em seguida, usar o feedback para aprimorar a qualidade da compilação.
completa Módulo de treinamento popular sobre automação de testes Sugere-se que os seguintes fatores indicarão quando as equipes tiverem uma cultura positiva de testes automatizados implementada:
- As equipes estão orientando o desenvolvimento com testes voltados para o negócio.
- As atividades de teste e codificação são integradas.
- A equipe resolve imediatamente as falhas nos testes.
- Toda a equipe se envolve no monitoramento e teste da produção.
- Os testes abrangem desempenho, segurança, confiabilidade e resiliência.
- As equipes criam conjuntos de testes juntamente com novos recursos.
Seja estratégico na implementação de testes automatizados.
A automação de testes pode ajudar as organizações a atingirem suas metas de qualidade de CI/CD, incluindo o aumento da frequência de lançamentos, já que etapas manuais são eliminadas. Mas a automação por si só não é uma solução mágica. As organizações precisam definir metas para a automação de testes, incluindo o que esperam alcançar, e usar a introspecção para determinar se são necessárias mudanças.
O primeiro passo é auditar o DevOps O próprio processo é analisado para identificar processos que não estão funcionando e aprender como melhorá-los, além de destacar oportunidades de otimização.
Esse processo de avaliação é um primeiro passo crucial. Segundo David Linthicum, Diretor de Estratégia em Nuvem da Deloitte Consulting, “a automação consiste em pegar processos antes manuais e aplicar tecnologia para que se tornem inerentemente repetíveis. Se seus processos são ruins ou falhos, você está apenas fazendo com que processos ruins aconteçam mais rapidamente.”
Linthicum também alerta contra a abordagem de automatizar simplesmente por automatizar. Organizações que buscam “automação sem propósito” acabam com ferramentas em excesso e precisam ajustar seus processos. DevOps Os processos devem se adaptar a essas ferramentas, e não o contrário.” É imprescindível aplicar a automação para atingir objetivos específicos, como aumentar a frequência de lançamentos, reduzir etapas manuais ou melhorar a qualidade e/ou confiabilidade dos lançamentos. Em seguida, uma vez definidos os objetivos, comece com casos de uso específicos para se familiarizar com o processo automatizado.
Uma consultoria de testes sugere Automação de testes em cenários específicos ou quando os testes se enquadram nos seguintes critérios:
- Repetitivo por natureza e precisa ser executado com frequência.
- Propenso a erros manuais
- Caro e demorado quando realizado manualmente.
- Trabalho intensivo e que exige um grande investimento de recursos.
- Funciona em diversas plataformas e configurações de software ou hardware.
- Exigem grandes quantidades de dados
As organizações devem executar testes rápidos primeiro para detectar erros que comprometam a funcionalidade o mais cedo possível – e antes que medidas mais demoradas sejam tomadas. Testes mais rápidos também serão mais focados e isolados, por exemplo, no caso de testes unitários de uma funcionalidade específica.
Em um ambiente ideal, os testes devem ser concluídos na seguinte ordem:
- Nível básico: Testes unitários – Os testes unitários são os mais rápidos e podem detectar erros específicos rapidamente.
- Nível intermediário: Testes de serviço – Os testes de serviço têm um alcance maior e podem detectar erros mais comuns; no entanto, a resolução de testes com falha pode ser mais demorada.
- Nível superior: testes de interface do usuário – Os testes de interface do usuário consomem muito tempo, com ou sem automação, e só devem ser concluídos após a aprovação nos testes de unidade e de serviço.
- cereja no topo – Os testes manuais, se necessários, podem ser implementados após a conclusão dos testes automatizados.
A automação de testes pode tornar a entrega contínua uma realidade.
O objetivo de alcançar lançamentos mais rápidos, gerenciando os riscos ao mesmo tempo, exige um processo fluido onde a automação de testes esteja totalmente integrada ao todo. DevOps gasoduto.
Como um proeminente DevOps estados terceirizadores“a progressão natural para um DevOps O processo, que já é altamente automatizado, consiste em fazer com que mais etapas do processo de garantia da qualidade (QA) se alinhem, seja por meio do desenvolvimento orientado a testes (TDD) ou por scripts automatizados executados continuamente durante os testes de novos recursos desenvolvidos.”
Organizações focadas no uso da automação e que incentivam a adesão das equipes de desenvolvimento obterão maior sucesso, visto que a automação de testes facilita lançamentos mais rápidos com melhor integridade, segurança, governança e conformidade do que nunca.
Saiba mais neste webinar sob demanda. onde Guy Arieli, Digital.ai O CTO de QA compartilha as melhores práticas de testes contínuos na transformação digital e demonstra como as plataformas de testes contínuos podem ajudar você a lançar seus aplicativos mais rapidamente, economizando tempo e dinheiro.
Também recomendamos
Entendendo MLOps e DevOps
DevOps Obtém sucesso quando implementado corretamente porque a entrega de software se torna um…
Entendendo o GitOps e seu papel nas empresas
Definição de GitOps: estado desejado e reconciliação contínua. GitOps é…
Engenharia de Plataformas, IDPs e Caminhos Dourados
Introdução: Engenharia de Plataformas em Organizações de Desenvolvimento de Software: Os desafios que as organizações enfrentam são…