Teste Ágil - Metodologias
O Agile é uma metodologia de desenvolvimento iterativa, onde toda a equipe do projeto participa de todas as atividades. Os requisitos evoluem com o progresso das iterações, por meio da colaboração entre o cliente e as equipes auto-organizadas. Como a codificação e o teste são feitos de forma interativa e incremental, durante o desenvolvimento, o produto final seria de qualidade e garantiria os requisitos do cliente.
Cada iteração resulta em um incremento de produto de trabalho integrado e é entregue para o Teste de Aceitação do Usuário. O feedback do cliente assim obtido seria uma entrada para as próximas / subsequentes Iterações.
Integração contínua, qualidade contínua
A integração contínua é a chave para o sucesso do desenvolvimento ágil. Integre com frequência, pelo menos diariamente, de forma que você esteja pronto para um lançamento como e quando necessário. Testar em Agile passa a ser um componente essencial de todas as fases do desenvolvimento, garantindo a qualidade contínua do produto. O feedback constante de todos os envolvidos no projeto aumenta a qualidade do produto.
No Agile, a comunicação é dada com extrema importância e as solicitações dos clientes são recebidas como e quando necessário. Isso dá a satisfação ao cliente que todos os insumos são considerados e produto de qualidade funcional está disponível durante todo o desenvolvimento.
Metodologias ágeis
Existem várias metodologias ágeis que suportam o desenvolvimento ágil. As metodologias ágeis incluem -
Scrum
Scrum é um método de desenvolvimento ágil que enfatiza a abordagem centrada na equipe. Defende a participação de toda a equipe em todas as atividades de desenvolvimento do projeto.
XP
A Programação eXtreme é centrada no cliente e se concentra em requisitos em constante mudança. Com lançamentos frequentes e feedback do cliente, o produto final será de qualidade, atendendo aos requisitos do cliente que ficam mais claros durante o processo.
Cristal
O Crystal é baseado em fretamento, entrega cíclica e finalização.
O fretamento envolve a formação de uma equipe de desenvolvimento, realizando uma análise preliminar de viabilidade, chegando a um plano inicial e a metodologia de desenvolvimento.
A entrega cíclica com dois ou mais ciclos de entrega concentra-se na fase de desenvolvimento e na entrega final do produto integrado.
Durante o encerramento, a implantação no ambiente do usuário, análises e reflexões pós-implantação são realizadas.
FDD
O Desenvolvimento Orientado a Recursos (FDD) envolve o projeto e a construção de recursos. A diferença entre o FDD e outras metodologias de desenvolvimento ágil é que os recursos são desenvolvidos em fases específicas e curtas separadamente.
DSDM
O Método de Desenvolvimento Dinâmico de Software (DSDM) é baseado no Rapid Application Development (RAD) e está alinhado com o Agile Framework. O DSDM se concentra na entrega frequente do produto, envolvendo os usuários ativamente e capacitando as equipes para tomar decisões rápidas.
Desenvolvimento Lean de Software
No Lean Software Development, o foco está em eliminar o desperdício e dar valor ao cliente. Isso resulta em rápido desenvolvimento e produto de valor.
Resíduos incluem trabalho parcialmente concluído, trabalho irrelevante, recursos que não são usados pelo cliente, defeitos, etc. que aumentam os atrasos na entrega.
o Lean Principles são -
- Eliminar desperdício
- Amplifique a Aprendizagem
- Compromisso de atraso
- Capacite a equipe
- Entregue rápido
- Construir integridade em
- Veja o todo
Kanban
Kanban foca no gerenciamento do trabalho com ênfase na entrega just-in-time (JIT), sem sobrecarregar os membros da equipe. As tarefas são exibidas para que todos os participantes vejam e para que os membros da equipe retirem o trabalho de uma fila.
Kanban é baseado em -
- Quadro Kanban (visual e persistente em todo o desenvolvimento)
- Limite de trabalho em andamento (WIP)
- Tempo de espera
Metodologias de teste ágeis
As práticas de teste são bem definidas para cada projeto, seja ágil ou não, para entregar produtos de qualidade. Os princípios de teste tradicionais são frequentemente usados em testes ágeis. Um deles é o Teste Inicial que se concentra em -
Escrever casos de teste para expressar o comportamento do sistema.
Prevenção, detecção e remoção precoce de defeitos.
Garantir que os tipos de teste certos sejam executados no momento certo e como parte do nível de teste certo.
Em todas as metodologias ágeis que discutimos, o teste ágil em si é uma metodologia. Em todas as abordagens, os casos de teste são escritos antes da codificação.
Neste tutorial, vamos nos concentrar no Scrum como a Metodologia de Teste Ágil.
As outras metodologias de teste ágil comumente usadas são -
Test-Driven Development (TDD) - Test-Driven Development (TDD) é baseado na codificação guiada por testes.
Acceptance Test-Driven Development (ATDD) - O Desenvolvimento Orientado ao Teste de Aceitação (ATDD) é baseado na comunicação entre os clientes, desenvolvedores e testadores e conduzido por Critérios de Aceitação e Casos de Teste de Aceitação pré-definidos.
Behavior-Driven Development (BDD) - Em Behavior-Driven Development (BDD), o teste é baseado no comportamento esperado do software que está sendo desenvolvido.
Ciclo de vida de teste ágil
No Scrum, as atividades de teste incluem -
Contribuir para histórias de usuários com base no comportamento esperado do sistema descrito como casos de teste
Planejamento de liberação com base no esforço de teste e defeitos
Planejamento de Sprint com base em histórias de usuários e defeitos
Execução Sprint com Teste Contínuo
Teste de regressão após a conclusão do Sprint
Relatórios de resultados de teste
Teste de automação
O teste é iterativo e sprints com base conforme representado no diagrama abaixo -