Teste Agile - Visão Geral

Agileé uma metodologia de desenvolvimento iterativa, em que as atividades de desenvolvimento e teste são simultâneas. O teste não é uma fase separada; A codificação e o teste são feitos de forma interativa e incremental, resultando em um produto final de qualidade, que atende aos requisitos do cliente. Além disso, a integração contínua resulta na remoção precoce de defeitos e, portanto, em economia de tempo, esforço e custos.

Manifesto Ágil

O Manifesto Ágil foi publicado por uma equipe de desenvolvedores de software em 2001, destacando a importância da equipe de desenvolvimento, acomodando as mudanças de requisitos e o envolvimento do cliente.

The Agile Manifesto is −

Estamos descobrindo melhores maneiras de desenvolver software, fazendo isso e ajudando outros a fazê-lo. Por meio deste trabalho, chegamos a valorizar -

  • Indivíduos e interações sobre processos e ferramentas.
  • software que trabalha sobre uma documentação completa.
  • Colaboração com o cliente na negociação do contrato.
  • Respondendo à mudança seguindo um plano.

Ou seja, embora haja valor nos itens da direita, valorizamos mais os itens da esquerda.

O que é o Agile Testing?

O Agile Testing é uma prática de teste de software que segue os princípios do desenvolvimento ágil de software.

O Agile Testing envolve todos os membros da equipe do projeto, com especialização especial contribuída por testadores. O teste não é uma fase separada e está entrelaçado com todas as fases de desenvolvimento, como requisitos, design e codificação e geração de casos de teste. O teste ocorre simultaneamente durante o Ciclo de Vida de Desenvolvimento.

Além disso, com testadores participando de todo o Ciclo de Vida de Desenvolvimento em conjunto com membros da equipe multifuncional, a contribuição dos testadores para construir o software de acordo com os requisitos do cliente, com melhor design e código se tornaria possível.

O Agile Testing cobre todos os níveis de teste e todos os tipos de teste.

Teste Agile vs. Teste em Cachoeira

Em uma metodologia de Desenvolvimento em Cachoeira, as atividades do Ciclo de Vida de Desenvolvimento acontecem em fases que são sequenciais. Portanto, o teste é uma fase separada e é iniciado somente após a conclusão da fase de desenvolvimento.

A seguir estão os destaques das diferenças entre o teste ágil e o teste em cascata -

Teste Ágil Teste em Cachoeira
O teste não é uma fase separada e ocorre simultaneamente com o desenvolvimento. O teste é uma fase separada. Todos os níveis e tipos de teste podem começar somente após a conclusão do desenvolvimento.
Testadores e desenvolvedores trabalham juntos. Os testadores trabalham separadamente dos desenvolvedores.
Os testadores estão envolvidos na definição dos requisitos. Isso ajuda no mapeamento de requisitos para os comportamentos no cenário do mundo real e também no enquadramento dos critérios de aceitação. Além disso, casos de teste de aceitação lógicos estariam prontos junto com os requisitos. Os testadores podem não estar envolvidos na fase de requisitos.
O teste de aceitação é feito após cada iteração e o feedback do cliente é solicitado. O Teste de Aceitação é feito apenas no final do projeto.
Cada iteração completa seu próprio teste, permitindo que o teste de regressão seja implementado toda vez que novas funções ou lógicas são lançadas. O teste de regressão pode ser implementado somente após a conclusão do desenvolvimento.
Sem atrasos entre a codificação e o teste. Atrasos de tempo normais entre a codificação e o teste.
Teste contínuo com níveis de teste sobrepostos. O teste é uma atividade cronometrada e os níveis de teste não podem se sobrepor.
O teste é uma prática recomendada. O teste é frequentemente esquecido.

Princípios de teste ágil

Os princípios do teste Agile são -

  • Testing moves the project forward- O teste contínuo é a única maneira de garantir o progresso contínuo. O Agile Testing fornece feedback continuamente e o produto final atende às demandas de negócios.

  • Testing is not a phase- A equipe ágil testa junto com a equipe de desenvolvimento para garantir que os recursos implementados durante uma determinada iteração sejam realmente executados. O teste não é mantido para uma fase posterior.

  • Everyone tests- No teste ágil, toda a equipe, incluindo analistas, desenvolvedores e testadores, testa o aplicativo. Após cada iteração, até mesmo o cliente realiza o Teste de Aceitação do Usuário.

  • Shortening Feedback Loops- No Agile Testing, a equipe de negócios conhece o desenvolvimento do produto para cada iteração. Eles estão envolvidos em cada iteração. O feedback contínuo reduz o tempo de resposta do feedback e, portanto, o custo envolvido em consertá-lo é menor.

  • Keep the Code Clean- Os defeitos são corrigidos à medida que são levantados na mesma iteração. Isso garante código limpo em qualquer marco de desenvolvimento.

  • Lightweight Documentation - Em vez de documentação de teste abrangente, testadores Agile -

    • Use listas de verificação reutilizáveis ​​para sugerir testes.

    • Concentre-se na essência do teste, e não nos detalhes incidentais.

    • Use estilos / ferramentas de documentação leves.

    • Capture ideias de teste em cartas para testes exploratórios.

    • Aproveite documentos para vários fins.

  • Leveraging one test artifact for manual and automated tests- O mesmo artefato de script de teste pode ser utilizado para teste manual e como entrada para testes automatizados. Isso elimina o requisito de documentação de teste manual e, em seguida, um script de teste de automação equivalente.

  • “Done Done,” not just done - No Agile, um recurso é dito para ser feito não após o desenvolvimento, mas após o desenvolvimento e teste.

  • Test-Last vs. Test Driven- Os casos de teste são escritos junto com os requisitos. Portanto, o desenvolvimento pode ser conduzido por meio de testes. Essa abordagem é chamada de Desenvolvimento Orientado a Testes (TDD) e Desenvolvimento Orientado a Testes de Aceitação (ATDD). Isso contrasta com o teste como última fase do teste em cascata.

Atividades de teste ágil

As atividades de teste do Agile no nível do projeto são -

  • Planejamento de liberação (plano de teste)

    • Para cada iteração,

    • Atividades de teste ágil durante uma iteração

  • Teste de Regressão

  • Atividades de liberação (relacionadas ao teste)

As atividades de teste do Agile durante uma iteração incluem -

  • Participar do planejamento de iteração
  • Estimando tarefas do ponto de vista do teste
  • Escrever casos de teste usando as descrições de recursos
  • Teste de Unidade
  • Teste de integração
  • Teste de recursos
  • Correção de defeitos
  • Teste de integração
  • Teste de aceitação
  • Relatório de status sobre o andamento do teste
  • Rastreamento de Defeito