Globalcode – Open4education
Trilha – Stadium - Domingo
Automação de testes em projetos ágeis
Cristiano Caetano - Qualister
Globalcode – Open4education
Palestrante
Cristiano Caetano
cristiano.caetano@qualister.com.br
É certificado CBTS pela ALATS...
Globalcode – Open4education
twitter.com/c_caetano
Globalcode – Open4education
Teste de software tradicional
Versão 1 Versão 2 Versão 3
A B A B
C
A B
C
D E
Globalcode – Open4education
Teste de software tradicional
Versão 1 Versão 2 Versão 3
A B A B
C
A B
C
D E
TESTES
TESTES
TES...
Globalcode – Open4education
Teste de software tradicional
Versão 1 Versão 2 Versão 3
A B A B
C
A B
C
D E
TESTES
TESTES
TES...
Globalcode – Open4education
Teste de software tradicional
Versão 1 Versão 2 Versão 3
A B A B
C
A B
C
D E
TESTES
TESTES
TES...
Globalcode – Open4education
Cultura predominante
No meu
computador
funcionou!
Não está
escrito no
requisito!
Ninguém pediu...
Globalcode – Open4education
Cultura predominante
No meu
computador
funcionou!
Não está
escrito no
requisito!
Ninguém pediu...
Globalcode – Open4education
Características do teste de software tradicional
É uma fase separada do desenvolvimento
É real...
Globalcode – Open4education
Metodologias ágeis
www.motivatedphotos.com
Globalcode – Open4education
Metodologias ágeis
www.motivatedphotos.com
Globalcode – Open4education
Metodologias ágeis
www.motivatedphotos.com
Globalcode – Open4education
Características do teste de software ágil
Teste faz parte do processo de desenvolvimento
Teste...
Globalcode – Open4education
Teste de software ágil
O teste para ser considerado ágil deve ser Freqüente e Automatizado
Ver...
Globalcode – Open4education
Teste de software ágil
Por que é dado um grande enfoque em
automação de testes nas metodologia...
Globalcode – Open4education
Teste de software ágil
Grande parte práticas de teste/qualidade ágeis foram
criadas sob a pers...
Globalcode – Open4education
Camadas
Testando camadas diferentes
Globalcode – Open4education
Interface gráfica
Código/API’s
Testando em camadas diferentes
Testes em todas as camadas da ar...
Globalcode – Open4education
Testes funcionais e de
aceitação automatizados
Testes unitários
Testando em camadas diferentes...
Globalcode – Open4education
Testes unitários
Os desenvolvedores
testam
Testando em camadas diferentes
Testes em todas as c...
Globalcode – Open4education
Código/API: Testes unitários
http://xunitpatterns.com/Four%20Phase%20Test.html
Classe
Método(a...
Globalcode – Open4education
Código/API: Testes unitários
Globalcode – Open4education
Testes funcionais
automatizados
Os testadores testam
Testando em camadas diferentes
Testes em ...
Globalcode – Open4education
Interface Gráfica: Record/Playback com reconhecimento
de objetos
Globalcode – Open4education
Interface Gráfica: Record/Playback usando DDT (Data-
driven test)
Globalcode – Open4education
Testes de aceitação
automatizados
Os usuários testam
Testando em camadas diferentes
Testes em ...
Globalcode – Open4education
Testes de aceitação
automatizados
Os usuários testam
Testando em camadas diferentes
Testes em ...
Globalcode – Open4education
Interface Gráfica: Keyword-Driven Tests
Testes automatizados desenvolvidos em tabelas
com o vo...
Globalcode – Open4education
Interface Gráfica: Keyword-Driven Tests
Globalcode – Open4education
BDD
Dan North usando um utilitário chamado agiledox percebeu que os testes
unitários poderiam ...
Globalcode – Open4education
User Stories
– Como um (As a)
• Papel
– Eu quero (I want to)
• Ação
– Para que (So that)
• Val...
Globalcode – Open4education
Testes de aceitação
– Dado que (Given)
• Usado para determinar o estado do sistema antes da
ex...
Globalcode – Open4education
Documentação colaborativa
Cenários de
uso
Exemplos
de uso
Limitações
RestriçõesPremissas
Assun...
Globalcode – Open4education
Documentação executável
Documentação executável
A convenção Given/When/Then permite a descriçã...
Globalcode – Open4education
Cucumber (Ruby)
http://cukes.info/
Globalcode – Open4education
Cucumber (Ruby)
http://cukes.info/
FIXTURE
(Código de
suporte)
Globalcode – Open4education
Pyccuracy
http://github.com/heynemann/pyccuracy
Globalcode – Open4education
Pyccuracy
http://github.com/heynemann/pyccuracy
Globalcode – Open4education
TestComplete
Globalcode – Open4education
Dúvidas
Cristiano Caetano
cristiano.caetano@qualister.com.br
Próximos SlideShares
Carregando em…5
×

Automação de testes em projetos ágeis

2.043 visualizações

Publicada em

Cristiano Caetano

Twitter: twitter.com/c_caetano
Email: ccristiano.caetano@gmail.com
Apresentações: slideshare.net/cristianocaetano
Blog: cristianocaetano.wordpress.com

Publicada em: Tecnologia

Automação de testes em projetos ágeis

  1. 1. Globalcode – Open4education Trilha – Stadium - Domingo Automação de testes em projetos ágeis Cristiano Caetano - Qualister
  2. 2. Globalcode – Open4education Palestrante Cristiano Caetano cristiano.caetano@qualister.com.br É certificado CBTS pela ALATS. Diretor técnico da Qualister com mais de 10 anos de experiência, já trabalhou na área de qualidade e teste de software para grandes empresas como Zero G, DELL e HP Invent. É colunista na área de Teste e Qualidade de software do site linhadecodigo.com.br e autor dos livros "CVS: Controle de Versões e Desenvolvimento Colaborativo de Software" e "Automação e Gerenciamento de Testes: Aumentando a Produtividade com as Principais Soluções Open Source e Gratuitas". Participante ativo da comunidade de teste de software brasileira, é o criador e mantenedor do portal TestExpert: A sua comunidade gratuita de teste e qualidade de software (www.testexpert.com.br).
  3. 3. Globalcode – Open4education twitter.com/c_caetano
  4. 4. Globalcode – Open4education Teste de software tradicional Versão 1 Versão 2 Versão 3 A B A B C A B C D E
  5. 5. Globalcode – Open4education Teste de software tradicional Versão 1 Versão 2 Versão 3 A B A B C A B C D E TESTES TESTES TESTES TESTES TESTES TESTES
  6. 6. Globalcode – Open4education Teste de software tradicional Versão 1 Versão 2 Versão 3 A B A B C A B C D E TESTES TESTES TESTES
  7. 7. Globalcode – Open4education Teste de software tradicional Versão 1 Versão 2 Versão 3 A B A B C A B C D E TESTES TESTES TESTES DEFEITOS REMANESCENTES DEFEITOS REMANESCENTES DEFEITOS REMANESCENTES
  8. 8. Globalcode – Open4education Cultura predominante No meu computador funcionou! Não está escrito no requisito! Ninguém pediu para verificar isso! Compilou, tá pronto! Ninguém vai digitar isso nesse campo! Esse erro não é na tela que eu estou trabalhando! Por que testar? Libera para o cliente e vamos ver o que acontece!
  9. 9. Globalcode – Open4education Cultura predominante No meu computador funcionou! Não está escrito no requisito! Ninguém pediu para verificar isso! Compilou, tá pronto! Ninguém vai digitar isso nesse campo! Esse erro não é na tela que eu estou trabalhando! Por que testar? Libera para o cliente e vamos ver o que acontece!
  10. 10. Globalcode – Open4education 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 testam Cultura: Nós X Eles
  11. 11. Globalcode – Open4education Metodologias ágeis www.motivatedphotos.com
  12. 12. Globalcode – Open4education Metodologias ágeis www.motivatedphotos.com
  13. 13. Globalcode – Open4education Metodologias ágeis www.motivatedphotos.com
  14. 14. Globalcode – Open4education 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 Cultura: A qualidade é responsabilidade de todos
  15. 15. Globalcode – Open4education Teste de software ágil O teste para ser considerado ágil deve ser Freqüente e Automatizado Versão 1 Versão 2 Versão 3 A B A B C A B C D E TESTES AUTOMATIZADOS TESTES AUTOMATIZADOS TESTES AUTOMATIZADOS
  16. 16. Globalcode – Open4education Teste de software ágil Por que é dado um grande enfoque em automação de testes nas metodologias ágeis? A automação oferece uma rede de segurança por meio de regressões completas A automação viabiliza ciclos curtos de entrega A automação oferece feedback contínuo A automação pode fazer parte de um ciclo de integração contínua A automação libera as pessoas para realizarem tarefas mais criativas ao invés de terem que executar testes manuais, enfadonhos e repetitivos
  17. 17. Globalcode – Open4education Teste de software ágil Grande parte práticas de teste/qualidade ágeis foram criadas sob a perspectiva do desenvolvedor: Testes unitários Análise estática de código Integração contínua Programação em par Refactoring
  18. 18. Globalcode – Open4education Camadas Testando camadas diferentes
  19. 19. Globalcode – Open4education Interface gráfica Código/API’s Testando em camadas diferentes Testes em todas as camadas da arquitetura (de dentro para fora e de fora para dentro)
  20. 20. Globalcode – Open4education Testes funcionais e de aceitação automatizados Testes unitários Testando em camadas diferentes Testes em todas as camadas da arquitetura (de dentro para fora e de fora para dentro)
  21. 21. Globalcode – Open4education Testes unitários Os desenvolvedores testam Testando em camadas diferentes Testes em todas as camadas da arquitetura (de dentro para fora e de fora para dentro)
  22. 22. Globalcode – Open4education Código/API: Testes unitários http://xunitpatterns.com/Four%20Phase%20Test.html Classe Método(a, b, c): d Setup Exercise Verify Teardown Mocks
  23. 23. Globalcode – Open4education Código/API: Testes unitários
  24. 24. Globalcode – Open4education Testes funcionais automatizados Os testadores testam Testando em camadas diferentes Testes em todas as camadas da arquitetura (de dentro para fora e de fora para dentro)
  25. 25. Globalcode – Open4education Interface Gráfica: Record/Playback com reconhecimento de objetos
  26. 26. Globalcode – Open4education Interface Gráfica: Record/Playback usando DDT (Data- driven test)
  27. 27. Globalcode – Open4education Testes de aceitação automatizados Os usuários testam Testando em camadas diferentes Testes em todas as camadas da arquitetura (de dentro para fora e de fora para dentro)
  28. 28. Globalcode – Open4education Testes de aceitação automatizados Os usuários testam Testando em camadas diferentes Testes em todas as camadas da arquitetura (de dentro para fora e de fora para dentro) ?
  29. 29. Globalcode – Open4education Interface Gráfica: Keyword-Driven Tests Testes automatizados desenvolvidos em tabelas com o vocabulário de palavras-chave predefinidas para as mais diversas ações ou operações de negócio. Tela Objeto Palavra-chave Valor TelaDeLogin usuario digitar “Pedro” TelaDeLogin senha digitar “1h5ks80” TelaDeLogin botao clicar TelaInicial Validar texto “Bem-vindo Pedro”
  30. 30. Globalcode – Open4education Interface Gráfica: Keyword-Driven Tests
  31. 31. Globalcode – Open4education BDD Dan North usando um utilitário chamado agiledox percebeu que os testes unitários poderiam ser representados por meio do comportamento esperado http://blog.objectmentor.com/articles/2008/11/27/the-truth-about-bdd http://blog.dannorth.net/introducing-bdd/
  32. 32. Globalcode – Open4education User Stories – Como um (As a) • Papel – Eu quero (I want to) • Ação – Para que (So that) • Valor/Benefício gerado pelo sistema
  33. 33. Globalcode – Open4education Testes de aceitação – Dado que (Given) • Usado para determinar o estado do sistema antes da execução do teste – Quando (When) • Usado para descrever as ações/interações com o sistema (passos do teste) – Então (Then) • Usado para verificar o resultado esperado
  34. 34. Globalcode – Open4education Documentação colaborativa Cenários de uso Exemplos de uso Limitações RestriçõesPremissas Assunções Expectativas
  35. 35. Globalcode – Open4education Documentação executável Documentação executável A convenção Given/When/Then permite a descrição do conceito de input/process/output. Com formalidade suficiente é possível descrever os testes de maneira que uma ferramenta possa interpretar e executá-los. http://blog.dannorth.net/introducing-bdd/ http://en.wikipedia.org/wiki/Behavior_Driven_Development
  36. 36. Globalcode – Open4education Cucumber (Ruby) http://cukes.info/
  37. 37. Globalcode – Open4education Cucumber (Ruby) http://cukes.info/ FIXTURE (Código de suporte)
  38. 38. Globalcode – Open4education Pyccuracy http://github.com/heynemann/pyccuracy
  39. 39. Globalcode – Open4education Pyccuracy http://github.com/heynemann/pyccuracy
  40. 40. Globalcode – Open4education TestComplete
  41. 41. Globalcode – Open4education Dúvidas Cristiano Caetano cristiano.caetano@qualister.com.br

×