Going from Monolithic Applications ...
by tecprog2010
Cláudia Goetz
(48) 4052-9536 / 9540 contato@qualister.com.br• Terceirização de profissionais• Consultoria de teste• Avaliação de usabilidade• Automação de testes• Testes de performance• Treinamentos Fundamentos Testes ágeis www.qualister.com.br 2.
SCRUMhttp://www.scrumalliance.org/http://www.slideshare.net/adrianotavares/gesto-gil-de-projetoshttp://www.slideshare.net/Ridlo/engenharia-de-software-100-agil-scrum-fdd-e-xp www.qualister.com.br 13.
Extreme ProgrammingValores Princípios Práticas primárias Práticas corolárias• Comunicação • Auto-semelhança • Ambiente Informativo •Análise da Raiz do Problema• Coragem • Benefício Mútuo • Build de Dez Minutos • Base de Código Unificada• Feedback • Diversidade • Ciclo Semanal • Código Coletivo• Respeito • Economia • Ciclo Trimestral • Código e Testes• Simplicidade • Falha • Desenvolvimento Orientado a • Continuidade da Equipe • Fluidez Testes • Contrato de Escopo • Humanismo • Design Incremental Negociável • Melhoria • Equipe Integral • Envolvimento do Cliente Real • Oportunidade • Folga • Equipes que Encolhem • Passos de Bebê • Histórias • Implantação Diária • Qualidade • Integração Contínua • Implantação Incremental • Redundância • Programação em Par • Pagar Por Uso • Reflexão • Sentar-se Junto • Responsabilidade Aceita • Trabalho Energizado http://www.extremeprogramming.org/map/project.html www.qualister.com.br 14.
Características do teste de software tradicional BOEHM, Barry. Software Engineering Economics. Prentice Hall PTR, 1981 CRAIG, R.D., JASKIEL, S. P., "Systematic Software Testing", Artech House Publishers, Boston, 2002.www.qualister.com.br 15.
Características do teste de software tradicional• É uma fase separada do desenvolvimento• É realizado por um equipe independente• Manual• Informal• Superficial• Enfoque apenas na interface gráfica• Ocorre no final de uma liberação ou no final do projeto• Última (ou única) peneira da qualidade• Os programadores desenvolvem e os testadores testamwww.qualister.com.br 16.
Características do teste de software tradicional Cultura: Nós X Eleswww.qualister.com.br 17.
Características do teste de software ágil• Teste faz parte do processo de desenvolvimento• Teste usado para complementar a documentação• Teste usado para compartilhar o conhecimento• Testes em todas as camadas da arquitetura (de dentro para fora e de fora para dentro)• Os programadores testam, os testadores testam, os usuários testam (Test-Infected)www.qualister.com.br 18.
Características do teste de software ágil• Cultura: A qualidade é responsabilidade de todos www.motivatedphotos.comwww.qualister.com.br 19.
Qualidade e teste de software sob a perspectiva ágil• Práticas/Princípios mais relevantes: – Desenvolvimento orientado a testes – Refactoring – Testes unitários – TDD – BDD – Programação em par – Integração contínua – Testes de aceitaçãowww.qualister.com.br 20.
Tópico O papel do testador em projetos ágeiswww.qualister.com.br 21.
Papel do testador em projetos ágeis• As metodologias ágeis foram criadas sob a perspectiva do desenvolvimento.• As práticas de testes são todas sob a perspectiva do desenvolvimento: – Testes unitários – Programação em par – Integração continua – EtcO papel do testador não é claramente definidowww.qualister.com.br 22.
Papel do testador em projetos ágeis• As principais atividades desempenhadas por um testador num projeto ágil: – Clarificar estórias e esclarecer suposições; – Apoiar na escrita dos testes de aceitação; – Prover estimativas para as atividades de testes; – Automatizar os testes funcionais; – Planejar//Executar testes avançados (performance, segurança, usabilidade, etc); – Prover feedback contínuo sobre os níveis de qualidade. XP Testing Without XP: Taking Advantage of Agile Testing Practiceswww.qualister.com.br 23.
Desafios do testador ágil• Papel não reconhecido• Tentar usar as práticas tradicionais de testes em projetos ágeis• Dificuldade em interagir ou colaborar com um time multifuncionalwww.qualister.com.br 24.
Tópico • Testes manuais em projetos ágeiswww.qualister.com.br 25.
Testes manuais em projetos ágeis Não existewww.qualister.com.br 26.
As duas faces do teste ágil Testes confirmatórios Testes unitários Testes de aceitação automatizados Integração contínua Testes exploratórios Testes de cenários/transações de uso Usabilidade/Performance/Segurança/Etc Testes investigativos Adaptado de: Agile Testing and Quality Strategies: Discipline Over Rhetoric por Scott W. Ambler Adaptado de: Agile testing quadrants por Brian Marickwww.qualister.com.br 27.
Testes exploratórios• O teste exploratório é, na sua definição mais básica, a criação e a execução ao mesmo tempo de um teste. Quando se realiza um teste exploratório, normalmente o testador não tem informações detalhadas sobre o que vai testar e como vai testar. O testador se baseia na sua experiência, assim como no conhecimento que ele vai adquirindo sobre o aplicativo durante a execução do teste exploratório. A partir dessa perspectiva, podemos afirmar que o teste exploratório é uma atividade iterativa e empírica de exploração que exige idas e vindas num processo de investigação contínuo onde a intuição, a criatividade e a experiência do testador são indispensáveis para garantir a eficiência do teste. Cristiano Caetano: Testes exploratórios de A a Z http://www.linhadecodigo.com.br/artigo/1102/Testes-Explorat%C3%B3rios-de-A-a-Z.aspxwww.qualister.com.br 28.
Tópico • Automação de testes em projetos ágeiswww.qualister.com.br 29.
Teste de software ágil: Cedo, freqüente e automatizado "Cada minuto entre, quando um programador achar que uma estória estáterminada e realmente provar que a estória está terminada de verdade por meio detestes de aceitação, é um minuto em que o projeto está fora de controle" Ron Jeffries (tradução livre) http://www.extremeprogramming.org/map/loops.htmlwww.qualister.com.br 30.
Teste de software ágil: Cedo, freqüente e automatizado Teste é mais do que uma fase separada, é uma atividade que se integra ao desenvolvimento. Teste contínuo é a única maneira de garantir progresso contínuo. Wikipédia sobre Agile Testing Tradução Livrewww.qualister.com.br 31.
Pirâmide dos testes tradicionais Testes funcionais manuais Foco na interface gráfica Baseado no modelo V ou Cascata Testes automatizados Foco na interface gráfica via capture/playback Testes unitários e de integracão Poucos ou inexistentes Baseado em: Mike Cohn - Test Automation Pyramidwww.qualister.com.br 32.
Pirâmide dos testes ágeis Testes funcionais manuais Poucos ou nenhum Testes automatizados Foco em testes de API Poucos testes baseados na interface gráfica Testes unitários e de integracão Abundantes (100% de cobertura) Criados pelos desenvolvedores Baseado em: Mike Cohn - Test Automation Pyramidwww.qualister.com.br 33.
Testando em camadas diferentes• Testando camadas diferenteswww.qualister.com.br 34.
Testando em camadas diferentes• Testes em todas as camadas da arquitetura (de dentro para fora e de fora para dentro) Código API Interface gráficawww.qualister.com.br 35.
Automação de testes• Tipos de testes automatizados – Record-Playback testing – Data-driven testing – Picture-driven testing – Model based-driven testing – Keyword-driven testing – Behavior-driven testingwww.qualister.com.br 36.