SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
測試是什麼!?
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

Contenu connexe

Tendances

デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)Masahiro Nishimi
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTakuto Wada
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術Takuto Wada
 
シン モブ・プログラミング 第三形態
シン モブ・プログラミング 第三形態シン モブ・プログラミング 第三形態
シン モブ・プログラミング 第三形態atsushi nagata
 
如何設計電腦 -- 還有讓電腦變快的那些方法
如何設計電腦  -- 還有讓電腦變快的那些方法如何設計電腦  -- 還有讓電腦變快的那些方法
如何設計電腦 -- 還有讓電腦變快的那些方法鍾誠 陳鍾誠
 
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~Yuta Matsumura
 
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2Alan Tsai
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターンSoudai Sone
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』Yoshitaka Kawashima
 
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)William Yeh
 
為了推動自動化測試,你付出了多少?
為了推動自動化測試,你付出了多少?為了推動自動化測試,你付出了多少?
為了推動自動化測試,你付出了多少?Zen K.C
 
power-assert in JavaScript
power-assert in JavaScriptpower-assert in JavaScript
power-assert in JavaScriptTakuto Wada
 
TDD のこころ
TDD のこころTDD のこころ
TDD のこころTakuto Wada
 
敏捷軟體開發方法與 Scrum 簡介
敏捷軟體開發方法與 Scrum 簡介敏捷軟體開發方法與 Scrum 簡介
敏捷軟體開發方法與 Scrum 簡介曦 徐
 
Fitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化についてFitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化についてtecopark
 
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指してアジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して増田 亨
 
闇魔術を触ってみた
闇魔術を触ってみた闇魔術を触ってみた
闇魔術を触ってみたSatoshi Sato
 
MySQLerの7つ道具 plus
MySQLerの7つ道具 plusMySQLerの7つ道具 plus
MySQLerの7つ道具 plusyoku0825
 

Tendances (20)

デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
 
シン モブ・プログラミング 第三形態
シン モブ・プログラミング 第三形態シン モブ・プログラミング 第三形態
シン モブ・プログラミング 第三形態
 
如何設計電腦 -- 還有讓電腦變快的那些方法
如何設計電腦  -- 還有讓電腦變快的那些方法如何設計電腦  -- 還有讓電腦變快的那些方法
如何設計電腦 -- 還有讓電腦變快的那些方法
 
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~
 
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
 
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
從系統思考看 DevOps:以 microservices 為例 (DevOps: a system dynamics perspective)
 
為了推動自動化測試,你付出了多少?
為了推動自動化測試,你付出了多少?為了推動自動化測試,你付出了多少?
為了推動自動化測試,你付出了多少?
 
power-assert in JavaScript
power-assert in JavaScriptpower-assert in JavaScript
power-assert in JavaScript
 
TDD のこころ
TDD のこころTDD のこころ
TDD のこころ
 
敏捷軟體開發方法與 Scrum 簡介
敏捷軟體開發方法與 Scrum 簡介敏捷軟體開發方法與 Scrum 簡介
敏捷軟體開發方法與 Scrum 簡介
 
いつやるの?Git入門
いつやるの?Git入門いつやるの?Git入門
いつやるの?Git入門
 
Fitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化についてFitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化について
 
アジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指してアジャイルなソフトウェア設計を目指して
アジャイルなソフトウェア設計を目指して
 
闇魔術を触ってみた
闇魔術を触ってみた闇魔術を触ってみた
闇魔術を触ってみた
 
MySQLerの7つ道具 plus
MySQLerの7つ道具 plusMySQLerの7つ道具 plus
MySQLerの7つ道具 plus
 

Similaire à 測試是什麼

從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (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
 

Similaire à 測試是什麼 (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
 

Plus 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
 

Plus 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
 

測試是什麼