Metodologia Ágil em Teste de Software
O que é metodologia ágil em testes?
Metodologia Ágil significa uma prática que promove iteração contínua de desenvolvimento e testes durante todo o ciclo de vida de desenvolvimento de software do projeto. No modelo Ágil de teste de software, as atividades de desenvolvimento e teste são simultâneas, ao contrário do modelo em cascata.
O que é Desenvolvimento Ágil de Software?
O Desenvolvimento ágil de software A metodologia é um dos processos mais simples e eficazes para transformar uma visão de uma necessidade de negócios em soluções de software. Ágil é um termo usado para descrever abordagens de desenvolvimento de software que empregam planejamento contínuo, aprendizado, melhoria, colaboração em equipe, desenvolvimento evolutivo e entrega antecipada. Encoraja respostas flexíveis à mudança.
O desenvolvimento ágil de software enfatiza quatro valores fundamentais.
- Interações individuais e de equipe sobre processos e ferramentas
- Software que trabalha sobre uma documentação completa
- Colaboração do cliente sobre a negociação do contrato
- Respondendo à mudança seguindo um plano
Modelo ágil versus modelo em cascata
Os modelos Agile e Waterfall são dois métodos diferentes para o processo de desenvolvimento de software. Embora sejam diferentes em sua abordagem, ambos os métodos às vezes são úteis, dependendo do requisito e do tipo de projeto.
Modelo ágil | Modelo de Cachoeira |
---|---|
Metodologia ágil na definição de testes de software: metodologias ágeis propõem abordagem incremental e iterativa para design de software | Modelo em cascata: O desenvolvimento do software flui sequencialmente do ponto inicial ao ponto final. |
O Processo ágil em testes de software é dividido em modelos individuais nos quais os designers trabalham | O processo de design não é dividido em modelos individuais |
O cliente tem oportunidades antecipadas e frequentes de observar o produto e tomar decisões e fazer alterações no projeto | O cliente só consegue ver o produto no final do projeto |
O modelo ágil em testes é considerado não estruturado em comparação ao modelo em cascata | O modelo em cascata é mais seguro porque é muito orientado ao planejamento |
Pequenos projetos podem ser implementados muito rapidamente. Para grandes projetos, é difícil estimar o tempo de desenvolvimento. | Todos os tipos de projetos podem ser estimados e concluídos. |
O erro pode ser corrigido no meio do projeto. | Só no final todo o produto é testado. Se o erro de requisito for encontrado ou alguma alteração precisar ser feita, o projeto deverá começar do início |
O processo de desenvolvimento é iterativo e o projeto é executado em iterações curtas (2 a 4) semanas. O planejamento é muito menor. | O processo de desenvolvimento é faseado, e a fase é muito maior que a iteração. Cada fase termina com a descrição detalhada da próxima fase. |
A documentação tem menos prioridade do que desenvolvimento de software | A documentação é uma prioridade máxima e pode até ser usada para treinar a equipe e atualizar o software com outra equipe |
Cada iteração tem sua própria fase de testes. Permite implementar testes de regressão sempre que novas funções ou lógicas são lançadas. | Somente após a fase de desenvolvimento é que a fase de testes é executada porque as partes separadas não são totalmente funcionais. |
Nos testes ágeis, quando uma iteração termina, os recursos entregáveis do produto são entregues ao cliente. Novos recursos podem ser usados logo após o envio. É útil quando você tem um bom contato com os clientes. | Todos os recursos desenvolvidos são entregues de uma só vez após a longa fase de implementação. |
Testadores e desenvolvedores trabalham juntos | Os testadores trabalham separadamente dos desenvolvedores |
Ao final de cada sprint, é realizada a aceitação do usuário | A aceitação do usuário é realizada no final do projeto. |
Requer comunicação estreita com os desenvolvedores e análise conjunta de requisitos e planejamento | O desenvolvedor não envolve requisitos e processos de planejamento. Normalmente, os atrasos entre os testes e a codificação |
Verifique também: - Agile Vs Waterfall: Conheça a diferença entre as metodologias
Processo Ágil
Confira abaixo Metodologia ágil processo para entregar sistemas bem-sucedidos rapidamente.
Existem vários métodos ágeis presentes em testes ágeis, e estão listados abaixo:
Scrum
SCRUM é um método de desenvolvimento ágil que se concentra especificamente em como gerenciar tarefas dentro de um ambiente de desenvolvimento baseado em equipe. Basicamente, o Scrum é derivado da atividade que ocorre durante uma partida de rugby. Scrum acredita na capacitação da equipe de desenvolvimento e defende o trabalho em equipes pequenas (digamos, 7 a 9 membros). Agile e Scrum consistem em três funções e suas responsabilidades são explicadas a seguir:
-
Scrum Master
- Scrum Master é responsável pela formação da equipe, reunião do sprint e remove obstáculos ao progresso
-
Proprietário do produto
-
O Product Owner cria o backlog do produto, prioriza o backlog e é responsável pela entrega da funcionalidade em cada iteração
-
-
Time Scrum
-
A equipe gerencia seu próprio trabalho e organiza o trabalho para concluir o sprint ou ciclo
-
Backlog de produtos
Este é um repositório onde os requisitos são rastreados com detalhes sobre o número de requisitos (histórias de usuário) a serem concluídos para cada versão. Deve ser mantido e priorizado pelo Product Owner e deve ser distribuído à equipe scrum. A equipe também pode solicitar uma adição, modificação ou exclusão de um novo requisito
Práticas do Scrum
As práticas são descritas detalhadamente:
Fluxo do processo das Metodologias Scrum:
Fluxo do processo de teste scrum é como se segue:
- Cada iteração de um scrum é conhecida como Sprint
- O backlog do produto é uma lista onde todos os detalhes são inseridos para obter o produto final
- Durante cada Sprint, as principais histórias de usuários do backlog do produto são selecionadas e transformadas em Sprint atraso
- A equipe trabalha no backlog definido do sprint
- A equipe verifica o trabalho diário
- No final do sprint, a equipe entrega a funcionalidade do produto
Programação Extrema (XP)
A técnica de Extreme Programming é muito útil quando há demandas ou requisitos em constante mudança por parte dos clientes ou quando eles não têm certeza sobre a funcionalidade do sistema. Defende “lançamentos” frequentes do produto em ciclos curtos de desenvolvimento, o que inerentemente melhora a produtividade do sistema e também introduz um ponto de verificação onde quaisquer requisitos do cliente podem ser facilmente implementados. A XP desenvolve software mantendo o cliente no target.
Os requisitos de negócios são reunidos em termos de histórias. Todas essas histórias ficam guardadas em um local chamado estacionamento.
Nesse tipo de metodologia, as liberações são baseadas em ciclos mais curtos denominados Iterações com intervalo de 14 dias. Cada iteração inclui fases como codificação, teste de unidade e teste de sistema, onde em cada fase alguma funcionalidade menor ou maior será construída no aplicativo.
Fases da programação eXtreme:
Existem 6 fases disponíveis no método Agile XP, e elas são explicadas a seguir:
Planeamento
-
Identificação de stakeholders e patrocinadores
-
Requisitos de infraestrutura
-
Segurança informações relacionadas e coleta
-
Acordos de Nível de Serviço e suas condições
Análise
-
Captura de histórias no estacionamento
-
Priorize histórias no estacionamento
-
Esfregando histórias para estimativa
-
Definir Iteração SPAN(Tempo)
-
Planejamento de recursos para equipes de desenvolvimento e controle de qualidade
Design
-
Divisão de tarefas
-
Preparação do cenário de teste para cada tarefa
-
Estrutura de automação de regressão
Execução
-
Codificação
-
Execução de cenários de testes manuais
-
Geração de relatório de defeitos
-
Conversão de casos de teste de regressão manual em automação
-
Revisão da iteração intermediária
-
Revisão do fim da iteração
Embrulho
-
Pequenos lançamentos
-
Demonstrações e análises
-
Desenvolva novas histórias com base na necessidade
-
Melhorias de processo com base em comentários de revisão de final de iteração
Fechamento
-
Lançamento piloto
-
Formação
-
Lançamento de produção
-
Garantia de SLA
-
Revveja a estratégia SOA
-
Suporte de Produção
Existem dois storyboards disponíveis para acompanhar o trabalho diariamente, e eles estão listados abaixo para referência.
-
Cartão de história
-
Esta é uma forma tradicional de coletar todas as histórias em um quadro na forma de notas para monitorar as atividades diárias de XP. Como esta atividade manual envolve mais esforço e tempo, é melhor mudar para um formulário online.
-
-
Roteiro on-line
-
A ferramenta online Storyboard pode ser usada para armazenar as histórias. Várias equipes podem usá-lo para finalidades diferentes.
-
Metodologias de Cristal
A Metodologia Crystal é baseada em três conceitos
-
Fretamento: Várias atividades envolvidas nesta fase são a criação de uma equipe de desenvolvimento, a realização de uma análise preliminar de viabilidade, o desenvolvimento de um plano inicial e o ajuste fino da metodologia de desenvolvimento.
-
Entrega cíclica: A fase principal de desenvolvimento consiste em dois ou mais ciclos de entrega, durante os quais o
- A equipe atualiza e refina o plano de lançamento
- Implementa um subconjunto de requisitos por meio de uma ou mais iterações de integração de teste do programa
- O produto integrado é entregue a usuários reais
- Revvisão do plano do projeto e metodologia de desenvolvimento adotada
- Embrulhar: As atividades realizadas nesta fase são a implantação no ambiente do usuário, revisões e reflexões pós-implantação são realizadas.
Método de Desenvolvimento de Software Dinâmico (DSDM)
DSDM é um Desenvolvimento de Aplicação Rápida (RAD) para desenvolvimento de software e fornece uma estrutura ágil de entrega de projetos. O aspecto importante do DSDM é que os usuários devem estar envolvidos ativamente e as equipes recebem o poder de tomar decisões. A entrega frequente do produto torna-se o foco ativo do DSDM. As técnicas usadas no DSDM são
- Tempo Boxing
- Regras do MoSCoW
- Prototipagem
O projeto DSDM consiste em 7 fases
- Pré-projeto
- Estudo de viabilidade
- Estudo de negócios
- Iteração do modelo funcional
- Projetar e construir iteração
- Implementação
- Pós-projeto
Desenvolvimento Orientado a Recursos (FDD)
Este método concentra-se em recursos de “projeto e construção”. Ao contrário de outros métodos ágeis em engenharia de software, o FDD descreve fases de trabalho muito específicas e curtas que devem ser realizadas separadamente por recurso. Inclui passo a passo de domínio, inspeção de projeto, promoção para construção, inspeção de código e design. FDD desenvolve produto seguindo o target
- Modelagem de objetos de domínio
- Desenvolvimento por recurso
- Propriedade de componente/classe
- Equipes de recursos
- Vistorias
- Gerenciamento da Configuração
- Builds Regulares
- Visibilidade do progresso e dos resultados
Desenvolvimento Lean de Software
O método Lean de desenvolvimento de software é baseado no princípio “Produção Just in time”. Tem como objetivo aumentar a velocidade de desenvolvimento de software e diminuir custos. O desenvolvimento Lean pode ser resumido em sete etapas.
- Eliminando Lixo
- Amplificando o aprendizado
- Adiar o compromisso (decidir o mais tarde possível)
- Entrega antecipada
- Capacitando a equipe
- Building Integrity
- Otimize o todo
Kanban
Kanban Surgiu originalmente da palavra japonesa que significa um cartão contendo todas as informações necessárias para serem feitas no produto em cada etapa do seu caminho até a conclusão. Esta estrutura ou método é bastante adotado no método de teste de software, especialmente em conceitos Agile.
Scrum versus Kanban
Scrum | Kanban |
---|---|
Na técnica scrum, os testes devem ser divididos para que possam ser concluídos em um sprint | Nenhum tamanho de item específico é prescrito |
Prescreve um backlog de produto priorizado | A priorização é opcional |
A equipe Scrum se compromete com uma determinada quantidade de trabalho para a iteração | O compromisso é opcional |
O gráfico Burndown é prescrito | Nenhum tamanho de item específico é prescrito |
Entre cada sprint, um quadro de scrum é redefinido | Um quadro Kanban é persistente. Limita o número de itens no estado do fluxo de trabalho |
Não é possível adicionar itens à iteração em andamento | Ele pode adicionar itens sempre que a capacidade estiver disponível |
WIP limitado indiretamente | WIP limitado diretamente |
Iterações com timebox prescritas | Iterações com timebox opcionais |
Verifique também: - Kanban vs. Scrum: Qual é a diferença?
Métricas ágeis
As métricas que podem ser coletadas para o uso eficaz do Agile são:
-
Fator de Arrasto
-
Esforço em horas que não contribuem para a meta do sprint
-
O fator de arrasto pode ser melhorado reduzindo o número de recursos compartilhados, reduzindo a quantidade de trabalho não contribuinte
-
Novas estimativas podem ser aumentadas pela porcentagem do fator de arrasto -Nova estimativa = (estimativa antiga + fator de arrasto)
-
-
Velocidade
-
Quantidade de pendências (histórias de usuários) convertidas em funcionalidade entregável do sprint
-
-
Nº de testes unitários adicionados
-
Intervalo de tempo necessário para concluir a compilação diária
-
Bugs detectados em uma iteração ou em iterações anteriores
-
Vazamento de defeito de produção