Testes de Software em Ambientes Ágeis

Chrystian Costa da Rosa
Bee Lab Academy
Published in
4 min readJul 21, 2018

“Facilitar a mudança é mais eficaz do que tentar evitá-la. Aprender a confiar na sua capacidade de responder a eventos imprevisíveis; é mais importante do que confiar na sua capacidade de planejar um desastre.”
— FOWLER; HIGHSMITH, Manifesto Ágil.

À medida que a complexidade do software continua aumentando e o tempo de comercialização encurtando, o teste de software se torna um negócio mais sério e objetivo. Nasce então a necessidade de agilizar os processos para que os testadores forneçam feedback de qualidade aos desenvolvedores instantaneamente, dentro do ciclo de desenvolvimento.

Um time ágil busca trabalhar com o objetivo de realizar um entregável com qualidade. O teste ágil tem a capacidade de reduzir os períodos de iterações e identificar os gaps com maior efetividade. Contudo, isso não faz do testador o responsável pela qualidade, o time é responsável pela qualidade desde a concepção!

A qualidade será fruto da capacidade de Auto-organização da equipe, que por sua vez, é uma grande arma a favor do trabalho conjunto, do desenvolvimento pessoal, da corresponsabilidade e principalmente do aumento da eficiência de todo o processo de produção. Competência, colaboração, motivação, confiança, respeito e continuidade; isso com certeza promove agilidade, valor e qualidade.

Agile Testing

Tendo como base o Manifesto Ágil, os valores e melhores maneiras de desenvolvimento de software são:

  • Indivíduos e interações entre eles mais que processos e ferramentas;
  • Software em funcionamento mais que documentação abrangente;
  • Colaboração com o cliente mais que negociação de contratos;
  • Resposta às mudanças mais que cumprimento de planos.

São aplicados ao Agile Testing os mesmos princípios usados para direcionar o desenvolvimento ágil, sendo assim, é necessário uma forte adaptação na rotina e dinâmica da equipe, em relação ao processo de desenvolvimento adotado, com o objetivo de propiciar um processo relativamente simples que possa ser executado com facilidade e agilidade, cobrindo o maior número de riscos, cumprindo o tempo estimado e entregando com nível de qualidade que atenda a expectativa do cliente.

Teste Ágil, Nove Princípios e Seis Práticas Concretas para Testes em Equipes Ágeis, por Elisabeth Hendrickson:

Resumidamente, os 9 Princípios são:

  • O teste leva o projeto adiante;
  • Os testes não podem ser vistos apenas como uma fase do projeto;
  • Todos testam, não apenas o especialista em testes;
  • Diminua o tempo dos feedbacks;
  • Mantenha o código limpo, erros encontrados devem ser resolvidos ASAP;
  • Testes descobrem requisitos não explicitados;
  • Reduza a documentação;
  • “Feito Pronto!”, não apenas Feito;
  • Adote, sempre que possível, a técnica de Test Driven Development (TDD).

Quanto às 6 Práticas Concretas, são realmente boas práticas a serem adotadas:

  • Testes Automatizados de Unidade e Integração;
  • Desenvolvimento Orientado a Testes (TDD, Testes Unitários, especificamente);
  • Testes Automatizados de Regressão no Nível do Sistema;
  • Desenvolvimento Orientado a Testes de Aceitação (ATDD, discutir → destilar → desenvolver → demonstrar);
  • Testes Exploratórios (baseado em histórias de usuário, se for o caso);
  • Testes de versão COM código (repositório de controle de origem inclui código-fonte, testes de unidade e testes de sistema).

Vantagens dos Testes Ágeis

Qualidade

Aumenta a produtividade e melhora a qualidade do processo e dos entregáveis, isso leva também a um melhor atendimento ao cliente.

Flexibilidade

Abordagens flexíveis e adaptáveis ​​a mudanças radicais. Nós absorvemos a qualidade em todas as áreas e envolvemos nossos especialistas com antecedência para garantir uma jornada tranquila.

Tempo

Leva menos tempo com planejamento, documentação e burocratização no gerenciamento de tarefas. Feedbacks são instantâneos e interações são dinâmicas, o que nos faz ganhar tempo.

Documentação leve

O primordial no método ágil é o funcionamento do software atendendo os requisitos, mais do que a documentação. Referente a participação do tester no desenvolvimento do software, a documentação deve ser mais objetiva o possível e que responda, com mensurações, as perguntas em relação ao projeto de software.

Ciclo de Vida do Teste Ágil

A projeção do processo de teste ágil inclui diversos fatores e etapas a serem seguidos, estes podem variar de acordo com a metodologia adotada e da estratégia aplicada.

Aqui estão alguns dos que fazem parte do ciclo de vida do teste ágil:

  • Análise de requisitos e impacto;
  • Definição de estratégia;
  • Verificação e validação;
  • Codificação;
  • Feedback;
  • Prontidão de liberação;
  • Revisão de agilidade.

Em contraste ao método WaterFall, o Agile pode iniciar o projeto com integração entre negócios, desenvolvimento e teste. Não é sequencial, mas incremental e contínuo.

Devo ou não planejar?

O segredo do Planejamento Estratégico de processos ágeis é perceber que à medida que a percepção do projeto se aprimora, o planejamento consequentemente pode evoluir. Ao aplicar uma abordagem ágil para o seu projeto, você pode aumentar significativamente as chances de sucesso de atingir os objetivos e causar um impacto positivo muito além do que você imaginou.

Peace!

Chrystian Costa da Rosa.

_______________________________________________________________

Contribuições:

Prof. Dr. Jorge Audy
Tiago Guimarães da Silva

Referências:

Elias Nogueira: Capítulo 7: Teste ágil, como implementar?

FOWLER, Martin; HIGHSMITH, Jim. The Agile Manifesto. SD Magazine. Agosto, 2001.

HENDRICKSON, Elisabeth. Agile QA/Testing. Quality Tree Software, Inc. Novembro, 2006.

Mind Master: Como Planejar um Projeto Ágil

Scrum Alliance: Self-Organizing Teams: What and How.

--

--