TDC 2011 Automaçãode testes com BDD e ATDD

2.779 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
11 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

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

Nenhuma nota no slide

TDC 2011 Automaçãode testes com BDD e ATDD

  1. 1. (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 Palestra Automação de testes de aceitação com BDD (Behavior Driven Development) e ATDD (Acceptance Test Driven Development) www.qualister.com.br
  2. 2. Direitos autoraiswww.qualister.com.br
  3. 3. Instrutor Cristiano Caetano Email: cristiano.caetano@qualister.com.br Apresentações: slideshare.net/cristianocaetano Blog: cristianocaetano.wordpress.com É 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).www.qualister.com.br
  4. 4. Twitter twitter.com/c_caetanowww.qualister.com.br
  5. 5. Facebookfacebook.com/ccristiano.caetanowww.qualister.com.br
  6. 6. Apresentaçãowww.slideshare.net/cristianocaetanowww.qualister.com.br
  7. 7. Sobre a Qualister• Fundação: 2007.• Sobre a Qualister: A Qualister é uma empresa nacional, constituída a partir da união de profissionais qualificados e certificados na área de testes e qualidade de software, com o objetivo de integrar, implementar e implantar soluções com base nas melhores práticas do mercado e normas internacionais.• Colaboradores: A Qualister é composta por colaboradores pós-graduados e certificados na área de testes (CBTS, CSTE) com larga experiência na indústria de Tecnologia da Informação.• Área de atuação: A Qualister é uma empresa especializada em serviços de qualidade e teste de software. Tem como linhas de atuação consultoria em teste/qualidade de software, outsourcing (terceirização dos serviços através da alocação de profissionais) e treinamentos.• Localização: A Qualister está localizada em Biguaçu na Grande Florianópolis/SC e está instalada no CITEB – Centro de Inovação Tecnologia de Biguaçu no campus da universidade UNIVALI. www.qualister.com.br
  8. 8. Parcerias internacionais Soluções para automação, profilling e gestão Soluções para testes de performance Soluções de apoio a avaliação de usabilidadewww.qualister.com.br
  9. 9. Tópico Testes unitários e TDD (Desenvolvimento dirigido por testes)www.qualister.com.br
  10. 10. Testes unitários Classe Setup Mocks/Stubs Exercise Método(a, b, c): d Verify Teardown http://xunitpatterns.com/Four%20Phase%20Test.htmlwww.qualister.com.br
  11. 11. Testes unitárioswww.qualister.com.br
  12. 12. Test Driven Development (Desenvolvimento dirigido por testes)• Test Driven Development é uma prática de desenvolvimento de software em que os testes unitários automatizados são escritos antes do código.www.qualister.com.br
  13. 13. Tópico BDD (Desenvolvimento dirigido por comportamento)www.qualister.com.br
  14. 14. Behavior Driven Development (Desenvolvimento dirigido por comportamento) • Dan North, criador do BDD (Desenvolvimento dirigido por comportamento) percebeu que os testes deveriam ser descritos em sentenças/frases representando o comportamento esperado pelo sistema ao invés de nomes de métodos Testes descritos em nomes de métodos TestComprarPassagemPromocionalSomenteIdaParaUmAdultoVooDisponivel TestComprarPassagemPromocionalIdaEVoltaParaUmAdultoVooDisponivel TestComprarPassagemFlexSomenteIdaParaUmAdultoVooDisponivelwww.qualister.com.br
  15. 15. Behavior Driven Development (Desenvolvimento dirigido por comportamento)Estória: Compra de passagem via WEBComo um (As a) Profissional da área de testesEu quero (I want to) Ir de avião para FlorianópolisPara que (So that) Eu possa participar de um evento sobre testes Teste de aceitação: Comprar passagem com sucesso Dado que (Given) Existem voos disponíveis para o trecho POA/FLN Existem assentos disponíveis nos voos Quando (When) Eu escolho a origem igual a Porto Alegre Eu escolho o destino igual a Florianópolis (...) Então (Then) A compra é realizada com sucesso O assento escolhido é reservado www.qualister.com.br
  16. 16. Behavior Driven Development (Desenvolvimento dirigido por comportamento) • Como transformar os testes escritos em linguagem natural em testes/especificação automatizados?www.qualister.com.br
  17. 17. Behavior Driven Development (Desenvolvimento dirigido por comportamento)• No BDD, os testes de aceitação são descritos em linguagens naturais próximas do domínio do negócio usando DSL´s. – DSL (Domain Specific Language) – Linguagens específicas de um domínio.• Exemplo em terminologia náutica: – Proa = extremidade frontal do navio – Popa = extremidade posterior do navio – Bombordo = lado esquerdo do navio – Estibordo = lado direito do naviowww.qualister.com.br
  18. 18. Behavior Driven Development (Desenvolvimento dirigido por comportamento)• SQL (Structured Query Language) é um exemplo clássico de DSL: – SELECT * FROM clientes WHERE codigo < 100 – UPDATE clientes SET id = 51 WHERE nome = „José da Silva‟ – SELECT * FROM clientes WHERE nome LIKE „%José% www.qualister.com.br
  19. 19. Behavior Driven Development (Desenvolvimento dirigido por comportamento)• Para testes de aceitação usamos DSTL (Domain Specific Test Language) – Linguagens específicas de teste de um domínio.www.qualister.com.br
  20. 20. Behavior Driven Development (Desenvolvimento dirigido por comportamento)• Para testes de aceitação usamos DSTL (Domain Specific Test Language) – Linguagens específicas de teste de um domínio.www.qualister.com.br
  21. 21. Behavior Driven Development (Desenvolvimento dirigido por comportamento)• Os testes descritos em linguagem natural são interpretados por ferramentas especializadas que, por sua vez, exercitam o código/API do sistema para demonstrar se o comportamento foi atendido. Código API Interface gráfica Codigo de suporte Testes de aceitação “fixture” que em linguagem encapsula a natural na filosofia implementação da Etc... BDD ação descrita em linguagem natural www.qualister.com.br
  22. 22. Behavior Driven Development (Desenvolvimento dirigido por comportamento) 2 Codigo de suporte “fixture” que encapsula a implementação da ação descrita em linguagem natural 1 Testes de aceitação em linguagem natural na filosofia BDD 3 Código/API do sistema sendo exercitado para validar um comportamentowww.qualister.com.br
  23. 23. Behavior Driven Development (Desenvolvimento dirigido por comportamento)• Existem dezenas de ferramentas que implementam a filosofia BDD no nível da unidade/código http://en.wikipedia.org/wiki/Behavior_Driven_Development http://blog.dannorth.net/introducing-bdd/www.qualister.com.br
  24. 24. Behavior Driven Development (Desenvolvimento dirigido por comportamento) http://cukes.info/www.qualister.com.br
  25. 25. Behavior Driven Development (Desenvolvimento dirigido por comportamento) http://www.concordion.org/www.qualister.com.br
  26. 26. Behavior Driven Development (Desenvolvimento dirigido por comportamento)www.qualister.com.br http://jbehave.org/
  27. 27. Behavior Driven Development (Desenvolvimento dirigido por comportamento) http://storyq.codeplex.com/www.qualister.com.br
  28. 28. Behavior Driven Development (Desenvolvimento dirigido por comportamento) http://www.thoughtworks-studios.com/agile-test-automation/features-benefitswww.qualister.com.br
  29. 29. Tópico ATDDwww.qualister.com.br
  30. 30. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)• O ATDD é uma abordagem ágil de desenvolvimento onde a construção do software é guiada pelos testes de aceitação.• Nesta técnica, os testes de aceitação são criados de maneira colaborativa e descritos em uma linguagem comum a todos os membros da equipe. Dessa forma, toda a equipe compartilha o mesmo entendimento do que deve ser feito, as restrições e as definições de "Pronto".• Os testes são descritos em uma linguagem natural similar a linguagem do negócio e deve ser facilmente entendida pelo cliente.• Os testes (critérios de aceitação) devem ser executáveiswww.qualister.com.br
  31. 31. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)• Etapas do ATDD: – Discutir (Discuss) – Refinar (Distill) – Desenvolver (Develop)www.qualister.com.br
  32. 32. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) – Discutir (Discuss) • Discutir colaborativamente com a equipe as restrições, assunções, premissas, expectativas, etc para definir os critérios de aceitação E se não houver assentos disponíveis no voo? Devemos exibir uma mensagem de alerta para o usuário? Como vamos validar os mecanismos de segurança?www.qualister.com.br
  33. 33. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) – Refinar (Distill) • Refinar os critérios de aceitação em um conjunto concreto de cenários/exemplos de uso descrevendo o comportamento esperado da aplicação em uma linguagem comum a todos os membros da equipe Teste de aceitação: Comprar passagem com sucesso Dado que (Given) Existem voos disponíveis para o trecho POA/FLN Existem assentos disponíveis nos voos Quando (When) Eu escolho a origem igual a Porto Alegre Eu escolho o destino igual a Florianópolis (...) Então (Then) A compra é realizada com sucesso O assento escolhido é reservadowww.qualister.com.br
  34. 34. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) – Desenvolver (Develop) • Transformar os testes de aceitação (descrevendo o comportamento esperado do software) em testes/especificação automatizados Testes de aceitação em linguagem natural na filosofia BDD Testes automatizadoswww.qualister.com.br
  35. 35. Principais vantagens Cenários de uso Exemplos Expectativas de uso Assunções Limitações Linguagem Ubíqua Premissas Restriçõeswww.qualister.com.br
  36. 36. Principais vantagens Teste = Requisito Requisito = Testewww.qualister.com.br
  37. 37. Principais vantagens• Testes de aceitação automatizados são usados como medida de progresso e indicador dos níveis de qualidade Funcionalidade www.qualister.com.br
  38. 38. Tópico Casewww.qualister.com.br
  39. 39. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)• O problema – Sistema desenvolvido em tecnologia legada – Falta de arquitetura (OO, Frameworks, etc) – Equipe de testes sem experiência em programação• A solução proposta – Testes na filosofia BDD/ATDD – Criação de um Framework de testes sob medida para permitir a criação de testes BDD/ATDD em um sistema com tecnologia legadawww.qualister.com.br
  40. 40. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)• Ferramentas de desenvolvimento dirigido por testes normalmente executam testes de comportamento no nível da unidade/código.• Para que os testes escritos em linguagem natural possam ser executados, é necessário que os programadores codifiquem “fixtures”, ou seja, o código de suporte que implementa nos métodos das classes do software as ações descritas em linguagem natural. Código API Interface gráfica Codigo de suporte Testes de aceitação “fixture” que em linguagem natural na filosofia implementa a ação Etc... descrita em BDD linguagem natural www.qualister.com.br
  41. 41. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)• Ferramentas de desenvolvimento dirigido por testes normalmente executam testes de comportamento no nível da unidade/código.• Para que os testes escritos em linguagem natural possam ser executados, é necessário que os programadores codifiquem “fixtures”, ou seja, o código de suporte que implementa nos métodos das classes do software as ações descritas em linguagem natural. Código API Sistemas Interface Testes de aceitação Legados gráfica Codigo de suporte “fixture” que em linguagem natural na filosofia implementa a ação Etc... descrita em BDD linguagem natural www.qualister.com.br
  42. 42. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) Testes de aceitação em linguagem Interface gráfica do natural na filosofia sistema BDDwww.qualister.com.br
  43. 43. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação) Framework BDD Framework BDD que Localiza Testes de aceitação utiliza o TestComplete dinamicamente os em linguagem como meio para objetos da Interface natural na filosofia interagir com a gráfica do sistema e BDD Interface Gráfica do executa ações e valida sistema os resultados esperadoswww.qualister.com.br
  44. 44. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)• O Framework ATDD foi desenvolvido em VBScript usando orientação a objetos.• É possível usar o Framework ATDD para testar outras plataformas (.NET, WEB, Delphi, etc) com pequenos ajustes.• O Framework ATDD encapsula toda a complexidade da automação. O usuário/testador/ programador/etc escreve os testes apenas usando a DSTL (Domain Specific Test Language). www.qualister.com.br
  45. 45. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)• Foi embutida no Framework uma DSTL (Domain Specific Test Language) – Linguagens específicas de teste de um domínio com foco em ações imperativas de interação com a interface gráfica. Abaixo alguns exemplos:No processo "NomeDoProcesso"Na janela "NomeDaJanela"Eu vejo o texto "Texto" no rótulo "NomeDoRotulo"Eu clico na caixa de verificação "NomeDaCaixaDeVerificação"Eu escolho a opção "Opção" na caixa de seleção "NomeDaCaixaDeSeleção"Eu digito "Texto" na caixa de seleção "NomeDaCaixaDeSeleção"Eu clico no menu "Menu"Eu vejo o texto "Texto" no campo "NomeDoCampo"Eu preencho "Texto" no campo "NomeDoCampo"Eu clico no botao "NomeDoBotão"Eu executo a consulta sql "ExpressãoSQL" e vejo o resultado "Resultado" no campo "Campo"Eu armazeno o valor do objeto "NomeDoObjeto" na variavel "NomeDaVariavel" www.qualister.com.br
  46. 46. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)• Os testes de aceitação são organizados em pastas de acordo com os grupos de testes similares (suítes ou roteiros de testes)www.qualister.com.br
  47. 47. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)• Os testes de aceitação são escritos em formato texto puro.www.qualister.com.br
  48. 48. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)www.qualister.com.br
  49. 49. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)www.qualister.com.br
  50. 50. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)www.qualister.com.br
  51. 51. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)• No TestComplete os testes são organizados e executados em suítes ou em regressões completas conforme a necessidade do testador/usuário. www.qualister.com.br
  52. 52. Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitação)• Relatórios de execução são gerados automaticamente pelo TestComplete www.qualister.com.br
  53. 53. Dúvidas?• Dúvidas – Email: cristiano.caetano@qualister.com.br – Telefone: (48) 3285 5615 / 9645 5506www.qualister.com.br

×