SlideShare a Scribd company logo
1 of 34
Download to read offline
淺談 Model-Based Testing &
Graphwalker 導入心得
scott.hsiao@gmail.com
12/31/2015
你印象中的測試是什麼?
測試是...
程式怎麼可能有問題,根本浪費時間?
一直退件,阻擋產品上市,把我搞得很黑的討厭鬼?
要動用好多人力物力,但好像沒什麼產出跟效益?
要寫好多測試項目,是沒什麼技術性的工作?感覺很麻煩?
進度落後、交期很趕,那就壓縮測試時間就好?
交給客戶(白老鼠)全民公測就好?
出貨後客戶端出大包時,拿來擋子彈的對象?
優點:
重用性、擴充性、靈活
性....
大家每天在碰的東西
這不用多做解釋了吧....
物件導向開發
當程式都用物件導向
開發了...
測試還停留在程序語
言時代
回頭看看主流的測試技法
「測項標題」產生器
看看這個例子:
某檔案總管的清單功能支援
X種語系,Y個檔案格式,Z個
使用者操作手勢,
請問要完整測試會有幾種測
項排列組合?
如果再考慮N種系統、M種背
景事件呢?
測試步驟跟測試項目清單
僵固(沒人
性)的步驟
如老太婆裹
腳布的超長
測項清單
無法避免的緊箍咒
人工測試曠日廢時!
永遠不足的測試覆蓋率!
不斷成指數成長的維護成本!
那假如導入自動測試呢?
測試設備成本跟工程師人工成本還是跑不掉
問題解決了一半,緊箍咒還是存在
人工測試曠日廢時!
永遠不足的測試覆蓋率!
不斷成(指數)倍數成長的維護成本!
人家都上太空了,我們還在殺豬公
如愚公移山,如夸父追日,難矣
測試也可以很酷!?
寫過 Android 都知道的
猴子測試 (Monkey Testing)
● 隨機產生點擊、輸入、手勢等
動作
● 可自訂各種事件比例、間隔時
間
無腦有效但常常鬼打牆
Android 平台限定
猴子測試 (Monkey Testing)
有沒有能夠完整驗證物件設計,
又具有猴子無腦特性的測試工具?
Model-Based Testing =
物件導向精神 + 猴子無腦測試
Understanding Model - Based - Testing
重點複習
軟體應用環境日漸複雜
重大關鍵應用如交通運輸等品質不能妥協
要尋求更合理有效的方法來進行測試
MBT可以依照預設的FSM隨機走訪
新增功能也只需在架構中加入新的狀態跟連線就好
透過MBT可以用最少的自動化測試步驟確保系統如預期運作
Project GraphWalker
MIT Licensed Open Souce Project: Homepage
All Source Codes are Available on GitHub
Main Contributors:
Kristian Karl, Nils Olsson @Spotify
Spotify SQA用GW解決多屏一雲的複雜測試難題
以亞馬遜網路書店找書購物車買書流程為例
MBT 技術的優點
重用性:程式中應用到同樣的物件,可以套用同樣
的測試模型
擴充功能性:新版加入的功能,不需要翻新檢查所
有測項,只需調整對應的模型跟函式
靈活性:能動態改變測試參數與執行流程,隨機進
行測試發現問題
MBT 這好東西要怎麼用?
Test
Result
流程步驟
Graph
Walking
GraphML
Model
Runner
w/stubs
Runner
w/functions
Modeling
(yED)
Stub
Generator
Actions
Scripting
1
2
3
4 5
Step 1: 建模 (產生GraphML格式的物件模型) 1/2
建議使用 yED
免費的GraphML繪製
工具
基於Java,支援各種作
業系統
Step 1: 建模 (產生GraphML格式的物件模型) 2/2
語法範例
e_C [login == true] / eC++
e_C:edge 的名稱是 e_C
[login == true]:限制條件是 login 為真
/ eC++:動作是把 eC這個變數的值 +1
Step 2: 生成 Stubs (假的函示)
$ java -jar gw.jar source -i merged.graphml .
/lib/python.template > merged.py
Step 3: 把Stub填入動作變成可以執行的函式
Step 4: 把模型跟函式透過 GraphWalker 引擎跑
// 啟動 GW Online Service
$ java -jar gw.jar online --json --service RESTFUL -
m merged.graphml "random(edge_coverage(100))"
&
// 執行 GW runner
$ python merged.py
Step 5: 等結果
Live Demo
這樣就夠了嗎?
SQA 自行開發的外掛工具
GraphML接圖程式(多人協力)
模組繪製檢查機制
錯誤續跑機制
JUnit 格式報告
Jenkins 整合
固定路徑測試
自動測試治具 (App/Web)
● Android
● iOS
● Windows
● MacOS
● Linux
參考引用來源
GraphWalker:
● Official Webpage: http://graphwalker.org/index
● GitHub: https://github.com/GraphWalker
● Discuss Group: https://groups.google.com/forum/#!forum/graphwalker-3
測項產生器拉霸機:http://slot.miario.com/machines/136965
介紹影片:Understand MBT - Youtube, GW Amazon Example - Youtube
程序語言與物件導向程式語言概念圖:http://www.bbc.co.
uk/education/guides/z3fgcdm/revision/7

More Related Content

Viewers also liked

Marketing corporation ppt
Marketing corporation pptMarketing corporation ppt
Marketing corporation pptsleazemanjp
 
Performance Platform Presentation
Performance Platform PresentationPerformance Platform Presentation
Performance Platform PresentationWilliam Roissetter
 
компетентностный подход в образовании
компетентностный подход в образованиикомпетентностный подход в образовании
компетентностный подход в образованииolegkorobko
 
The Shocking True Cost Of A Bad Hire
The Shocking True Cost Of A Bad HireThe Shocking True Cost Of A Bad Hire
The Shocking True Cost Of A Bad HireExecutives Online
 
Nodokļu atlaides ziedotājiem
Nodokļu atlaides ziedotājiemNodokļu atlaides ziedotājiem
Nodokļu atlaides ziedotājiemZane Ruģēna
 
MAXIMO 6.2 BASICS OVERVIEW
MAXIMO 6.2 BASICS OVERVIEWMAXIMO 6.2 BASICS OVERVIEW
MAXIMO 6.2 BASICS OVERVIEWRAKESH SINGH
 
大学付属教育放送局から公共放送組織へ -Frieda Hennock・Ford Foundation・Carnegie Commissionが果たした役割-
大学付属教育放送局から公共放送組織へ -Frieda Hennock・Ford Foundation・Carnegie Commissionが果たした役割-大学付属教育放送局から公共放送組織へ -Frieda Hennock・Ford Foundation・Carnegie Commissionが果たした役割-
大学付属教育放送局から公共放送組織へ -Frieda Hennock・Ford Foundation・Carnegie Commissionが果たした役割-Koach Shigaki
 
Travelers suez canal
Travelers suez canalTravelers suez canal
Travelers suez canalebmt4
 
Introducing Security Guardian from ExactTrak
Introducing Security Guardian from ExactTrakIntroducing Security Guardian from ExactTrak
Introducing Security Guardian from ExactTrakSimon Cuthbert
 
достижение результатов
достижение результатовдостижение результатов
достижение результатовolegkorobko
 
FM 5-0 - Army Planning & Orders Production
FM 5-0 - Army Planning & Orders ProductionFM 5-0 - Army Planning & Orders Production
FM 5-0 - Army Planning & Orders ProductionKevin Parrish
 

Viewers also liked (14)

Shruti_ProjMgt_Ext
Shruti_ProjMgt_ExtShruti_ProjMgt_Ext
Shruti_ProjMgt_Ext
 
Marketing corporation ppt
Marketing corporation pptMarketing corporation ppt
Marketing corporation ppt
 
Performance Platform Presentation
Performance Platform PresentationPerformance Platform Presentation
Performance Platform Presentation
 
компетентностный подход в образовании
компетентностный подход в образованиикомпетентностный подход в образовании
компетентностный подход в образовании
 
The Shocking True Cost Of A Bad Hire
The Shocking True Cost Of A Bad HireThe Shocking True Cost Of A Bad Hire
The Shocking True Cost Of A Bad Hire
 
Nodokļu atlaides ziedotājiem
Nodokļu atlaides ziedotājiemNodokļu atlaides ziedotājiem
Nodokļu atlaides ziedotājiem
 
MAXIMO 6.2 BASICS OVERVIEW
MAXIMO 6.2 BASICS OVERVIEWMAXIMO 6.2 BASICS OVERVIEW
MAXIMO 6.2 BASICS OVERVIEW
 
大学付属教育放送局から公共放送組織へ -Frieda Hennock・Ford Foundation・Carnegie Commissionが果たした役割-
大学付属教育放送局から公共放送組織へ -Frieda Hennock・Ford Foundation・Carnegie Commissionが果たした役割-大学付属教育放送局から公共放送組織へ -Frieda Hennock・Ford Foundation・Carnegie Commissionが果たした役割-
大学付属教育放送局から公共放送組織へ -Frieda Hennock・Ford Foundation・Carnegie Commissionが果たした役割-
 
Travelers suez canal
Travelers suez canalTravelers suez canal
Travelers suez canal
 
Question 1
Question 1Question 1
Question 1
 
Introducing Security Guardian from ExactTrak
Introducing Security Guardian from ExactTrakIntroducing Security Guardian from ExactTrak
Introducing Security Guardian from ExactTrak
 
достижение результатов
достижение результатовдостижение результатов
достижение результатов
 
FM 5-0 - Army Planning & Orders Production
FM 5-0 - Army Planning & Orders ProductionFM 5-0 - Army Planning & Orders Production
FM 5-0 - Army Planning & Orders Production
 
Tikhy don
Tikhy donTikhy don
Tikhy don
 

Similar to 淺談 Model based testing 與 graphwalker 導入心得 20160127

應用設計思考1210 2
應用設計思考1210 2應用設計思考1210 2
應用設計思考1210 2Raymond Chang
 
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)Rick Hwang
 
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法TIM WANG
 
Frank‘s Learning Summary - Agile testing
Frank‘s Learning Summary - Agile testingFrank‘s Learning Summary - Agile testing
Frank‘s Learning Summary - Agile testingFrank Lee
 
從研發團隊管理及產品發展的角度看 DevOps
從研發團隊管理及產品發展的角度看 DevOps從研發團隊管理及產品發展的角度看 DevOps
從研發團隊管理及產品發展的角度看 DevOpsTIM WANG
 
[心得分享] 如何把使用者經驗做出來
[心得分享] 如何把使用者經驗做出來[心得分享] 如何把使用者經驗做出來
[心得分享] 如何把使用者經驗做出來Aco Wang
 
Hoper 20111026 nctu-q_usability_dist
Hoper 20111026 nctu-q_usability_distHoper 20111026 nctu-q_usability_dist
Hoper 20111026 nctu-q_usability_distturtleknight
 
The Lean Startup StudyGroup
The Lean Startup StudyGroupThe Lean Startup StudyGroup
The Lean Startup StudyGroupYiching Chen
 
About Usability可用性测试杂谈
About Usability可用性测试杂谈About Usability可用性测试杂谈
About Usability可用性测试杂谈Vinny Wu
 
敏捷高峰會-邊開火邊修正 - 最小產品可以如何嘗試.pdf
敏捷高峰會-邊開火邊修正 - 最小產品可以如何嘗試.pdf敏捷高峰會-邊開火邊修正 - 最小產品可以如何嘗試.pdf
敏捷高峰會-邊開火邊修正 - 最小產品可以如何嘗試.pdfVincent Lee
 
Our experience to start a startup
Our experience to start a startupOur experience to start a startup
Our experience to start a startupYenwen Feng
 
用户体验 @创业团队 2011-01-16
用户体验 @创业团队 2011-01-16用户体验 @创业团队 2011-01-16
用户体验 @创业团队 2011-01-16John Woo
 
创新工厂 -用户体验报告.
创新工厂 -用户体验报告.创新工厂 -用户体验报告.
创新工厂 -用户体验报告.VImLai
 
2012 May UiGathering: Design and Communication in Co-creation (by Ian Jang)
2012 May UiGathering: Design and Communication in Co-creation (by Ian Jang)2012 May UiGathering: Design and Communication in Co-creation (by Ian Jang)
2012 May UiGathering: Design and Communication in Co-creation (by Ian Jang)Ian Jang
 
TDD (Test-driven development, 測試驅動開發) 基本教學
TDD (Test-driven development, 測試驅動開發) 基本教學TDD (Test-driven development, 測試驅動開發) 基本教學
TDD (Test-driven development, 測試驅動開發) 基本教學潘 冠辰
 
银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011Yi Xu
 
现代化敏捷测试工作者
现代化敏捷测试工作者现代化敏捷测试工作者
现代化敏捷测试工作者Yi Xu
 
HP41- 令人迷惑的使用者研究方法 (蔡明哲)
HP41- 令人迷惑的使用者研究方法 (蔡明哲)HP41- 令人迷惑的使用者研究方法 (蔡明哲)
HP41- 令人迷惑的使用者研究方法 (蔡明哲)悠識學院
 

Similar to 淺談 Model based testing 與 graphwalker 導入心得 20160127 (20)

應用設計思考1210 2
應用設計思考1210 2應用設計思考1210 2
應用設計思考1210 2
 
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
 
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
 
20150206 aic machine learning
20150206 aic machine learning20150206 aic machine learning
20150206 aic machine learning
 
Frank‘s Learning Summary - Agile testing
Frank‘s Learning Summary - Agile testingFrank‘s Learning Summary - Agile testing
Frank‘s Learning Summary - Agile testing
 
從研發團隊管理及產品發展的角度看 DevOps
從研發團隊管理及產品發展的角度看 DevOps從研發團隊管理及產品發展的角度看 DevOps
從研發團隊管理及產品發展的角度看 DevOps
 
單元測試
單元測試單元測試
單元測試
 
[心得分享] 如何把使用者經驗做出來
[心得分享] 如何把使用者經驗做出來[心得分享] 如何把使用者經驗做出來
[心得分享] 如何把使用者經驗做出來
 
Hoper 20111026 nctu-q_usability_dist
Hoper 20111026 nctu-q_usability_distHoper 20111026 nctu-q_usability_dist
Hoper 20111026 nctu-q_usability_dist
 
The Lean Startup StudyGroup
The Lean Startup StudyGroupThe Lean Startup StudyGroup
The Lean Startup StudyGroup
 
About Usability可用性测试杂谈
About Usability可用性测试杂谈About Usability可用性测试杂谈
About Usability可用性测试杂谈
 
敏捷高峰會-邊開火邊修正 - 最小產品可以如何嘗試.pdf
敏捷高峰會-邊開火邊修正 - 最小產品可以如何嘗試.pdf敏捷高峰會-邊開火邊修正 - 最小產品可以如何嘗試.pdf
敏捷高峰會-邊開火邊修正 - 最小產品可以如何嘗試.pdf
 
Our experience to start a startup
Our experience to start a startupOur experience to start a startup
Our experience to start a startup
 
用户体验 @创业团队 2011-01-16
用户体验 @创业团队 2011-01-16用户体验 @创业团队 2011-01-16
用户体验 @创业团队 2011-01-16
 
创新工厂 -用户体验报告.
创新工厂 -用户体验报告.创新工厂 -用户体验报告.
创新工厂 -用户体验报告.
 
2012 May UiGathering: Design and Communication in Co-creation (by Ian Jang)
2012 May UiGathering: Design and Communication in Co-creation (by Ian Jang)2012 May UiGathering: Design and Communication in Co-creation (by Ian Jang)
2012 May UiGathering: Design and Communication in Co-creation (by Ian Jang)
 
TDD (Test-driven development, 測試驅動開發) 基本教學
TDD (Test-driven development, 測試驅動開發) 基本教學TDD (Test-driven development, 測試驅動開發) 基本教學
TDD (Test-driven development, 測試驅動開發) 基本教學
 
银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011
 
现代化敏捷测试工作者
现代化敏捷测试工作者现代化敏捷测试工作者
现代化敏捷测试工作者
 
HP41- 令人迷惑的使用者研究方法 (蔡明哲)
HP41- 令人迷惑的使用者研究方法 (蔡明哲)HP41- 令人迷惑的使用者研究方法 (蔡明哲)
HP41- 令人迷惑的使用者研究方法 (蔡明哲)
 

淺談 Model based testing 與 graphwalker 導入心得 20160127