Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TDD - Test Driven Development
Search
Scalone
November 12, 2014
Programming
1
140
TDD - Test Driven Development
A superficial presentation about TDD, in portuguese, to FATEC Tech Week (Franca, SP, Brasil).
Scalone
November 12, 2014
Tweet
Share
More Decks by Scalone
See All by Scalone
TDD - Test Driven Development
scalone
0
3
Ruby, Web and IOT with the same Platform
scalone
0
97
20k mRuby devices in Production
scalone
0
440
DaFunk, IOT Framework in Ruby
scalone
0
160
Concurrency in the imperative and functional world
scalone
0
200
Git e Github
scalone
0
91
Git, o que é, do que é feito, para que serve?
scalone
0
330
DaFunk, IOT Framework in Ruby
scalone
0
200
Uzmenino Marketplace
scalone
0
120
Other Decks in Programming
See All in Programming
Core MIDI を勉強して作曲用の電子ピアノ作ってみた!
hypebeans
0
100
「10分以内に機能を消せる状態」 の実現のためにやっていること
togishima
1
260
仕様がそのままテストになる!Javaで始める振る舞い駆動開発
ohmori_yusuke
4
1.8k
AI時代に必須!状況言語化スキル / ai-context-verbalization
minodriven
3
380
自動テストのアーキテクチャとその理由ー大規模ゲーム開発の場合ー
segadevtech
2
940
Temporal Knowledge Graphで作る! 時間変化するナレッジを扱うAI Agentの世界
po3rin
5
1.3k
PHPライセンス変更の議論を通じて学ぶOSSライセンスの基礎
matsuo_atsushi
0
140
Dive into Triton Internals
appleparan
0
480
Agentに至る道 〜なぜLLMは自動でコードを書けるようになったのか〜
mackee
4
520
例外処理を理解して、設計段階からエラーを見つけやすく、起こりにくく #phpconfuk
kajitack
12
5.7k
MCPサーバー「モディフィウス」で変更容易性の向上をスケールする / modifius
minodriven
7
1.4k
KoogではじめるAIエージェント開発
hiroaki404
1
430
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
KATA
mclloyd
PRO
32
15k
We Have a Design System, Now What?
morganepeng
54
7.9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
The Language of Interfaces
destraynor
162
25k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
TDD Test Driven Development
THIAGO SCALONE
@SCALONE
TDD Test Driven Development
O QUE É TESTE?
–Wikipédia “O teste do software é a investigação do software
a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.”
O QUE É TDD? Desenvolvimento Orientado a Teste
– Wikipédia “Processo de desenvolvimento de software aonde se escreve
o teste primeiro”
TESTE PRIMEIRO? show me the code!
MUNDO REAL
HISTORINHA
ERA UMA VEZ UM PROJETO
LINDO MARAVILHO
O TEMPO
O PROJETO SE TRANSFORMA
CÓDIGO LEGADO
LENTO
CLIENTES IRRITADOS
DIFÍCIL MANUTENÇÃO
Alteração
Alteração Teste Manual
Alteração Teste Manual
Alteração Teste Manual Produção
Alteração Teste Manual Produção
Alteração Teste Manual Produção
CÓDIGO LEGADO SEM TESTE
–Kent Beck “The more stress you feel, the less testing
you will do”
–Kent Beck “The less testing you do, the more errors
you will make”
NÃO POSSO MUDAR O PASSADO
PRECISO ESCREVER TESTES
EU AMO SOFTWARE
VAMOS VOLTAR UM POUCO
HISTÓRIA DO TDD
12000 BC - FOGO
18XX - PRIMEIRO PROGRAMA Ada Lovelace <3
18XX - PRIMEIRO BUG Preciso de testes….
1957 - CITAÇÃO DE TESTES “The first attack on the
checkout problem may be made before coding is begun” - Michael Bolton
1959/63 - NASA PROJECT MERCURY
1989 - JERRY WEINBERG Cartões perfurados!!!
1994 - KENT BECK SUnit, primeiro framework para testes, em
Smaltalk
1995 - MOVIMENTO XP Kent Beck outra vez
EXTREME PROGRAMMING Feedback rápido Presumir simplicidade Mudanças incrementais Abraçar mudanças
Trabalho de alta qualidade.
COMO TDD?
BABY STEPS
RED, GREEN, REFACTOR
RED GREEN REFACTOR
RED GREEN REFACTOR
RED GREEN REFACTOR
RED GREEN REFACTOR
COBERTURA
DIMINUIR DEPENDÊNCIA
MODULAR
O QUE É TEST ANTES?
PREVENÇÃO DE BUGS
–Robert C. Martin “Testing is about trust.”
CONFIANÇA
DOCUMENTAÇÃO
BOM DESIGN Código legível Pequeno Simples
QUALIDADE
CLIENTE FELIZ
SONO
E AONDE NÃO APLICA?
SISTEMAS MUITOS DISTRIBUIDOS Dependência entre serviços
AMBIENTE NÃO REPRODUZÍVEL Satélite Embedded Kernel Space Alguns drivers
PROTÓTIPOS Não faz sentido
HISTORINHA?
TDD
SONO
NÃO
NO SILVER BULLET
OBRIGADO
LIVROS
TEST DRIVEN DEVELOPMENT: BY EXAMPLE
GROWING OBJECT- ORIENTED SOFTWARE, GUIDED BY TESTS
TEST DRIVEN DEVELOPMENT FOR EMBEDDED C
TEST-DRIVEN DEVELOPMENT A PRACTICAL GUIDE
TEST DRIVEN DEVELOPMENT: TESTE E DESIGN NO MUNDO REAL COM
RUBY