Testes Ágeis Malba Jacob Prudente
Objetivos do treinamento 1. Expor os conceitos sobre Testes Ágeis; 2. Testes Ágeis x Testes Tradicionais 3. Testador Ágil; 4. Planejando os Testes; 5. Teste de Regressão; 6. Quadrantes dos Testes Ágeis.
Conceitos de Testes Ágeis
1. Indivíduos e interações; Valores Ágeis 2. Software em funcionamento; 3. Colaboração com o cliente; 4. Responder as mudanças.
Princípios Ágeis 1. Priorizar entrega Entrega contínua gerando maior valor e satisfação ao cliente; 2. Gerar mudanças Prover vantagem competitiva ao cliente; 3. Freqüência de entrega entre 2 semanas a 2 meses; 4. Área de negócio e desenvolvimento trabalhando em conjunto;
Princípios Ágeis 5. Equipe motivada e confiante; 6. Comunicação face a face; 7. Software funcionando é medida de progresso; 8. Ritmo de trabalho adequado; 9. Técnicas e design aprimoradas;
10. Evitar desperdícios; Princípios Ágeis 11. Equipes auto-gerenciáveis; 12. Melhoria contínua (inspeção e adaptação); 13. Documentar apenas o necessários.
Métodos Ágeis 1. Scrum; 2. XP; 3. Etc.
Testar de forma ágil 1. Prover informações rapidamente; 2. Orientar o desenvolvimento; 3. Acompanhar status dos entregáveis; 4. Conhecimento de riscos e benefícios; 5. Automatizar o máximo de testes; 6. Colaborar com a entrega de VALOR aos clientes.
Testes Tradicionais x Testes Ágeis
Testes Tradicionais 1. Desenvolvimento cascata; 2. Testes ao final do desenvolvimento; 3. Requisitos podem estar desatualizados; 4. Reporte de defeitos indevidos (item 3); 5. Documentação extensa; 6. Descumprimento de prazos.
Testes Tradicionais 7. Falta de comprometimento; 8. Teste vira gargalo para entrega do release; 9. Comunicação falha entre as equipes; 10. Acumulo de atividades de correção, desenvolvimento e testes ao final dos prazos.
Testes Ágeis 1. Multidisciplinaridade: Todos devem possuir habilidade para testar; 2. Foco em entregar um produto de qualidade; 3. Busca por agregar valor ao negócio; 4. Compromisso e responsabilidade de toda equipe; 5. Produzir com qualidade;
Testes Ágeis 6. Teste não assegura a qualidade, faz com qualidade; 7. Não apontar defeitos, colaborar para a solução dos defeitos. 8. Corrigir um defeito imediatamente; - Parar a produção; - Identificar e corrigir a causa-raiz; - Retomar a produção.
Testes Ágeis 9. Não há uma fase de teste; 10. Testar assim que implementar; 11. Feedback imediato; 12. Pronto apenas quando Testado; 13. Automatizar o máximo possível ; 14. Regressão para identificar o que deixou de 14. Regressão para identificar o que deixou de funcionar;
Testes Ágeis 15. Testes independentes: - Ambientes complexos; - Sistemas extensos; - Execução de testes pré-release; - Foco em testes mais críticos do negócio; - Viabilizar a automatização dos testes; - Atua em vários projetos.
Testador Ágil
Testador Ágil 1. Ser corajoso (não temer mudanças); 2. Ser colaborativo (técnico e negócio); 3. Busque constate conhecimento do negócio; 4. Ter habilidade técnica e comunicativa; 5. Atitudes proativas na resolução de problemas;
Testador Ágil 6. Facilitador entre Cliente e Desenvolvedor; 7. Ser envolvido do início ao fim das iterações; 8. Estimar todas tarefas das iterações; 9. Especifica testes de aceitação; 10.Executar testes (exploratórios, funcionais, Não-Funcionais, performance, etc.)
Plano de Teste - Ágil 1. Definição de tipos de testes serão executados; 2. Definir responsabilidades; 3. Definir ferramentas a serem utilizadas; 4. Identificar e acompanhar riscos, estabelecendo ações em caso de incidência; 5. Único para cada projeto; 6. Especificar o status de Pronto.
Teste de Regressão - Ágil 1. Identificar defeitos inseridos a partir de mudanças; 2. Executados com freqüência (compilação, diário, semanal, etc.); 3. Testes unitários, componentes, aceitação, comportamento, funcionais, etc. 4. Buscar sempre aumentar a cobertura dos testes automatizados.
Quadrantes de Testes Ágeis
Quadrantes de Testes Ágeis 1. Ajudam na definição do Plano de Teste.
Quadrante 1
Testes Ágeis - Q1 1. Testes de tecnologia que dão respaldo à programação; 2. Testes unitários e de componentes; 3. Base para demais tipos de testes; 4. Auxiliam no entendimento do que o código deve fazer; 5. Fazer mais, mais rápido e com maior qualidade.
Testes Ágeis - Q1 6. Executado pelo desenvolvedor. 7. Unitários: - TDD (Test-Driven Development); - Menor unidade de software testável; - Foco na entrada e saída de dados; - Devem rodar com sucesso ao final do DES.
Testes Ágeis - Q1 8. Componentes: - Tratam componentes isolados; - Verificam as interações entre suas classes; - Lidam com multiplas camadas (BD, arquivos, redes, etc.). 9. Uso de frameworks xunit junto às IDE de DES; 10. Compõe os testes de regressão (automatizados).
Quadrante 2
Testes Ágeis - Q2 1. Testes de regras de negócio que dão respaldo à programação; 2. Testes de aceitação, funcionais e exemplos; 3. Fácil entendimento pelos clientes e integrantes da equipe (Stories); 4. Sempre que possível devem ser automatizados; 5. Uma vez automatizados, farão parte dos testes de 5. Uma vez automatizados, farão parte dos testes de regressão;
Testes Ágeis - Q2 6. Uso de diagramas, mapas mentais, planilhas, etc; 7. Não existem detalhes de implementação; 8. As stories devem expressar: - Quem precisa; - O que é a funcionalidade; - Para que ele serve; - Informações suficientes para seu funcionamento.
9. As stories (INVEST): - Independente; - Negociável; - Valiosa; - Estimável; - Small (Pequena); - Testável. Testes Ágeis - Q2
Testes Ágeis - Q2 10. Funcionais (Automação): - Geração de scripts para execução automatizada; - Reprodução de eventos (mouse, teclado, etc.) - Execução mais lenta; - Vulneráveis a manutenção (ajustes à mudanças); - Selenium, Sikuli, TestComplete, etc.
Testes Ágeis - Q2 11. Aceitação (ATDD - Acceptance Test Driven Development): - Desenvolver dirigido ao requisitos executáveis; - Elaborados antes do desenvolvimento; - Uso de exemplos reais; - Verificação realizadas após a implementação; - FitNesse.
Testes Ágeis - Q2 12. Exemplo (BDD - Behavior Driven Development): - Próximo ao ATDD, porém faz uso de linguagem natural; - Uso de exemplos de comportamentos esperados da aplicação; - Verificação realizada durante a implementação de uma storie; - Jbehave, Cucumber, Rspec, etc.
Testes Ágeis - Q2 Funcionalidade: <descrição da funcionalidade> Como um <usuário/ator> Eu quero <meta a ser alcançada> De modo que <a razão para alcançar a meta> Cenário: <descrição do teste> Dado <um estado conhecido> Quando <um determinado evento ocorre> Então <isso deve ocorrer>
Testes Ágeis - Q2 scenario <descrição do teste>, { given <um estado conhecido>, {...comandos... } when <um determinado evento ocorre>, {...comandos... } then <isso deve ocorrer>, {...comandos... } }
Quadrante 3
Testes Ágeis Q3 1. Testes de regras de negócio que criticam o produto; 2. Testes exploratórios, usabilidade e aceitação (cliente); 3. Complementos aos Q1 e Q2; 4. Realizados após o desenvolvimento; 5. Testes não automatizados em Q1 e Q2; 6. Faz uso da experiência, instinto, habilidade, etc; 7. Visão de um usuário final.
Testes Ágeis Q3 7. Testes Exploratórios: - Execução manual; - Não possui roteiros específicos; - Aleatórios; - Requer criatividade, experiência, intuição e técnica; - Extremamente utilizado em sistemas legados; - Utilizados para situações que requerem maior atenção e complexos; - Executados em áreas de frágeis e de alto risco do software;
Testes Ágeis Q3 8. Testes de Usabilidades: - Personas: Faz uso dos diversos perfis de usuários; Verifica as diversas necessidades destes usuários; Faz uso da experiência esperada para cada tipo de usuário; Uso devido, Inexperientes, Manipuladores, Mal intencionados, etc. - Navegação: Seqüência de telas; Links quebrados; Comportamentos indevidos, etc.
Testes Ágeis Q3 9. Testes de Aceitação (Cliente): - Prover envolvimento do cliente; - Ganhar a confiança do cliente; - Obter um feedback do cliente; - Corrigir aspectos não identificados antes da entrega em produção; - Evitar danos à imagem ou financeiros ao cliente.
Quadrante 4
Testes Ágeis Q4 1. Testes de tecnologia que criticam o produto; 2. Testes performance, segurança, recuperação, confiabilidade, stress, etc.; 3. Abrange os requisitos não-funcionais; 4. Busca deficiências técnicas no produto; 5. Envolvimento de toda equipe; 6. Requer especialistas para determinados tipos de testes; 7. Planejar testes conforme os riscos do sistema.
Definindo os Testes Release Planning 1. Todas atividades devem estar estimadas; - Rever estimativas sempre que necessário. 2. Refinamento constante do plano de testes; - Escopo, prioridades, riscos, etc. 3. Estruturar o ambiente de testes; - Ferramentas, infraestrutura, banco de dados, etc.
Definindo os Testes Release Planning 4. Especificar a documentação a ser produzida; 5. Definir envolvimento dos clientes; 6. Obter metas de qualidade a ser atingida.
Concluindo os Testes 1. Momento anterior à entrega do release; 2. Realização de pequenos ajustes necessários; 3. A duração dependerá de: maturidade da equipe; utilização de ferramentas; ciclo de desenvolvimento definido. 4. Execução de testes exploratórios, sistemas, aceitação, etc. 5. Liberando release e comemorar!
Pirâmide de Automação
Dúvidas? Perguntas?
Obrigado! E-mail: malbajp@gmail.com.br malba@qualiis.com.br Celular: (62) 9181-2157