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
How we make tests
Search
李甘
January 09, 2013
Programming
0
84
How we make tests
a slide for sharing about test
李甘
January 09, 2013
Tweet
Share
More Decks by 李甘
See All by 李甘
Learn git
flypiggy
1
300
Other Decks in Programming
See All in Programming
CSC509 Lecture 01
javiergs
PRO
1
400
Web技術を最大限活用してRAW画像を現像する / Developing RAW Images on the Web
ssssota
2
520
半自動E2Eで手っ取り早くリグレッションテストを効率化しよう
beryu
6
1.5k
How Android Uses Data Structures Behind The Scenes
l2hyunwoo
1
530
AIを活用したレシート読み取り機能の開発から得られた実践知 / AI Receipt Scan Practice
rockname
2
890
Design Foundational Data Engineering Observability
sucitw
3
210
「社内LT会」を1年続けてみた! / Our Year-Long Journey of Internal Lightning Talks
mackey0225
1
100
フロントエンド開発に役立つクライアントプログラム共通のノウハウ / Universal client-side programming best practices for frontend development
nrslib
7
3.4k
Learn CPU architecture with Assembly
akkeylab
1
640
ユーザーも開発者も悩ませない TV アプリ開発 ~Compose の内部実装から学ぶフォーカス制御~
taked137
0
220
そのAPI、誰のため? Androidライブラリ設計における利用者目線の実践テクニック
mkeeda
2
5.1k
奥深くて厄介な「改行」と仲良くなる20分
oguemon
2
640
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Code Review Best Practice
trishagee
71
19k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Statistics for Hackers
jakevdp
799
220k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
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 测试 ( 行为 ) 驱动开发