Teste de software

560 visualizações

Publicada em

Testes de software com JUnit (TDD) e JBehave (BDD).

Publicada em: Software
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

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

Nenhuma nota no slide

Teste de software

  1. 1. Prof. Nécio de Lima Veras http://lattes.cnpq.br/8284657916723590 Testes de software Nécio de Lima Veras necio.veras@ifce.edu.br
  2. 2. Leituras recomendadasLeituras recomendadas
  3. 3. “A grande maioria das pessoas já teve alguma experiência com um software que não funcionou como esperado. Softwares que não funcionam corretamente podem levar a muitos problemas, incluindo financeiro, tempo e reputação das empresas. Podendo, inclusive, chegar a influenciar na integridade das pessoas” [ISTQB 2011]. TestesTestes
  4. 4.  Podemos associar a qualidade de um software à quantidade de falhas percebidas no mesmo  O teste de software ajuda a medir e/ou garantir essa qualidade  Níveis de Teste  Unidade (componente)  Integração (interface entre componentes)  Sistema (comportamento)  Aceitação (apropriado para uso) TestesTestes
  5. 5.  Modos de Testar  Manual  Ex.: Inspeção manual de Código  Automático  Ex.: Asserção com JUnit  No contexto de testes automáticos se sobressaem duas abordagens:  TDD (Testing-Driven Development) ou Desenvolvimento dirigido por testes  BDD (Behavior-Driven Design) ou Projeto guiado por comportamento TestesTestes
  6. 6.  TDD se apoia nos passos:  Escreva o teste, para a funcionalidade, antes de estar implementada (os testes irão falhar)  Escreva o código de modo a fazer os teste passar  Refatore o código  Repita o processo  Um exemplo de TDD  Testar um método que recebe como parâmetro dois números retorna a sua soma TestesTestes
  7. 7. TDDTDD
  8. 8. TDDTDD
  9. 9.  1 – Método retorna inicialmente zero (ainda não escrevemos o teste) Step by stepStep by step
  10. 10. Step by StepStep by Step  2– Escrevemos o teste
  11. 11. Step by StepStep by Step  3 – Rodamos o Teste (vermelho, pois a funcionalidade ainda não está implementada)
  12. 12. Step by StepStep by Step  4 – Implementamos o código
  13. 13. Step by StepStep by Step  5 – Rodamos os testes (agora verdes)
  14. 14. Step by StepStep by Step  6 – Refatoramos o código e rodamos os testes (devem continuar verdes)
  15. 15. Testes (comportamentais)Testes (comportamentais)  Sobre BDD podemos fazer as seguintes considerações [Fox e Patterson 2012]:  BDD faz perguntas sobre comportamentos antes e durante o desenvolvimento, visando reduzir falhas na comunicação dentro do projeto.  Requisitos são escritos como histórias de usuários. São criadas descrições simples de como a aplicação deve ser utilizada.  BDD se concentra no comportamento da aplicação versus a implementação da aplicação e os testes são conduzidos utilizando TDD.
  16. 16. Fluxo padrão do BDDFluxo padrão do BDD
  17. 17. Fluxo padrão do BDDFluxo padrão do BDD
  18. 18. Fluxo padrão do BDDFluxo padrão do BDD
  19. 19. Fluxo padrão do BDDFluxo padrão do BDD
  20. 20. ExemploExemplo  Uma narrativa simples: uma confirmação de inscrição para um evento (ENUCOMP) faz o participante concorrer a um sorteio.
  21. 21. Classe que mapeia a históriaClasse que mapeia a história
  22. 22. Classe que testa tudoClasse que testa tudo
  23. 23. ResultadosResultados
  24. 24. Exercícios (TDD)Exercícios (TDD) ● Use o TDD em Java com Junit para criar testes unitários automatizados de uma classe chamada Carro com as seguintes funcionalidades: – Ligar / Desligar o motor; – Aceleração de velocidade; – Frenagem; – Buzina (método deve retornar uma String); – Consumo de combustível.
  25. 25. ReferênciasReferências ● ISTQB. (2011). Certified Tester Foundation Level Syllabus, version 2011. ● MAGALHÃES, R. et al. Fundamentos de Engenharia de Software para o Desenvolvimento de Software como Serviço através do uso de Metodologias Ágeis. In Anais da Jornada de Informática do Maranhão e Escola Regional de Computação dos Estados do Ceará, Maranhão e Piauí. São Luís-MA, 2012.

×