腳本測試(Scripted Test,簡稱ST)
- 一般是先根據(jù)需求文檔編寫測試用例,而后由測試人員本人或他人再根據(jù)測試用例的具體描述步驟(腳本)進(jìn)行執(zhí)行與驗(yàn)證。這種是已經(jīng)持續(xù)了幾十年的測試方法。
- 存在的缺點(diǎn):傳統(tǒng)腳本測試的速度,無法應(yīng)對敏捷快速交付。迭代周期在1-2周,無法花費(fèi)大量的時(shí)間寫詳細(xì)的用例。頻繁的需求變成導(dǎo)致需要花大量的時(shí)間來更新和維護(hù)測試用例。
探索式測試(Exploratory Testing)
- 其實(shí)本質(zhì)是一種測試思維方法,強(qiáng)調(diào)要根據(jù)當(dāng)前的實(shí)際情況來選擇最合適的測試技術(shù)進(jìn)行測試。
- 關(guān)鍵就是:邊學(xué)習(xí)、邊設(shè)計(jì)、邊測試、邊思考。
- 測試專家 Cem Kaner 博士在1983年提出探索式測試,后來,Kaner 博士在2006年1月Exploratory Testing Research Summit 會議上將探索式測試的定義為:
Exploratory software testing is a style of software testing that emphasizes the personal freedom and responsibility of the individual tester to continually optimize the value of her work by treating test-related learning, test design, test execution, and test result interpretation as mutually supportive activities that run in parallel throughout the project. - 探索式測試是一種強(qiáng)調(diào)測試人員的自由和責(zé)任以不斷優(yōu)化其工作價(jià)值的測試方法,它通過將學(xué)習(xí)、測試設(shè)計(jì)、測試執(zhí)、測試結(jié)果行作為互相支持的活動在整個(gè)項(xiàng)目過程中并行執(zhí)行。

探索式測試.png
適用場景
- 時(shí)間相對較緊張、測試對象說明不完善。
- 需要快速學(xué)習(xí)一款產(chǎn)品。
- 想要在最短的時(shí)間內(nèi)發(fā)現(xiàn)最多嚴(yán)重的bug。
- 想要檢查一個(gè)測試人員的工作。
優(yōu)點(diǎn)
- 不用預(yù)先費(fèi)時(shí)費(fèi)力的做計(jì)劃,在開發(fā)完成后立即開始測試。
- 以用戶的角度來測試,以保護(hù)頻繁迭代的用戶體驗(yàn)。
- 側(cè)重于分析潛在風(fēng)險(xiǎn),測試人員通過發(fā)散性思維去思考每個(gè)模塊。
值得注意
- 他不是新的測試技術(shù),只是一種測試風(fēng)格或者方法。在測試過程中,還是會用到常規(guī)的測試用例設(shè)計(jì)方法。
- 和敏捷宣言更強(qiáng)調(diào)個(gè)體一樣,探索式測試同樣強(qiáng)調(diào)測試人員個(gè)人的主觀能動性。
- 探索式測試把測試學(xué)習(xí)、測試設(shè)計(jì)和測試執(zhí)行這些在傳統(tǒng)腳本測試中需要分開不同階段來完成的任務(wù)并行的執(zhí)行,以此可以最快的得到反饋,并且指導(dǎo)優(yōu)化下一輪的迭代。
與隨機(jī)測試的區(qū)別
- 隨機(jī)測試就是不動腦子的隨機(jī)點(diǎn)點(diǎn)點(diǎn)。
- 探索式測試是有策略的發(fā)散性測試。這種通過對前一個(gè)結(jié)果的反饋進(jìn)行分析然后指導(dǎo)和優(yōu)化重新設(shè)計(jì)問題的方式其實(shí)就是探索式測試的核心理念所在,它和沒有策略完全依靠隨機(jī)的方式是截然不同的。
何時(shí)選用探索式測試
| 類別 | 時(shí)間緊迫 | 時(shí)間充裕 |
|---|---|---|
| 需求不明確/變更頻繁 | 探索式測試 | 探索式測試為主,腳本測試為輔 |
| 需求明確/變更少 | 探索式測試為主,腳本測試為輔 | 腳本測試為主,探索式測試為輔 |
探索式測試的思維模型 CPIE
- 整理(Collation):盡最大可能收集關(guān)于被測產(chǎn)品的信息,去了解和理解它們。
- 排序(Prioritization):確定所有測試任務(wù)的優(yōu)先級。
- 調(diào)查(Investigation):對即將執(zhí)行的測試任務(wù)進(jìn)行仔細(xì)的分析并確定測試輸入和預(yù)期輸出。
- 實(shí)驗(yàn)(Experimentation):實(shí)際地去測試,驗(yàn)證我們的預(yù)測是否正確,檢查我們在整理階段獲取到的信息是否正確。根據(jù)實(shí)驗(yàn)結(jié)果,測試人員將收集更多的信息,并調(diào)整測試任務(wù)的優(yōu)先級。強(qiáng)調(diào)通過Experiment來持續(xù)改進(jìn)測試設(shè)計(jì)。
流程管理
- 在敏捷測試中,以探索式測試為主,如果沒有流程管理,容易忽略測試目標(biāo),保證不了產(chǎn)品的質(zhì)量和測試效率。
- 探索式測試在具體執(zhí)行方面,一般會采用一種稱之為Session-Based Testing management(簡稱SBTM)“基于測程的測試管理”的方法來進(jìn)行測試。
- SBTM是指會話時(shí)間(30min、60min)內(nèi)完成一個(gè)具體特定測試目標(biāo),在會話時(shí)間內(nèi)對測試學(xué)習(xí)、測試設(shè)計(jì)、測試執(zhí)行、測試結(jié)果評估進(jìn)行快速迭代。圍繞著目標(biāo)不斷地拷問、質(zhì)疑被測系統(tǒng)。

SBTM.png
參考鏈接
相關(guān)資料
- 《敏捷軟件測試:測試人員與敏捷團(tuán)隊(duì)的實(shí)踐指南》,Lisa Crispin
- 《探索式測試實(shí)踐之路》,史亮,高翔
- 《埃森哲探索式測試方案》
- 《全程軟件測試(第3版)》,朱少民