Loading Softdesign

Estratégias para Testes de Software

Como diria o Capitão Nascimento, no famoso filme Tropa de Elite: O conceito de estratégia, em grego, stratigiki; em inglês, strategy; em francês, stratégie… Os senhores estão anotando?

Estratégia significa plano, método ou manobra usada para alcançar um objetivo ou resultado específico. Dela depende o sucesso ou o fracasso de uma entrega, visto sua importância para o cumprimento de metas e para um bom ciclo de desenvolvimento.

Na SoftDesign, aplicamos estratégias na realização de testes, sempre de forma transparente. Quando um novo profissional passa a integrar a nossa equipe, o atualizamos com essa ‘lista’ para facilitar o trabalho e garantir a qualidade de processos e produtos.

Conheça algumas das estratégias usadas na SoftDesign em testes integrados nos ciclos de desenvolvimento ágil:

  1. Atue na sprint atual, mas também participe da discussão da sprint seguinte junto com o PO. Isso ajuda a mitigar e entender melhor os cenários que serão testados. O objetivo é que os critérios que podem ter inconsistência fiquem visíveis para todos os participantes do time;
  2. Comunique-se. Ao ler e interpretar um Critério de Aceite, dê exemplos do que pode ser validado e impactado na aplicação. Especificação Por Exemplo ajuda a explicitar e a tirar a ambiguidade das regras de uma funcionalidade;
  3. Auxilie o time na quebra de histórias. Quando uma equipe não está habituada a fazer pequenas entregas, é bem possível que o QA assuma essa responsabilidade, já que ele possui a visão do que irá verificar e, logo, o que pode ser quebrado para ser testado e entregue em partes. Mas lembre-se de observar que as entregas devem ter valor;
  4. Nem todo teste está na interface – a famosa pirâmide de testes fala sobre isso. Entenda a arquitetura da aplicação na qual você está trabalhando, pois muitas vezes as regras de negócio estão em camadas que podem ser validadas antes de ter o front-end (tela) pronto.
  5. Teste somente o que compete à funcionalidade – para isso são necessários Critérios de Aceite claros, para ter os delimitadores do que será validado; e conceitos de testes por feature branch, que geram um ambiente especifico com a mudança;
  6. Faça testes exploratórios antes de sair automatizando. Testes automatizados têm muito valor, mas necessitam de esforço e manutenção. Um bom teste exploratório auxilia a pensar nas melhores maneiras de estruturar os scripts de testes e ajuda a explicitar as regras críticas da aplicação;
  7. Faça automação de testes primeiro no que é positivo e que mais agrega valor, e somente depois em fluxos alternativos. A regressão automática deve garantir que novas funcionalidades não danificaram o que já estava em funcionamento. Regras que não são críticas não necessitam de automação;
  8. Faça automação para rodar em um Pipeline de Integração Continua. Não adianta ter testes que rodam somente quando você manda executar na sua máquina;
  9. Quando uma tarefa entra em teste, ela deve estar pronta para ser testada, não pronta para ser feito um deploy. Para isso, tenha um Pipeline de Build e Deploy automático. Em testes mobile, ferramentas de distribuição de app auxiliam a disponibilizar o incremento que será validado;
  10. BDD é legal, mas ele fala sobre processo colaborativo e não sobre automação de testes. Escrevemos nossos cenários utilizando exemplos, porém isso não significa que tenhamos que utilizar Cucumber ou JBehave em tudo.

As ideias de estratégias acima estão baseadas nas nossas experiências e pensamentos de melhoria continua. Elas são utilizadas pelos QAs em seus times, e estão em constante evolução. Nos ajudam a ganhar tempo e a evitar desperdício, além de auxiliarem na qualidade dos nossos produtos.

Quer saber um pouco mais sobre testes?

Baixe o nosso e-book sobre Teste de Software e Automação!