Este artigo descreve a importância dada ao teste de software pelas metodologias ágeis. Ao longo do artigo, discutimos porque o teste é considerado a mola mestra que viabiliza a implementação de muitos princípios ágeis, assim como, porque o teste é usado para reduzir o tempo gasto pelos desenvolvedores em depuração e correção de defeitos. Além disso, são apresentados os tipos de testes executados pela perspectiva do desenvolvedor, cliente e testador.
Em que situação o tema útil:
Este artigo destina-se a diretores de tecnologia, desenvolvedores e profissionais da área de teste e qualidade de software interessados em conhecer as principais diferenças entre a abordagem de testes usada em metodologias de desenvolvimento tradicionais em relação ao teste ágil. Além disso, este artigo tem o objetivo de apresentar o corpo de conhecimento mínimo necessário para testadores e analistas de qualidade interessados em contribuir para times de desenvolvimento que adotam métodos ágeis.
Resumo DevMan:
Este artigo descreve a importância dada ao teste de software pelas metodologias ágeis. Ao longo do artigo, discutimos porque o teste é considerado a mola mestra que viabiliza a implementação de muitos princípios ágeis, assim como, porque o teste é usado para reduzir o tempo gasto pelos desenvolvedores em depuração e correção de defeitos. Além disso, são apresentados os tipos de testes executados pela perspectiva do desenvolvedor, cliente e testador.
O desenvolvimento ágil é fruto da constatação feita, de forma independente, por diversos profissionais na área de engenharia de software de que, apesar de terem aprendido segundo a cartilha tradicional, só conseguiam minimizar os riscos associados ao desenvolvimento de software pensando e agindo de forma muito diferente do que tradicionalmente está nos livros. Estes profissionais, a maioria veteranos consultores para projetos de softwares, decidiram reunir-se no início de 2001 durante um workshop realizado em Snowbird, Utah, EUA.
Embora cada envolvido tivesse suas próprias práticas e teorias preferidas, todos concordavam que, em suas experiências prévias, os projetos de sucesso tinham em comum um pequeno conjunto de princípios. Com base nisso eles criaram o Manifesto para o Desenvolvimento Ágil de Software, freqüentemente chamado apenas de Manifesto Ágil. Os valores descritos no Manifesto Ágil priorizavam:
· Indivíduos e interação entre eles ao invés de processos e ferramentas;
· Software em funcionamento ao invés de documentação abrangente;
· Colaboração com o cliente ao invés de negociação de contratos;
· Responder a mudanças ao invés de seguir estritamente um plano.
Adicionalmente, o Manifesto ágil preconizava os seguintes princípios fundamentais:
· Nossa maior prioridade é satisfazer o cliente através da entrega contínua de software de valor;
· Aceitar mudanças de requisitos (processos ágeis se adéquam a mudanças, para que o cliente possa tirar vantagens competitivas);
· Entregar software funcionando com frequência, na escala de semanas até meses, com preferência aos períodos mais curtos;
· Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em conjunto e diariamente, durante todo o curso do projeto;
· Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho;
· O método mais eficiente e eficaz de transmitir informações para um time de desenvolvimento é através de uma conversa cara a cara;
· Software funcional é a medida primária de progresso;
· Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e clientes, devem ser capazes de manter indefinidamente, passos constantes;
· Contínua atenção à excelência técnica e bom design, aumenta a agilidade;
· Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito;
· As melhores arquiteturas, requisitos e designs emergem de times auto-organizáveis, motivados e confiantes;
· Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.
...