Como os testes irão se modificar com o advento das metodologias ágeis

2.511 visualizações

Publicada em

Um número cada vez maior de empresas vem adotando metodologias ágeis de desenvolvimento de software, como o Scrum e o XP. Entretanto, muitas vezes as empresas adotam alguma metodologia ágil sem pensar em como modificar o processo tradicional de testes, que pode não funcionar bem em um ambiente ágil. Nessa palestra pretende-se demonstrar alguns aspectos que afetam os testes em processos ágeis e que, se tratados com antecedência, aumentam a chance de sucesso dos testes nesses ambientes.

0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.511
No SlideShare
0
A partir de incorporações
0
Número de incorporações
292
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Como os testes irão se modificar com o advento das metodologias ágeis

  1. 1. Como os testes irão se modificar com o advento das metodologias ágeis Eduardo Habib Bechelane Maia habib@dcc.ufmg.br
  2. 2. Testes ágeis Sumário – Introdução – Testes em metodologias ágeis • Estratégias de teste • Aumento dos períodos de estresse • Equipe de testes • Comunicação • Iterações curtas • Automação • Perfil dos testadores • Volume de mudanças • Testabilidade – Conclusão 2
  3. 3. Introdução "Manifesto Para o Desenvolvimento Ágil de Software“ – reunião entre 17 gurus da comunidade de desenvolvimento em 2001 – Estação de esqui nas montanhas de Utah, Estados Unidos. • Alternativas para melhorar produtividade de desenvolvimento de software • Conjunto de princípios comuns em projetos de sucesso. 3
  4. 4. Introdução Princípios básicos valorizados nas metodologias ágeis: – Indivíduos e interações entre eles, ao invés de processos e ferramentas – Software funcionando ao invés de documentação compreensiva e detalhada. – Colaboração com os clientes ao invés de negociação de contratos. – Adaptação às mudanças ao invés de seguir um plano inicial. 4
  5. 5. Introdução Cada vez mais empresas declaram que utilizam Processos ágeis: – Existem poucas empresas que utilizam processos realmente ágeis. – Termo tem sido utilizado para qualquer projeto com iterações curtas. Empresas têm sido pressionadas para produzir melhor e mais rápido – Processos ágeis – Bons relatos sobre processos ágeis • Poucos relatos de como deve ser reorganizada a equipe de testes. 5
  6. 6. Estratégias de testes em processos ágeis Definição de algumas estratégias Novos desafios: O processo tradicional não funciona. – Desafios possuem duas origens: • Interpretações das pessoas. • Das próprias metodologias ágeis; Rex Black recomenda as estratégias: – Testes baseados em riscos. – Testes de regressão automatizados – Testes reativos (dinâmicos) 6
  7. 7. Equipes multifuncionais Membros da equipe idealmente devem estar aptos a realizar todas as tarefas. – Acaba havendo algum grau de especialização. – Maioria das equipes ágeis não consegue ser totalmente multifuncional. Separação entre testes e desenvolvimento? – Equilíbrio entre equipe independente e integrada. • Requisito deve ser preferencialmente testado na mesma iteração. – Separar completamente não faz sentido. • Sprint para testes e desenvolvimento. 7
  8. 8. Equipes multifuncionais Separação entre testes e desenvolvimento? – Vantagens e desvantagens da atuação dentro da Sprint: • Vantagens: – Foco nas tarefas relacionadas ao Sprint; – Tempo utilizado com foco nos objetivos da Sprint. • Desvantagens: – Perda de liberdade; – Visão reduzida do sistema. 8
  9. 9. Aumento dos períodos de estresse Aumento de pressão excessivo pode causar perda de produtividade e maior rotatividade. Períodos estressantes de teste normalmente são próximos às entregas. – Mais entregas, maior estresse. – Testes baseados em riscos – Algumas metodologias ágeis sugerem claramente evitar-se horas extras. 9
  10. 10. Relacionamento entre membros da equipe Bom relacionamento é essencial. Compartilhar planejamento e tomada de decisões – Comprometimento com as metas Pessoas trabalhando mais próximas – Diminuição do número de defeitos reportados • Diminuição de conflitos. 10
  11. 11. Relacionamento entre membros da equipe Pessoas trabalhando mais próximas – Testadores conversam sobre testes de unidade – Testes realizados pelos testadores tendem a não se sobrepor Função principal do testador: – Feedback rápido. • É mais importante a execução dos testes do que a sua modelagem. 11
  12. 12. Realização de todos os testes em iterações curtas Desenvolvimento ágil: – Minimiza riscos desenvolvendo em iterações curtas • Desenvolvimento incremental – E os testes que demoram muito tempo? • Segurança? Desempenho? Confiabilidade? • Fases de testes que começam em uma iteração e terminam em outra. 12
  13. 13. Automação dos testes em processos ágeis É ainda mais necessário. Nem tudo deve ser automatizado. – Aplicação correta. • Retorno excepcional. Por que muitos projetos de automação falharam? – Ferramentas de testes não eram maduras. – Automação irracional. – Testes puramente gravados não funcionaram. – Desconhecimento dos problemas. – Despreparo da equipe. 13
  14. 14. Perfil dos testadores Ao adotar processo ágil deve-se possuir política clara em relação à equipe – Experiência e estabilidade da equipe – Evitar participação em múltiplos projetos Analistas de teste têm papel diferenciado – Maior interação com o cliente e desenvolvedor – Maior participação de revisões • Inserção de informações necessárias aos testes. • Aperfeiçoamento dos requisitos. – Envolvimento em fases iniciais 14
  15. 15. Lidando com o volume das mudanças Processos ágeis encorajam mudanças e incentivam comunicação face a face. – É inevitável que algumas mudanças não sejam documentadas. Desafios reais para a equipe e manutenção de documentos como as especificação de testes. – Testes baseados em riscos. – Testes automatizados. Aumento do número de erros inválidos. – Monitoramento pelo gerente • Melhoria da comunicação (aprox. 5% de defeitos inválidos é normal). 15
  16. 16. Testes de unidade Crescimento da importância em processos ágeis. – Capacidade de detecção de defeitos é limitada • 25% dos defeitos (Caper Jones) • Equipe de testes independente chega a encontrar 85% dos defeitos Pressão por entregas – Testes de unidade precários • Testes baseados em riscos. 16
  17. 17. Documentação em processos ágeis Documentação ruim: – Resposta natural: Testes exploratórios • Entretanto, documentação ruim deveria ser rara. – Um dos principais mal entendidos. – Equilíbrio entre documentação e reuniões. Fato: Documentação é menor. – Participação efetiva do usuário. Basear testes na documentação é praticamente impossível. 17
  18. 18. Recrutamento de testadores Boa comunicação: – Assume maior importância – É mais fácil suprir deficiências técnicas do que ensinar um “nerd” a se comunicar. Testadores interessados em desenvolver novas habilidades. 18
  19. 19. Testabilidade Testabilidade é a medida de do quão bem e eficiente uma aplicação pode ser testada. – Mais fácil de testar -> Mais testes no mesmo tempo – Áreas de maior risco costumam ser mais difíceis de testar. – Não é questão de escolha, é necessidade. 19
  20. 20. Localização da equipe Idealmente: – Membros da equipe devem sentar próximos • Facilidade de comunicação. Como tratar os casos em que equipes atuam geograficamente separados? – Skype – MSN – Videoconferência 20
  21. 21. Conclusão Testes de software estão se alinhando mais às necessidades dos negócios. Testes por uma equipe independente são melhores para encontrar defeitos. Maior flexibilidade dos membros da equipe. Habilidades necessárias aos testadores estão mudando. É importante uma automação melhor e mais eficiente. Expectativas muito altas para as metodologias ágeis – Risco grande – Benefícios a longo prazo. 21
  22. 22. Conclusão Nem todo mundo precisa ser ágil. É preciso tomar cuidado para não espremer os testes Testes baseados em riscos. Se as prédios e casas quebrassem tão freqüentemente, não existiriam empresas de construção civil. Testadores querem atingir o mesmo objetivo de toda a equipe. 22
  23. 23. Referências Testing Experience: The Magazine for Professional Testers, Agile Testing, Setembro de 2009. WATKINS, John. Agile Testing: How to Succeed in an Extreme Testing Environment. Cambridge university Press, 2009 CRISPIN, Lisa. Testing Extreme Programming. Addison-Wesley. 2002 PERRY, E., William. Effective Methods for Software Testing. Wiley Press, Inc.. New York 1995. 23
  24. 24. Referências Farrell-Vinay, Peter, Manage Software Testing. Auerbach Publications., 2008 COHN, Mike. Agile Estimating and Planning. Prentice Hall. 2005 PRESSMAN, R. S., “Software Engineering: A Practitioner’s Approach”, McGraw-Hill, 6th edição, Nova York, NY, 2005. GILB, Tom. Agile Specification Quality Control, em Testing Experience Magazine. Março de 2009. 24
  25. 25. Referências BLACK, Rex. Managing the Testing Process, Microsoft Press, Junho de 1999. 25

×