O documento discute testes de unidade automatizados e desenvolvimento orientado a testes (Test-Driven Development - TDD). O TDD envolve escrever testes unitários antes de escrever o código, para garantir que o código atenda aos requisitos funcionais e seja testável. O ciclo do TDD inclui escrever um teste, escrever o código mínimo para fazer o teste passar e refatorar o código. A abordagem do TDD ajuda a aumentar a confiabilidade, documentar requisitos e reduzir defeitos.
2. Software quality factors
Testability
“Disposition to support acceptance criteria and
evaluation of performance. Such a characteristic
must be built-in during the design phase if the
product is to be easily testable; a complex design
leads to poor testability”
From Wikipedia
5. Unit test
“In computer programming, unit testing is a
method by which individual units of source
code are tested to determine if they are fit for
use. A unit is the smallest testable part of an
application”
From Wikipedia
17. Ciclo TDD
• Escreva o teste
– Garante que todo o código funcional é testável
– Prove uma especificação funcional para o código
– Ajuda a pensar no desenho
– Garante que o código é tangível
• Escreva o código
– Complete o requerimento
– Escreva a solução mais simples
– Deixe as melhorias para um passo seguinte
– O código serve somente para passar no teste
• Reescreva (Refactoring)
– Faça a limpeza no código
– Aplique as melhores práticas de codificação
– Repense o desenho
– Delete o código desnecessário
18. Importante!
Não escreva o código em sua cabeça antes de
escrever o teste!!
Lembre-se: está escrevendo um teste unitário
caixa preta
19. Por que aplicar TDD
• Confiabilidade
– Aumenta confiança no código
– Elimina o medo de refactoring
• Documenta os requisitos (no código)
• Teste de regressão = Estabilidade = Qualidade
20. Por que aplicar TDD
0
1
2
3
4
5
6
7
8
9
10
0%
20%
40%
60%
80%
100%
Requirements Coding Integration Testing Support
Thousand$s
%defectscreated
% of Defects Introduced Cost to Fix a Defect
The pain is here! This is too late…