Download - Desvios comuns em TDD
![Page 1: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/1.jpg)
ERROS COMUNS EM TEST-DRIVEN DEVELOPMENT
Mauricio [email protected]
@mauricioaniche
Thursday, June 24, 2010
![Page 2: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/2.jpg)
DESVIOS COMUNS EM TEST-DRIVEN DEVELOPMENT
Mauricio [email protected]
@mauricioaniche
Thursday, June 24, 2010
![Page 3: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/3.jpg)
MAS O QUE É TDD MESMO?
Thursday, June 24, 2010
![Page 4: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/4.jpg)
É SOBRE TESTES?
Thursday, June 24, 2010
![Page 5: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/5.jpg)
Thursday, June 24, 2010
![Page 6: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/6.jpg)
Thursday, June 24, 2010
![Page 7: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/7.jpg)
Thursday, June 24, 2010
![Page 8: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/8.jpg)
Thursday, June 24, 2010
![Page 9: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/9.jpg)
NÃO!
Thursday, June 24, 2010
![Page 10: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/10.jpg)
É SOBRE DESIGN!
Thursday, June 24, 2010
![Page 11: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/11.jpg)
QUE CONFUSÃO! :-(
Thursday, June 24, 2010
![Page 12: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/12.jpg)
Test-driven development (TDD) is the craft of producing automated tests for production code, and using that process to drive design and programming. For every tiny bit of functionality in the production
code, you first develop a test that specifies and validates what the code will do. You then produce
exactly as much code as will enable that test to pass. Then you refactor (simplify and clarify) both the
production code and the test code.
www.agilealliance.org/programs/ roadmaps/Roadmap/tdd/tdd_index.htm
Thursday, June 24, 2010
![Page 13: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/13.jpg)
Thursday, June 24, 2010
![Page 14: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/14.jpg)
É SIMPLES!
Thursday, June 24, 2010
![Page 15: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/15.jpg)
MAS NÃO É FÁCIL!
Thursday, June 24, 2010
![Page 16: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/16.jpg)
PROGRAMADORES ÀS VEZES COMETEM DESVIOS...
Thursday, June 24, 2010
![Page 17: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/17.jpg)
FATORES DE INFLUÊNCIA
Thursday, June 24, 2010
![Page 18: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/18.jpg)
QUESTIONÁRIO
Thursday, June 24, 2010
![Page 19: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/19.jpg)
NÃO VER O TESTE FALHAR
Thursday, June 24, 2010
![Page 20: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/20.jpg)
0
13
25
38
50
Rarely
Sometimes
Regularly
Frequently
Always
Never
•55% nunca esquece ou esquece raramente de ver o teste falhar ;
•24% esquece regularmente ou frequentemente;
•4% sempre esquece;
Thursday, June 24, 2010
![Page 21: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/21.jpg)
ESQUECER DE REFATORAR
Thursday, June 24, 2010
![Page 22: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/22.jpg)
0
10
20
30
40
Never
Rarely
Sometimes
Regularly
Frequently
Always
•44% dos programadores experientes e 52% dos iniciantes cometem esse erro regularmente ou frequentemente;
•1% sempre esquece.
Thursday, June 24, 2010
![Page 23: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/23.jpg)
REFATORAR OUTRO TRECHO DE CÓDIGO
ENQUANTO TRABALHA EM UM TESTE
Thursday, June 24, 2010
![Page 24: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/24.jpg)
0
10
20
30
40
Never
Rarely
Sometimes
Regularly
Frequently
Always
•40% refatora outro trecho de código regularmente ou frequentemente;
•5% refatora o tempo todo;
•6% nunca refatora;
•38% dos experientes fazem isso regularmente ou frequentemente. No entendo, 44% nunca faz ou faz apenas raramente.
Thursday, June 24, 2010
![Page 25: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/25.jpg)
NÃO COMEÇAR PELO TESTE MAIS SIMPLES
POSSÍVEL
Thursday, June 24, 2010
![Page 26: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/26.jpg)
0
13
25
38
50
Never
Rarely
Sometimes
Regularly
Frequently
Always
•33% não começam pelo teste mais simples possível regularmente ou frequentemente;
•2% sempre cometem o erro;
•10% nunca cometem.
Thursday, June 24, 2010
![Page 27: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/27.jpg)
RODAR APENAS O TESTE CORRENTE
Thursday, June 24, 2010
![Page 28: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/28.jpg)
•16% rodam apenas o teste corrente regularmente ou frequentemente;
•2% cometem o erro o tempo todo;
•25% nunca esquecem de rodar a suíte inteira;
•Programadores experientes cometem esse erro mais frequentemente do que os iniciantes (21% contra 15%).
0
10
20
30
40
Never
Rarely
Sometimes
Regularly
Frequently
Always
Thursday, June 24, 2010
![Page 29: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/29.jpg)
ESCREVER TESTESCOMPLEXOS
Thursday, June 24, 2010
![Page 30: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/30.jpg)
•50% escrevem cenários complexos regularmente ou frequentemente;
•4% escreve o tempo todo;
•3% nunca escreve;
•35% dos programadores experientes e 53% dos iniciantes fazem isso regularmente ou frequentemente;0
10
20
30
40
Never
Rarely
Sometimes
Regularly
Frequently
Always
Thursday, June 24, 2010
![Page 31: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/31.jpg)
NÃO IMPLEMENTAR O CÓDIGO MAIS SIMPLES
QUE FAÇA O TESTE PASSAR
Thursday, June 24, 2010
![Page 32: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/32.jpg)
•35% dos iniciantes e 17% dos experientes tendem a não implementar o código mais simples que faça o teste passar regularmente ou frequentemente;
0
13
25
38
50
Never
Rarely
Sometimes
Regularly
Frequently
Always
Thursday, June 24, 2010
![Page 33: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/33.jpg)
NOMES NÃO CLAROSPARA OS TESTES
Thursday, June 24, 2010
![Page 34: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/34.jpg)
•32% usam nomes não claros regularmente ou frequentemente;
•1% usam nomes não claros o tempo todo;
•14% nunca usam e 45% nunca usa ou usa raramente.
30
0
10
20
30
40
Never
Rarely
Sometimes
Regularly
Frequently
Always
Thursday, June 24, 2010
![Page 35: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/35.jpg)
NÃO REFATORAR CÓDIGO DE TESTE
Thursday, June 24, 2010
![Page 36: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/36.jpg)
•23% não refatora o código de teste regularmente ou frequentemente;
•1% sempre esquece de refatorar ;
•16% nunca comete o erro;
32
0
13
25
38
50
Never
Rarely
Sometimes
Regularly
Frequently
Always
Thursday, June 24, 2010
![Page 37: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/37.jpg)
DESVIOS MAIS COMUNSDesvio Média/Desvio Padrão Correlação de Pearson Frequente ou sempre
Escrever testes complexos 2.58 / 1.21 -0.1 26.61%
Esquecer de refatorar 2.37 / 1.17 -0.03 19.72%
Refatorar outro trecho de código 2.34 / 1.36 -0.13 23.85%
Não comecar pelo teste mais simples possível 2.00 / 1.28 -0.09 15.14%
Não implementar o código mais simples que faz o teste passar 1.90 / 1.19 -0.24 11.01%
Nomes de testes não claros 1.84 / 1.25 -0.02 11.01%
Não ver o teste falhar 1.75 / 1.35 -0.22 14.22%
Não refatorar o código de teste 1.67 / 1.19 -0.21 8.72%
Rodar apenas o teste corrente 1.40 / 1.20 -0.01 5.96%
33
Thursday, June 24, 2010
![Page 38: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/38.jpg)
34
PRECISO SEGUIR A RISCAO TEMPO TODO?
Thursday, June 24, 2010
![Page 39: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/39.jpg)
35
O QUE ELES PENSAM SOBRE TDD?
Thursday, June 24, 2010
![Page 40: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/40.jpg)
36
PROBLEMASA VALIDAR
Thursday, June 24, 2010
![Page 41: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/41.jpg)
37
CONCLUSÃO
Thursday, June 24, 2010
![Page 42: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/42.jpg)
38
TRABALHOS FUTUROS
Thursday, June 24, 2010
![Page 43: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/43.jpg)
39
•O artigo foi publicado no 1st International Workshop on Test-Driven Development e pode ser encontrado na biblioteca da IEEE Digital.
•Ou através da página dedicada ao trabalho em http://www.ime.usp.br/~aniche/tdd-survey
AONDE POSSO LER MAIS SOBRE ISSO?
Thursday, June 24, 2010
![Page 44: Desvios comuns em TDD](https://reader033.vdocuments.us/reader033/viewer/2022051515/5560bb85d8b42af93b8b4ff2/html5/thumbnails/44.jpg)
40
GOSTOU E QUER AJUDAR?
Thursday, June 24, 2010