SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
測試是什麼!?
PIXNET - Yvonne Yu
1
為什麼要寫測試?
2
是人,都會犯錯
QA
3
越晚發現 bug

解決時間就越久
圖片來源:Microsoft Community4
測試使你思考
5 圖片來源:http://gallery4share.com/t/thinking-baby.html
比較安心...?
圖片來自:http://matome.naver.jp/odai/21385948759900417016
圖片來源:http://reader.roodo.com/ccfong/archives/675138.html
有沒有改壞程式,

跑測試就知道了啊
7
測試是?
WEB
8
原理

(philosophy)
TDD, Continuous Integration
方法
(stages)
Unit Testing, End-to-End, integration Testing
結構

(constructs)
Test double, Test fixture, Test Harness, 

Web Driver, Headless Browser
架構

(frameworks)
Mocha, Jasmine, Chai, Sinon
工具

(tools)
PhantomJS, Karma, Protractor, Selenium,
Jenkins, internJS, istanbul
參考來源:Front-End Testing: Demystified9
Unit Testing - 單元測試
針對程式的最小測試單位
測試對象為單一函式
獨立,不應跟其他測試程式碼相依

(不應測試後端程式碼) Jasmine
10
Story:使用者成功登入後,會導到後台
Features:使用者登入後台的表格
Units:測試登入表格
11
開始思考 Unit Testing!
End-to-End Testing
模擬使用者跟軟體的互動行為
測試一整個 User Story
12
Protractor
PhantomJS
E2E 流程
13
TEST
Protractor

Selenium Host
Browser
Application
Write User story

(Jasmine)

Protractor 包裝
WebDriver
Selenium 驅動
Browser 跑模擬測試
with application
node JS
WebDriver JS
Unit Testing v.s E2E
14
Unit Testing E2E
Pro’s
快速
可靠

測試單一功能
檢測程式整合
測試使用者真實情境
Con’s
需花時間完整開發
需長期維護
很難測試每種情況
難以精準問題點
測試環境 console browser
Do Both!!
Unit Testing 可明確的找到問題點,
將問題範圍縮小
E2E 是測試當程式碼整合在一起後,
會遇到的問題
15
Unit Testing v.s E2E
什麼什麼...?
工程師寫測試會有盲點,所以一定要 QA 來寫?

參考來源:30天快速上手 TDD Day 2 - Unit Testing 簡介16
我程式都寫完了,跑起來也都對。這時寫
測試程式一點意義都沒有...

- 程式碼是工程師設計的,測試也要工程師自己寫最準

- QA 可策劃/協助 User story 的部分
Unit
Testing
- 寫測試的三個時機:

1. 當程式碼需要被其他程式呼叫的時候

2. 修復 bug 前

3. 需求變更的時候
E2E
完成 E2E 後完成 Unit Testing 後
17
References
Automated Web Testing using JavaScript
Unit-testing and E2E testing in JS
Front-End Testing: Demystified
Unit Testing Best Practices in AngularJS
為什麼要寫 unit test?為什麼要先寫測試?
30天快速上手 TDD - 陳仕傑
自动化e2e测试 – WebDriverJS,Jasmine和Protractor
Unit and integration Testing
18

Mais conteúdo relacionado

Mais procurados

別傻了 你就是不寫測試才會沒時間!CL ft. Hamastar.pdf
別傻了 你就是不寫測試才會沒時間!CL ft. Hamastar.pdf別傻了 你就是不寫測試才會沒時間!CL ft. Hamastar.pdf
別傻了 你就是不寫測試才會沒時間!CL ft. Hamastar.pdfYu-Song Syu
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発慎一 古賀
 
User story concept for agiletourkaohsiung
User story concept for agiletourkaohsiung User story concept for agiletourkaohsiung
User story concept for agiletourkaohsiung Jen-Chieh Ko
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!Yuji Nojima
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!Kenji Okumura
 
使用者故事對照 User Story Mapping
使用者故事對照 User Story Mapping使用者故事對照 User Story Mapping
使用者故事對照 User Story Mapping柏鈞 邱
 
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査Hironori Washizaki
 
PEGで構文解析をする
PEGで構文解析をするPEGで構文解析をする
PEGで構文解析をするjiro4989
 
我的 DevOps 故事
我的 DevOps 故事我的 DevOps 故事
我的 DevOps 故事Poy Chang
 
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2Alan Tsai
 
敏捷轉型:目標管理工作坊
敏捷轉型:目標管理工作坊敏捷轉型:目標管理工作坊
敏捷轉型:目標管理工作坊William Yeh
 
T119_5年間の試行錯誤で進化したMVPVMパターン
T119_5年間の試行錯誤で進化したMVPVMパターンT119_5年間の試行錯誤で進化したMVPVMパターン
T119_5年間の試行錯誤で進化したMVPVMパターン伸男 伊藤
 
ソフトウェアテスト入門
ソフトウェアテスト入門ソフトウェアテスト入門
ソフトウェアテスト入門Preferred Networks
 
探索的テスト入門
探索的テスト入門探索的テスト入門
探索的テスト入門H Iseri
 
Testing in Production, Deploy on Fridays
Testing in Production, Deploy on FridaysTesting in Production, Deploy on Fridays
Testing in Production, Deploy on FridaysYi-Feng Tzeng
 
事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン友隆 浅黄
 
探索ってどういうこと?
探索ってどういうこと?探索ってどういうこと?
探索ってどういうこと?tef-do
 
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しようテスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しようAkira Ikeda
 
개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)SangIn Choung
 
reg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Testreg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression TestKazuyuki Tsuzisaki
 

Mais procurados (20)

別傻了 你就是不寫測試才會沒時間!CL ft. Hamastar.pdf
別傻了 你就是不寫測試才會沒時間!CL ft. Hamastar.pdf別傻了 你就是不寫測試才會沒時間!CL ft. Hamastar.pdf
別傻了 你就是不寫測試才會沒時間!CL ft. Hamastar.pdf
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
 
User story concept for agiletourkaohsiung
User story concept for agiletourkaohsiung User story concept for agiletourkaohsiung
User story concept for agiletourkaohsiung
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!
 
使用者故事對照 User Story Mapping
使用者故事對照 User Story Mapping使用者故事對照 User Story Mapping
使用者故事對照 User Story Mapping
 
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
 
PEGで構文解析をする
PEGで構文解析をするPEGで構文解析をする
PEGで構文解析をする
 
我的 DevOps 故事
我的 DevOps 故事我的 DevOps 故事
我的 DevOps 故事
 
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
 
敏捷轉型:目標管理工作坊
敏捷轉型:目標管理工作坊敏捷轉型:目標管理工作坊
敏捷轉型:目標管理工作坊
 
T119_5年間の試行錯誤で進化したMVPVMパターン
T119_5年間の試行錯誤で進化したMVPVMパターンT119_5年間の試行錯誤で進化したMVPVMパターン
T119_5年間の試行錯誤で進化したMVPVMパターン
 
ソフトウェアテスト入門
ソフトウェアテスト入門ソフトウェアテスト入門
ソフトウェアテスト入門
 
探索的テスト入門
探索的テスト入門探索的テスト入門
探索的テスト入門
 
Testing in Production, Deploy on Fridays
Testing in Production, Deploy on FridaysTesting in Production, Deploy on Fridays
Testing in Production, Deploy on Fridays
 
事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン
 
探索ってどういうこと?
探索ってどういうこと?探索ってどういうこと?
探索ってどういうこと?
 
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しようテスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
 
개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)
 
reg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Testreg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Test
 

Semelhante a 測試是什麼

從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)Rick Hwang
 
PHPUnit slide formal
PHPUnit slide formalPHPUnit slide formal
PHPUnit slide formaljameslabs
 
现代化敏捷测试工作者
现代化敏捷测试工作者现代化敏捷测试工作者
现代化敏捷测试工作者Yi Xu
 
Testing Automation Journey in Trend Micro
Testing Automation Journey in Trend MicroTesting Automation Journey in Trend Micro
Testing Automation Journey in Trend MicroJen-Chieh Ko
 
Rails 炸機實務
Rails  炸機實務Rails  炸機實務
Rails 炸機實務Manic
 
1.跨平台開發架構首部曲 測試
1.跨平台開發架構首部曲 測試1.跨平台開發架構首部曲 測試
1.跨平台開發架構首部曲 測試Chris Jeng
 
版控實務
版控實務版控實務
版控實務Robin
 
JS单元测试之路
JS单元测试之路JS单元测试之路
JS单元测试之路Jeaf Wang
 
Top100summit 游戏中的自动化测试 - 金山 - 白银祖
Top100summit 游戏中的自动化测试 - 金山 - 白银祖Top100summit 游戏中的自动化测试 - 金山 - 白银祖
Top100summit 游戏中的自动化测试 - 金山 - 白银祖drewz lin
 
2_學院碩士班_分群模型_20220606.pdf
2_學院碩士班_分群模型_20220606.pdf2_學院碩士班_分群模型_20220606.pdf
2_學院碩士班_分群模型_20220606.pdfFEG
 
Modern Web Development Introduction
Modern Web Development IntroductionModern Web Development Introduction
Modern Web Development IntroductionJohn Chou
 
Testing survey
Testing surveyTesting survey
Testing surveyTao He
 
歡迎加入軟體構築行列
歡迎加入軟體構築行列歡迎加入軟體構築行列
歡迎加入軟體構築行列Chris Wang
 
银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011Yi Xu
 
Selenium與動態網頁爬蟲應用
Selenium與動態網頁爬蟲應用Selenium與動態網頁爬蟲應用
Selenium與動態網頁爬蟲應用Yanwei Liu
 
Nhibernate+sqlite測試實戰經驗分享
Nhibernate+sqlite測試實戰經驗分享Nhibernate+sqlite測試實戰經驗分享
Nhibernate+sqlite測試實戰經驗分享Wade Huang
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressAppzhoujg
 

Semelhante a 測試是什麼 (20)

從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
 
PHPUnit slide formal
PHPUnit slide formalPHPUnit slide formal
PHPUnit slide formal
 
现代化敏捷测试工作者
现代化敏捷测试工作者现代化敏捷测试工作者
现代化敏捷测试工作者
 
PHPUnit
PHPUnitPHPUnit
PHPUnit
 
Testing Automation Journey in Trend Micro
Testing Automation Journey in Trend MicroTesting Automation Journey in Trend Micro
Testing Automation Journey in Trend Micro
 
Rails 炸機實務
Rails  炸機實務Rails  炸機實務
Rails 炸機實務
 
Tip for Editors
Tip for EditorsTip for Editors
Tip for Editors
 
1.跨平台開發架構首部曲 測試
1.跨平台開發架構首部曲 測試1.跨平台開發架構首部曲 測試
1.跨平台開發架構首部曲 測試
 
Cucumber
CucumberCucumber
Cucumber
 
版控實務
版控實務版控實務
版控實務
 
JS单元测试之路
JS单元测试之路JS单元测试之路
JS单元测试之路
 
Top100summit 游戏中的自动化测试 - 金山 - 白银祖
Top100summit 游戏中的自动化测试 - 金山 - 白银祖Top100summit 游戏中的自动化测试 - 金山 - 白银祖
Top100summit 游戏中的自动化测试 - 金山 - 白银祖
 
2_學院碩士班_分群模型_20220606.pdf
2_學院碩士班_分群模型_20220606.pdf2_學院碩士班_分群模型_20220606.pdf
2_學院碩士班_分群模型_20220606.pdf
 
Modern Web Development Introduction
Modern Web Development IntroductionModern Web Development Introduction
Modern Web Development Introduction
 
Testing survey
Testing surveyTesting survey
Testing survey
 
歡迎加入軟體構築行列
歡迎加入軟體構築行列歡迎加入軟體構築行列
歡迎加入軟體構築行列
 
银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011
 
Selenium與動態網頁爬蟲應用
Selenium與動態網頁爬蟲應用Selenium與動態網頁爬蟲應用
Selenium與動態網頁爬蟲應用
 
Nhibernate+sqlite測試實戰經驗分享
Nhibernate+sqlite測試實戰經驗分享Nhibernate+sqlite測試實戰經驗分享
Nhibernate+sqlite測試實戰經驗分享
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
 

Mais de Yvonne Yu

Show Me The Page - 介紹 Critical rendering path
Show Me The Page - 介紹 Critical rendering pathShow Me The Page - 介紹 Critical rendering path
Show Me The Page - 介紹 Critical rendering pathYvonne Yu
 
Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能
Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能
Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能Yvonne Yu
 
我與編輯器
我與編輯器我與編輯器
我與編輯器Yvonne Yu
 
打造網站親和力
打造網站親和力打造網站親和力
打造網站親和力Yvonne Yu
 
CP 值很高的 Gulp
CP 值很高的 GulpCP 值很高的 Gulp
CP 值很高的 GulpYvonne Yu
 
Angularjs in mobile app
Angularjs in mobile appAngularjs in mobile app
Angularjs in mobile appYvonne Yu
 

Mais de Yvonne Yu (6)

Show Me The Page - 介紹 Critical rendering path
Show Me The Page - 介紹 Critical rendering pathShow Me The Page - 介紹 Critical rendering path
Show Me The Page - 介紹 Critical rendering path
 
Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能
Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能
Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能
 
我與編輯器
我與編輯器我與編輯器
我與編輯器
 
打造網站親和力
打造網站親和力打造網站親和力
打造網站親和力
 
CP 值很高的 Gulp
CP 值很高的 GulpCP 值很高的 Gulp
CP 值很高的 Gulp
 
Angularjs in mobile app
Angularjs in mobile appAngularjs in mobile app
Angularjs in mobile app
 

測試是什麼