Submit Search
Upload
Tip for Editors
•
2 likes
•
1,178 views
Chun-Yu Tseng
Follow
Testing (in Python) for Editors http://edit.flipedu.tw/
Read less
Read more
Technology
Report
Share
Report
Share
1 of 69
Download now
Download to read offline
Recommended
Testing in Python @ Kaosiung.py 2014.05.26
Testing in Python @ Kaosiung.py 2014.05.26
Chun-Yu Tseng
TDD (Test-driven development, 測試驅動開發) 基本教學
TDD (Test-driven development, 測試驅動開發) 基本教學
潘 冠辰
測試是什麼
測試是什麼
Yvonne Yu
PHP 单元测试
PHP 单元测试
Lan Yanguang
Unit test
Unit test
vul3yo6
单元测试(H2等)和持续集成(Hudson)实战简介
单元测试(H2等)和持续集成(Hudson)实战简介
isxylands
單元測試介紹
單元測試介紹
Adison wu
持續整合與單元測試
持續整合與單元測試
昱劭 劉
Recommended
Testing in Python @ Kaosiung.py 2014.05.26
Testing in Python @ Kaosiung.py 2014.05.26
Chun-Yu Tseng
TDD (Test-driven development, 測試驅動開發) 基本教學
TDD (Test-driven development, 測試驅動開發) 基本教學
潘 冠辰
測試是什麼
測試是什麼
Yvonne Yu
PHP 单元测试
PHP 单元测试
Lan Yanguang
Unit test
Unit test
vul3yo6
单元测试(H2等)和持续集成(Hudson)实战简介
单元测试(H2等)和持续集成(Hudson)实战简介
isxylands
單元測試介紹
單元測試介紹
Adison wu
持續整合與單元測試
持續整合與單元測試
昱劭 劉
PyConAPAC2014 Tainan.py 介紹
PyConAPAC2014 Tainan.py 介紹
Chun-Yu Tseng
當資訊科技撞上臺南牛肉湯的那些事兒 @ 2014 NCKU EDiT 科技啓蒙
當資訊科技撞上臺南牛肉湯的那些事兒 @ 2014 NCKU EDiT 科技啓蒙
小均 張
PyConAPAC2014 BoF Introduction
PyConAPAC2014 BoF Introduction
Chun-Yu Tseng
Rubypython - 用 ruby 愛上 python
Rubypython - 用 ruby 愛上 python
Honda Dai
Testing in python 2.7.3
Testing in python 2.7.3
Wen Liao
MLDM Monday -- Optimization Series Talk
MLDM Monday -- Optimization Series Talk
Jerry Wu
Beta testing with CI
Beta testing with CI
Liyao Chen
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
Max Lai
Mobile app的測試v2
Mobile app的測試v2
Mr PM
單元測試
單元測試
國昭 張
Angular Testing for Book Club Online of Angular Taiwan
Angular Testing for Book Club Online of Angular Taiwan
志龍 陳
單元測試-到底單什麼元,測什麼試
單元測試-到底單什麼元,測什麼試
option0417
Legacy code 讀書會 1st (Ch1 - Ch5)
Legacy code 讀書會 1st (Ch1 - Ch5)
Fong Liou
Foundation of software development 1
Foundation of software development 1
netdbncku
银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011
Yi Xu
豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验
drewz lin
Tcon分享 芈峮
Tcon分享 芈峮
mijun_hlp
除錯、測試與效能
除錯、測試與效能
Justin Lin
Test corner #20 誰說只有測試金字塔
Test corner #20 誰說只有測試金字塔
yinwilliam
Python系列1
Python系列1
數真 蔡
例外處理與單元測試
例外處理與單元測試
國昭 張
Angular 深入淺出測試篇:單元測試入門
Angular 深入淺出測試篇:單元測試入門
志龍 陳
More Related Content
Viewers also liked
PyConAPAC2014 Tainan.py 介紹
PyConAPAC2014 Tainan.py 介紹
Chun-Yu Tseng
當資訊科技撞上臺南牛肉湯的那些事兒 @ 2014 NCKU EDiT 科技啓蒙
當資訊科技撞上臺南牛肉湯的那些事兒 @ 2014 NCKU EDiT 科技啓蒙
小均 張
PyConAPAC2014 BoF Introduction
PyConAPAC2014 BoF Introduction
Chun-Yu Tseng
Rubypython - 用 ruby 愛上 python
Rubypython - 用 ruby 愛上 python
Honda Dai
Testing in python 2.7.3
Testing in python 2.7.3
Wen Liao
MLDM Monday -- Optimization Series Talk
MLDM Monday -- Optimization Series Talk
Jerry Wu
Viewers also liked
(6)
PyConAPAC2014 Tainan.py 介紹
PyConAPAC2014 Tainan.py 介紹
當資訊科技撞上臺南牛肉湯的那些事兒 @ 2014 NCKU EDiT 科技啓蒙
當資訊科技撞上臺南牛肉湯的那些事兒 @ 2014 NCKU EDiT 科技啓蒙
PyConAPAC2014 BoF Introduction
PyConAPAC2014 BoF Introduction
Rubypython - 用 ruby 愛上 python
Rubypython - 用 ruby 愛上 python
Testing in python 2.7.3
Testing in python 2.7.3
MLDM Monday -- Optimization Series Talk
MLDM Monday -- Optimization Series Talk
Similar to Tip for Editors
Beta testing with CI
Beta testing with CI
Liyao Chen
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
Max Lai
Mobile app的測試v2
Mobile app的測試v2
Mr PM
單元測試
單元測試
國昭 張
Angular Testing for Book Club Online of Angular Taiwan
Angular Testing for Book Club Online of Angular Taiwan
志龍 陳
單元測試-到底單什麼元,測什麼試
單元測試-到底單什麼元,測什麼試
option0417
Legacy code 讀書會 1st (Ch1 - Ch5)
Legacy code 讀書會 1st (Ch1 - Ch5)
Fong Liou
Foundation of software development 1
Foundation of software development 1
netdbncku
银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011
Yi Xu
豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验
drewz lin
Tcon分享 芈峮
Tcon分享 芈峮
mijun_hlp
除錯、測試與效能
除錯、測試與效能
Justin Lin
Test corner #20 誰說只有測試金字塔
Test corner #20 誰說只有測試金字塔
yinwilliam
Python系列1
Python系列1
數真 蔡
例外處理與單元測試
例外處理與單元測試
國昭 張
Angular 深入淺出測試篇:單元測試入門
Angular 深入淺出測試篇:單元測試入門
志龍 陳
The way to continuous delivery
The way to continuous delivery
Qiao Liang
前端单元测试
前端单元测试
LC2009
敏捷自动化测试中的教训 45min 中文
敏捷自动化测试中的教训 45min 中文
Shuyong Lin
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
Rick Hwang
Similar to Tip for Editors
(20)
Beta testing with CI
Beta testing with CI
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
Mobile app的測試v2
Mobile app的測試v2
單元測試
單元測試
Angular Testing for Book Club Online of Angular Taiwan
Angular Testing for Book Club Online of Angular Taiwan
單元測試-到底單什麼元,測什麼試
單元測試-到底單什麼元,測什麼試
Legacy code 讀書會 1st (Ch1 - Ch5)
Legacy code 讀書會 1st (Ch1 - Ch5)
Foundation of software development 1
Foundation of software development 1
银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011
豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验
Tcon分享 芈峮
Tcon分享 芈峮
除錯、測試與效能
除錯、測試與效能
Test corner #20 誰說只有測試金字塔
Test corner #20 誰說只有測試金字塔
Python系列1
Python系列1
例外處理與單元測試
例外處理與單元測試
Angular 深入淺出測試篇:單元測試入門
Angular 深入淺出測試篇:單元測試入門
The way to continuous delivery
The way to continuous delivery
前端单元测试
前端单元测试
敏捷自动化测试中的教训 45min 中文
敏捷自动化测试中的教训 45min 中文
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
More from Chun-Yu Tseng
驚呆了!這些 Python 題目刷掉 7 成面試者
驚呆了!這些 Python 題目刷掉 7 成面試者
Chun-Yu Tseng
5 minutes 介紹台南拍 (2022 ver.)
5 minutes 介紹台南拍 (2022 ver.)
Chun-Yu Tseng
Tenet: 2020 Taiwan PyCon Host We How
Tenet: 2020 Taiwan PyCon Host We How
Chun-Yu Tseng
Build and Host Real-world Machine Learning Services from Scratch @ pycontw2019
Build and Host Real-world Machine Learning Services from Scratch @ pycontw2019
Chun-Yu Tseng
from ai.backend import python @ pycontw2018
from ai.backend import python @ pycontw2018
Chun-Yu Tseng
導讀 Clean Code
導讀 Clean Code
Chun-Yu Tseng
Essential TDD @ pycontw2016
Essential TDD @ pycontw2016
Chun-Yu Tseng
從蟒蛇到神龍 - 從 1 接關繼續打造爬蟲程式
從蟒蛇到神龍 - 從 1 接關繼續打造爬蟲程式
Chun-Yu Tseng
Agile x API x Documentation @ NGO [[MOPCON2015]]
Agile x API x Documentation @ NGO [[MOPCON2015]]
Chun-Yu Tseng
快快樂樂成為 Coding Ninja (by pytest) @ PyConAPAC2015
快快樂樂成為 Coding Ninja (by pytest) @ PyConAPAC2015
Chun-Yu Tseng
程式 x 設計 @ MOPCON 2014
程式 x 設計 @ MOPCON 2014
Chun-Yu Tseng
介紹 MOSUT @ 2014.09.26 自由軟體開發與社群發展
介紹 MOSUT @ 2014.09.26 自由軟體開發與社群發展
Chun-Yu Tseng
OO x Python @ Tainan.py x MOSUT x FP 2014.09.27
OO x Python @ Tainan.py x MOSUT x FP 2014.09.27
Chun-Yu Tseng
用路人小幫手 x 回報大改造 @ 2014 台南黑客松
用路人小幫手 x 回報大改造 @ 2014 台南黑客松
Chun-Yu Tseng
暖場 @ Tainan.py 2013.11.30
暖場 @ Tainan.py 2013.11.30
Chun-Yu Tseng
API 文件大亂鬥 @ MOPCON 2013
API 文件大亂鬥 @ MOPCON 2013
Chun-Yu Tseng
暖場與 Web 相關的小玩具 @ Tainan.py 2013.09.28
暖場與 Web 相關的小玩具 @ Tainan.py 2013.09.28
Chun-Yu Tseng
More from Chun-Yu Tseng
(17)
驚呆了!這些 Python 題目刷掉 7 成面試者
驚呆了!這些 Python 題目刷掉 7 成面試者
5 minutes 介紹台南拍 (2022 ver.)
5 minutes 介紹台南拍 (2022 ver.)
Tenet: 2020 Taiwan PyCon Host We How
Tenet: 2020 Taiwan PyCon Host We How
Build and Host Real-world Machine Learning Services from Scratch @ pycontw2019
Build and Host Real-world Machine Learning Services from Scratch @ pycontw2019
from ai.backend import python @ pycontw2018
from ai.backend import python @ pycontw2018
導讀 Clean Code
導讀 Clean Code
Essential TDD @ pycontw2016
Essential TDD @ pycontw2016
從蟒蛇到神龍 - 從 1 接關繼續打造爬蟲程式
從蟒蛇到神龍 - 從 1 接關繼續打造爬蟲程式
Agile x API x Documentation @ NGO [[MOPCON2015]]
Agile x API x Documentation @ NGO [[MOPCON2015]]
快快樂樂成為 Coding Ninja (by pytest) @ PyConAPAC2015
快快樂樂成為 Coding Ninja (by pytest) @ PyConAPAC2015
程式 x 設計 @ MOPCON 2014
程式 x 設計 @ MOPCON 2014
介紹 MOSUT @ 2014.09.26 自由軟體開發與社群發展
介紹 MOSUT @ 2014.09.26 自由軟體開發與社群發展
OO x Python @ Tainan.py x MOSUT x FP 2014.09.27
OO x Python @ Tainan.py x MOSUT x FP 2014.09.27
用路人小幫手 x 回報大改造 @ 2014 台南黑客松
用路人小幫手 x 回報大改造 @ 2014 台南黑客松
暖場 @ Tainan.py 2013.11.30
暖場 @ Tainan.py 2013.11.30
API 文件大亂鬥 @ MOPCON 2013
API 文件大亂鬥 @ MOPCON 2013
暖場與 Web 相關的小玩具 @ Tainan.py 2013.09.28
暖場與 Web 相關的小玩具 @ Tainan.py 2013.09.28
Tip for Editors
1.
Joe @ EDiT
2014 Tip for Editors 給新手的測試入門課
2.
Joe @ EDiT
2014 Tip for Editors 給新手的測試入門課 Testing (in Python) 今天的參與者
3.
Outline • Basic Concepts •
Unit / Integration / Functional Testing • Testing Frameworks/ Tools in Python • Conclusion
4.
世界上有很多測試方法 你可能已經 try 過一些
...
5.
Eye Testing 白目測試法 測一
6.
情境 程式寫完了! 看起來沒問題,就直接上 傳到助教的 FTP 吧!
7.
評估 • 「目測」不算是真正的測試 • 會對其他測試方法產生依賴性 •
需要有無與倫比的 confidence 來執行 ...
8.
SomeBody Testing 有人 測試法 測二
9.
情境 終於改到最後一份作業了 ... 讓 我解壓縮
... 編譯 ... 執行 ... 當掉了 ? 給 0 分
10.
評估 • 「有人測」意思就是由客戶測 • 助教、國
x 會、資 x 會、工 x 院、網站/App 的用戶 ... • 風險高 • 建議採用下一種測試法 ...
11.
i Testing 自己程式自己測 測三
12.
情境 (with eye) 執行! 成功! 讓我瞧瞧
... 看起來是對的
13.
情境 (with code) 先準備一份預期的輸入輸出結果核對表 跑完收工 用程式執行程式
& 用程式驗證程式
14.
評估 • 自己程式自己測 • 如果有蟲自己抓
<= 成本最低 • 是否要寫程式來測試自己的程式? • 工人智慧 vs 人工智慧
15.
閒聊結束 剛剛其實是笑點測試 ...
16.
想想看 • 寫程式的目的是什麼? • 滿足客戶的需求 •
怎麼知道程式有滿足客戶的需求? • 測試(自己測 => 成本低 & 別人測 => 風險高) • 如何讓測試有效率? • 自動化測試流程
17.
開發 vs 測試 一體兩面、相輔相成
18.
自然 撰寫測試
19.
來看更多例子 進入下一主題
20.
Outline • Basic Concepts •
Unit / Integration / Functional Testing • Testing Frameworks/ Tools in Python • Conclusion
21.
如何驗證這段程式的正確性?
22.
解一:Print 大法
23.
評估 • 最好上手 • 只是印出來,判斷需要依賴工人智慧 •
一次性的動作 • 之後會刪掉 / 註解掉 / 忘記拿掉
24.
解二: Assert 斷言
25.
評估 • 語法精簡、語義清楚 • 失敗就直接噴
error • 一次性的動作 • 之後會刪掉 / 註解掉 / 忘記拿掉
26.
重構 修改測試
27.
把測試抽離到另一個檔案
28.
把註解轉成測試 function
29.
解決噴 Error 的問題
30.
ToDo List • 消去重複的程式碼 •
用一個 Loop 去執行所有測試 function • 整個架構如果會動以後,可以寫成 class 或是 自己的測試執行函式庫 ... • 這是好的軟體開發觀念
31.
等等 函式庫 .. ?
32.
我是全世界第一個寫測試 函式庫的人的機率 就跟馬皇握手不出事的機率 ...
33.
Python 內建的 unittest
34.
好消息 誰辭職下台?
35.
已完成第一個unit test 恭喜(雖然是超簡化爛扣版本 XD)
36.
Unit Testing • 對程式中的一個
unit 進行測試 • 可能是 function ,更多機會會是 method • 目的是驗證這個 unit 運作正不正常 • 讓對外界的依賴不要影響這個 unit 的測試 • 假設外界的狀態改變/行為/影響皆符合預期 • 一般來講,隔絕依賴後,測試執行的速度會比較快 • 所以可以更常執行測試
37.
怎麼寫 unit test
?
38.
卡關:因為沒有隔絕依賴 ...
39.
重構:
40.
使用 stub/mock/fake 隔絕依賴
41.
簡言之 透過*許多*隔絕該 unit 對外界依賴的 手法,我們就能撰寫出
unit test
42.
也代表 我們寫出的 unit 會具有更能適應改變 的特質
... Ex: 如果我們要換掉 DB ?
43.
先不聊 怎麼撰寫 unit test
因為時間不夠 XD ... 請愛用 Google
44.
仔細想想假設我們已經對系統內所有 unit 寫好完善的
unit tests 那麼 units 對於被隔絕的外部依賴,是正常運作的嗎? (DB/外部API 沒有真的連過,放心嗎?)
45.
Integration Testing • 讓程式中的
unit/外部依賴 如接上齒輪般 動起來 • 連到真實 DB (測試用)... • 目的是驗證 integration 的情況正不正常 • 一般來講,測試執行的速度較慢 • 有時候會使用 CI 系統,協助執行 Integration testing
46.
Integration & Unit 偏向白箱測試
47.
Functional Testing 黑箱測試
48.
Functional Testing • 從外部來測試系統
(System Testing) • 不(管)知內部狀況 • 目的是驗證功能運作是否正常 • 例如人工點擊測試網頁/App • 測試程式仍然可以(應該)自動化
49.
Unit Integration Functional 在不同粒度之下驗證程式的正確性
50.
值得研究 進入下一個主題
51.
Outline • Basic Concepts •
Unit / Integration / Functional Testing • Testing Frameworks/ Tools in Python • Conclusion
52.
doctest
53.
unittest
54.
nose
55.
py.test
56.
lettuce
57.
lettuce
58.
lettuce
59.
還有很多 沒時間了,直接進入結論
60.
Outline • Basic Concepts •
Unit / Integration / Functional Testing • Testing Frameworks/ Tools in Python • Conclusion
61.
軟體開發 順利地完成任務
62.
順利地完成任務 寫快一點? 完成的定義? 有哪些任務?
63.
開發 / 測試
/ 需求 今天沒辦法進入下一個主題:TDD
64.
工商服務 Tainan.py x MOSUT
65.
Kaosiung.py 聚會 Testing in
Python 5/26 19:00
66.
Tainan.py 聚會 Testing in
Python TDD in Python 資料分析用 Python Simple Recommemder System Using KNN and fp-growth 5/31 14:00
67.
聯絡我
68.
EDiTors Thank you !
69.
QA 不可能有時間吧 XD
Download now