Desvios comuns em TDD
-
Upload
mauricio-aniche -
Category
Technology
-
view
3.047 -
download
2
description
Transcript of Desvios comuns em TDD
ERROS COMUNS EM TEST-DRIVEN DEVELOPMENT
Mauricio [email protected]
@mauricioaniche
Thursday, June 24, 2010
DESVIOS COMUNS EM TEST-DRIVEN DEVELOPMENT
Mauricio [email protected]
@mauricioaniche
Thursday, June 24, 2010
MAS O QUE É TDD MESMO?
Thursday, June 24, 2010
É SOBRE TESTES?
Thursday, June 24, 2010
Thursday, June 24, 2010
Thursday, June 24, 2010
Thursday, June 24, 2010
Thursday, June 24, 2010
NÃO!
Thursday, June 24, 2010
É SOBRE DESIGN!
Thursday, June 24, 2010
QUE CONFUSÃO! :-(
Thursday, June 24, 2010
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
Thursday, June 24, 2010
É SIMPLES!
Thursday, June 24, 2010
MAS NÃO É FÁCIL!
Thursday, June 24, 2010
PROGRAMADORES ÀS VEZES COMETEM DESVIOS...
Thursday, June 24, 2010
FATORES DE INFLUÊNCIA
Thursday, June 24, 2010
QUESTIONÁRIO
Thursday, June 24, 2010
NÃO VER O TESTE FALHAR
Thursday, June 24, 2010
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
ESQUECER DE REFATORAR
Thursday, June 24, 2010
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
REFATORAR OUTRO TRECHO DE CÓDIGO
ENQUANTO TRABALHA EM UM TESTE
Thursday, June 24, 2010
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
NÃO COMEÇAR PELO TESTE MAIS SIMPLES
POSSÍVEL
Thursday, June 24, 2010
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
RODAR APENAS O TESTE CORRENTE
Thursday, June 24, 2010
•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
ESCREVER TESTESCOMPLEXOS
Thursday, June 24, 2010
•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
NÃO IMPLEMENTAR O CÓDIGO MAIS SIMPLES
QUE FAÇA O TESTE PASSAR
Thursday, June 24, 2010
•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
NOMES NÃO CLAROSPARA OS TESTES
Thursday, June 24, 2010
•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
NÃO REFATORAR CÓDIGO DE TESTE
Thursday, June 24, 2010
•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
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
34
PRECISO SEGUIR A RISCAO TEMPO TODO?
Thursday, June 24, 2010
35
O QUE ELES PENSAM SOBRE TDD?
Thursday, June 24, 2010
36
PROBLEMASA VALIDAR
Thursday, June 24, 2010
37
CONCLUSÃO
Thursday, June 24, 2010
38
TRABALHOS FUTUROS
Thursday, June 24, 2010
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
40
GOSTOU E QUER AJUDAR?
Thursday, June 24, 2010