Upload
felipe-pimentel
View
1.715
Download
0
Embed Size (px)
Citation preview
DotNetArhitects Recife
“Aprendendo a fazer software”
Quem sou? Felipe Pimentel MCP, MCTS ASP.NET 2.0, MCTS ASP.NET
3.5, MCTS WPF Sócio e fundador da Ificomm Tecnologia Arquiteto e consultor. Ministra palestras e treinamentos. Escreve artigos para o DevMedia
Meus contatos Twitter:
http://twitter.com/felipe_pimentel Email: [email protected] Blog: http://fpimentel88.wordpress.com Ificomm’s blog: http://blog.ificomm.com
E vocês? Nome Experiência Profissional Área de interesse
.Net Architects
Reuniões Presenciais
Grupo na Web http://groups.google.com/group/dotneta
rchitects http://dotnetarchitects.net/ http://dojo.dotnetarchitects.net/
Chal-lenged
46%
Failed19%
Suc-cessful
35%
Software Projects
“The CHAOS Chronicles” 2006 The Standish Group
Rarely19%
Never45%
Sometimes16%
Often13%
Always7%
Software Features Used
“The CHAOS Chronicles” 2006 The Standish Group
Não sabemos fazer Software
TDD (Test Driven Development)
String[] agendaDoDia = new[] {“Cenário Atual”,“O que é TDD?”,”Para que TDD?”,”Benefícios”,”Dificuldades”,”Demo. Demo. Demo...”
}
Códigos ruins Bugs Difícil Manutenção Produtividade baixa
Ciclo da Morte
Impacto das mudanças e correções
(The Economic Impacts of Inadequate Infrastructure for Software Testing)
Solução: TDD
O que NÃO é TDD? TDD != Unit Test Não é um método para TESTAR software Não é limitado Não é Teste de caixa preta, caixa
branca, caixa cinza ou regressão.
TDD = Test Driven Development
(Desenvolvimento Orientado a testes)
“Técnica de desenvolvimento cujo processo é formado por pequenas iterações. Onde os testes são codificados primeiro.”
Test-First Programming +Refactoring
Assegura a Qualidade de Software
“Clean code that works”(Test Driven Development By Example,
Kent Beck)
“Desenvolvedor que não testa é como um cirurgião que não lava as mãos”
Uncle Bob (Robert C.
Martin)
“Sistema sem teste dá medo!”
Giovanni Bassi.
“Código sem teste, é código legado”
Por que não usar?
“Estou sem tempo para testar!”
“Escrever testes demora muito!”
“Esse não é meu trabalho”
“Se compilou é porque está funcionando!”
“Testar é caro, não testar é mais caro ainda!” (Giovanni Bassi)
Benefícios do TDD
“Garante a existência de testes unitários completos e atualizados”
“Diminui a quantidade de erros por linha de código ”
“Testes unitários são documentações executáveis”
(Giovanni Bassi)
“Direciona projeto a ser mais desacoplado, flexível, modular, métodos coesos e
extensível.”
O cliente
O desenvolvedor
Práticas e conceitos
Modularize os Testes
Baby Step
Resistindo a tentação de sair fazendo
DRY
Princípio da responsabilidade única (SRP)
You Ain`t Gonna Need It (YAGNI)
Participe de Coding Dojos
Demo 1!!!! Desenvolver uma calculadora basica que
contem operações de divisão, multiplicação, subtraçaõ e adição de inteiros
Ferramentas: Visual Studio 2010 Resharper MSUnit
Demo 2!!!! FizzBuzz
Caso o número seja divisível por 3, deve dizer: “Fizz”
Caso o número seja divisível por 5, deve dizer: “Buzz”
Caso seja divisível por 3 e 5, deve dizer: “FizzBuzz”
Ferramentas: Visual Studio 2010 Resharper MSUnit
Demo 3!!!! Desenvolver uma aplicação bancária que
controle saques, depósitos e transferências.
Ferramentas: Visual Studio 2010 Resharper NUnit Moq
TDD é fácil
Links http://www.codeplex.com/wikipage?
ProjectName=xunit&title=Comparisons http://unplugged.giggio.net/ http://www.infoq.com/br/news/2009/03/TDD-Im
proves-Quality http://www.infoq.com/br/articles/levison-TDD-a
doption-strategy http://danieltamiosso.com/2009/05/06/o-impac
to-de-tdd-no-design/ http://www.diogomafra.com.br/2009/09/introdu
cao-ao-tdd_24.html http://www.infoq.com/br/news/2009/11/uncle-b
ob-tdd-applicability http://www.superexpert.com/ http://blogs.southworks.net/dschenkelman/ http://www.heroisdati.com/
Literaturas
Perguntas?
Obrigado!