Ilustração de uma pessoa segurando duas peças de quebra-cabeça roxas encaixadas, com um notebook abaixo e um sol ao fundo.

O Guia Definitivo de
Testes Contínuos

Qualidade Reconhecida Por

01. Introdução

A agilidade basicamente facilita a competitividade. Para competir no ambiente de hoje, você deve agir e reagir rápido, caso contrário, seu concorrente simplesmente chegará lá antes de você. Hoje, a barreira para competir é mínima, e a única forma de defender sua posição é inovando em iterações curtas, o que basicamente significa adotar o Agile.

Alon Girmonsky

CEO, BlazeMeter

Quando você faz o shift-left dos testes, entre muitos outros benefícios, você pode alcançar os testes contínuos, executando verificações automatizadas como parte do pipeline de entrega de software para obter feedback imediato sobre os riscos de negócio associados a um candidato a release de software. Os testes contínuos também envolvem testar cedo e com frequência, uma gestão de código adequada e ajustar as várias tarefas relacionadas à qualidade ao longo do tempo para maximizar a eficiência de todo o processo.

Alguns dos principais benefícios dos testes contínuos incluem:

  • Reduzir o custo de desenvolvimento
  • Reduzir o desperdício
  • Reduzir o risco no release
  • Aumentar a confiabilidade do sistema
  • Lançar em produção mais rápido
  • Competir de forma mais acirrada no mercado

Muitas equipes hoje estão tentando construir ou refinar sua máquina de testes contínuos. Acreditamos que, para melhorar os resultados da produção de software, é necessário considerar três pilares fundamentais que estão intimamente ligados: processos, ferramentas e pessoas. As equipes podem melhorar ao aprimorar seus processos, mas as ferramentas e os membros da equipe também devem se adaptar para que os processos novos e aprimorados se consolidem.

Por exemplo, dentro do Agile, as equipes podem se encontrar em frameworks como o Scrum que criam um processo, para o qual elas se verão usando vários tipos de ferramentas para tudo, desde a comunicação até a gestão de tarefas, e normalmente haverá um grande foco na motivação e no comprometimento da equipe.

Todos os aspectos das abordagens ágeis são bem projetados para serem adaptáveis à mudança, que é seu foco principal. A ideia é assumir que o que o cliente precisa não é fixo nem estabelecido em um contrato. Assim, é essencial trabalhar em adaptações constantes de uma forma que não faça os custos do projeto dispararem ou se tornarem incontroláveis.

O que é necessário para se adaptar à mudança e, ainda assim, manter um alto nível de qualidade?

Para qualquer equipe, o problema mais típico que surge ao introduzir mudanças em um sistema é o medo: o medo de quebrar algo que já estava funcionando antes e não perceber até depois que já chegou às mãos do cliente. Quando um usuário recebe uma nova versão da aplicação, não há nada pior do que descobrir que o que sempre funcionava não funciona mais.

Para abordar esse problema, as equipes devem ser capazes de detectar quaisquer erros de qualquer tipo o mais cedo possível. Quando falamos de erros, estamos nos referindo a qualquer tipo de erro ou bug: um cálculo errado, problemas de desempenho, uma vulnerabilidade de segurança, aspectos de usabilidade, problemas de manutenibilidade (por exemplo, fatores de qualidade de código) ou qualquer coisa que possa incomodar um usuário. E o que queremos dizer com "o mais cedo possível" é o mais próximo possível de quando o erro foi inserido no sistema.

Assim, práticas importantes como os testes contínuos, que andam de mãos dadas com a integração contínua (CI), emergem e ganham importância para as equipes ágeis.

Basicamente, a integração contínua propõe construir e testar a solução com frequência, construindo um produto potencialmente entregável ao cliente com uma frequência que depende de cada equipe, variando de uma nova versão após cada commit a uma a cada dia ou semana. As ferramentas de integração contínua permitem definir uma sequência de tarefas a serem realizadas automaticamente, entre as quais tipicamente se incluem:

  • Atualizar o código para a versão mais recente
  • Construir a solução
  • Verificações automatizadas
  • Verificações de qualidade do código
  • Verificações de segurança

E a lista pode continuar com centenas de integrações e testes que alguém possa desejar adicionar.

Existem dezenas de ferramentas para dar suporte a esses sistemas automatizados, algumas tão antigas quanto Ant, Maven e MSbuild, ferramentas de gestão de configuração como Chef, Puppet ou Ansible, até ferramentas populares de CI como Jenkins, CruiseControl, Bamboo e TeamCity. E, se isso não fosse suficiente, também há soluções em nuvem como Amazon Pipeline Code, TravisCI, CircleCI, Codeship e o Visual Studio Team Services da Microsoft (para citar alguns).

Então, tudo o que se precisa fazer para ter testes contínuos e integração contínua é simplesmente implementar uma dessas ferramentas de CI e, então, a qualidade estará incorporada em tudo. Certo?

Errado.

O problema é que muitas equipes caem justamente nessa falácia e ignoram muitas pré-condições para os testes contínuos e a CI que devem ser atendidas de antemão, resultando em fracasso. Algumas das pré-condições incluem o manejo adequado da gestão de versões de código, a gestão de incidentes, a gestão de dados e ambientes, verificações automatizadas em diferentes níveis de teste (unidade, testes de build, API, UI), testes de desempenho, qualidade interna do código e assim por diante.

Felizmente, este guia ajudará você a navegar por vários dos obstáculos que sua equipe de testes tem de superar em seu caminho para os testes contínuos (o mais alto nível de maturidade em testes de acordo com o nosso modelo de maturidade), ao mesmo tempo em que impulsiona a mudança da garantia de qualidade tradicional para a engenharia de qualidade.

Baixe o Guia Definitivo de Testes Contínuos em PDF

Tudo o que as equipes precisam saber para o shift-left testing e alcançar o nível de maturidade nos seus processos de engenharia de qualidade que viabiliza o CI/CD.

O conteúdo deste material está em inglês. Você pode solicitar o download normalmente pelo formulário.

Use um e-mail válido que você verifica com frequência.

Este site é protegido por reCAPTCHA e se aplicam a Política de Privacidade e os Termos de Serviço do Google.