O documento discute testes de software, incluindo níveis de teste, modos de teste e abordagens como TDD (Desenvolvimento Dirigido por Testes) e BDD (Projeto Guiado por Comportamento). Ele fornece exemplos de como aplicar TDD e BDD, destacando a importância dos testes para medir a qualidade do software e reduzir falhas.
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. 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. 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. 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
14. Step by StepStep by Step
6 – Refatoramos o código e rodamos os testes (devem continuar verdes)
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.
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. 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.