SlideShare a Scribd company logo
測試是什麼!?
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

More Related Content

What's hot

探索的テスト入門
探索的テスト入門探索的テスト入門
探索的テスト入門
H Iseri
 
Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1
cohama
 
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
Satoshi Masuda
 
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめTDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
Kei Sawada
 
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト  モバイルゲームのUIを自動的に検出・操作する モンキーテストゴリラテスト  モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
KLab Inc. / Tech
 

What's hot (20)

20110118 scrum 10 mins
20110118 scrum 10 mins20110118 scrum 10 mins
20110118 scrum 10 mins
 
探索的テスト入門
探索的テスト入門探索的テスト入門
探索的テスト入門
 
Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1
 
ユーザーストーリーの分割
ユーザーストーリーの分割ユーザーストーリーの分割
ユーザーストーリーの分割
 
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
 
Python製BDDツールで自動化してみた
Python製BDDツールで自動化してみたPython製BDDツールで自動化してみた
Python製BDDツールで自動化してみた
 
探索的テストはじめの一歩 #wacate
探索的テストはじめの一歩 #wacate探索的テストはじめの一歩 #wacate
探索的テストはじめの一歩 #wacate
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡イケてない開発チームがイケてる開発を始めようとする軌跡
イケてない開発チームがイケてる開発を始めようとする軌跡
 
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめTDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
 
What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
 
SpringBootTest入門
SpringBootTest入門SpringBootTest入門
SpringBootTest入門
 
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト  モバイルゲームのUIを自動的に検出・操作する モンキーテストゴリラテスト  モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
 
Discordから バーチャルオフィス「Teamflow」 に乗り換えてみた 雑談を生む工夫
Discordから バーチャルオフィス「Teamflow」 に乗り換えてみた 雑談を生む工夫Discordから バーチャルオフィス「Teamflow」 に乗り換えてみた 雑談を生む工夫
Discordから バーチャルオフィス「Teamflow」 に乗り換えてみた 雑談を生む工夫
 
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
Paradigm shifts in QA for AI products
Paradigm shifts in QA for AI productsParadigm shifts in QA for AI products
Paradigm shifts in QA for AI products
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 

Similar to 測試是什麼

PHPUnit slide formal
PHPUnit slide formalPHPUnit slide formal
PHPUnit slide formal
jameslabs
 
现代化敏捷测试工作者
现代化敏捷测试工作者现代化敏捷测试工作者
现代化敏捷测试工作者
Yi Xu
 
Rails 炸機實務
Rails  炸機實務Rails  炸機實務
Rails 炸機實務
Manic
 
JS单元测试之路
JS单元测试之路JS单元测试之路
JS单元测试之路
Jeaf Wang
 
Top100summit 游戏中的自动化测试 - 金山 - 白银祖
Top100summit 游戏中的自动化测试 - 金山 - 白银祖Top100summit 游戏中的自动化测试 - 金山 - 白银祖
Top100summit 游戏中的自动化测试 - 金山 - 白银祖
drewz lin
 
Testing survey
Testing surveyTesting survey
Testing survey
Tao He
 
Nhibernate+sqlite測試實戰經驗分享
Nhibernate+sqlite測試實戰經驗分享Nhibernate+sqlite測試實戰經驗分享
Nhibernate+sqlite測試實戰經驗分享
Wade Huang
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
zhoujg
 

Similar to 測試是什麼 (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
 

More from 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
 

測試是什麼