Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
How we make tests
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
李甘
January 09, 2013
Programming
87
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How we make tests
a slide for sharing about test
李甘
January 09, 2013
More Decks by 李甘
See All by 李甘
Learn git
flypiggy
1
310
Other Decks in Programming
See All in Programming
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
AWSに止められる覚悟してますか?
morizo_1984
2
530
カツオ、ご期待ください
suneo3476
0
190
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
2
550
AmebaブログはKMPから卒業します
kmars0605
0
190
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
1.1k
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
1k
Domain-Driven Transformation
hschwentner
2
2.3k
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
430
残高管理から台帳サービスへの進化
artoy
1
200
Featured
See All Featured
For a Future-Friendly Web
brad_frost
184
10k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
280
Claude Code のすすめ
schroneko
67
230k
Mobile First: as difficult as doing things right
swwweet
225
10k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
630
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Building the Perfect Custom Keyboard
takai
2
910
The Limits of Empathy - UXLibs8
cassininazir
2
720
Chasing Engaging Ingredients in Design
codingconduct
0
360
Designing Experiences People Love
moore
143
24k
A Soul's Torment
seathinner
8
3.8k
Transcript
How we make tests • Test 101 • Make better
tests • Write test friendly code • When & Where we need tests • Sth. else
Test 101 • 如何来测试我们的程序?
Test 101 • 使用代码测试比人更可靠 • Unit tests, Functional tests, Intergration
tests • 如何开始我的测试 ?
Test 101 • 测试的基础 : 验证输入和输出是否符合期望值 • Log, 单步调试 ,
'=', Equal, Assert … and so on • Demo1.
Make better tests • 建立独立最小测试环境 – 测试与代码分离 – Setup &
Teardown – 独立的测试数据
Make better tests • 再多一点 – 独立的测试环境 environment[:test] – 专有的测试方法
testhelper – 有效的组织测试 rake, shell – 使用测试夹具 测试数据无需入库
Make better tests • 依赖外部调用无法测试怎么办 ? – 网络不通 , 调用资金等
– 其他模块出错 , 没开发完 – 我就只想测试自己的部分 等等 • Mock & Stub 帮助你
Write test friendly code • 1 单一职责 • 2 接口分离
• 3 避免耦合太深
Write test friendly code 圆桌讨论 : 怎样写出更容易测试的代码
When & Where we need tests • 等我不忙了就加测试 – 永远有下一个项目
– 越后面成本 ( 包括时间 ) 越高 , 测试质量也越差 • 以前代码太难写测试了 , 等重构了再说 – 测试是重构的基础 – 新的代码还等以后才写测试 ?
When & Where we need tests • 涉及到付费的 谁敢拿钱开玩笑 •
核心业务逻辑 一旦变化会影响多处地方 • 第三方集成 回归 , 你没法控制别人的变化 • 系统中容易变化的地方 测试让每次变化更安全 • 多个 object 协作的地方 每一个的变化都可能出错 • 代码晦涩,难以理解 增加测试是重构的第一步 • 很多判断的地方 逻辑复杂的代表
Sth. else • Watchr & Guard(base on ruby) 让测试守护你的程序 •
CI 持续集成 • TDD&BDD 测试 ( 行为 ) 驱动开发