本文章轉載于搜狗測試
前言
小編曾經也是一個沒有測試經驗的小白,且被leader評價為測試發散度、靈敏度不夠。但半年后,小編在組內多次隨機測試比賽中獲得了第一名(發現bug最多),當然組內不乏從事軟件測試多年的老員工。現在的你,想和小編一樣快速逆襲為大咖嗎?下面小編以親身經歷帶你快速進階。
何謂隨機測試?
顧名思義,隨機測試是一種脫離執行測試用例的測試方法,存在一定的自由性。同時因為名字,隨機測試一直被誤解。為了讓大家更準確的理解自己,它有了另外一個名字--探索式測試。何謂探索?探索宇宙,一個耳熟能詳的名詞,人類從古代起一直在不斷的通過各種方式了解宇宙,從玉皇大帝到現代的衛星、加加林登錄月球、載人航天飛船升天。這一系列的行為都是在探索宇宙奧秘。由此可見,探索是一種有目的為了發現未知事情的一種行為。想要取得好的探索結果,需要一定的技術支撐,否則只能停留在玉皇大帝的幻想中了。
隨機測試之誤解分析
1)隨機測試是自由測試,測試沒有重點,漫無目的嘗試各種情況試圖發現軟件缺陷
答:如果準備不充分,沒有條理,缺乏方針,沒有思想的盲目測試,就會對某些功能重復測試多次,導致測試效率低下,有多個測試人員和測試團隊共同測試的時候此情況會更嚴重 。
2)隨機測試沒有文檔,所以不需要進行任何準備
答:孫子兵法中說夫未戰而廟算勝者,得算多也;未戰而廟算不勝者,得算少也。多算勝,少算不勝,而況于無算乎!古時打仗如此,隨機測試亦如此。如果想取得好的隨機結果,需要做好充分準備。
隨機測試的準備工作
1)明確測試范圍
隨機測試分為局部測試和全局測試。局部測試是指針對軟件的部分功能進行測試。全局測試是指針對軟件的所有功能進行測試。測試前明確要測試的功能范圍,并對需求內容了然于胸。
2)了解測試功能的基本信息
隨機測試一般是在軟件功能一輪測試結束之后進行,當然也有一些版本迭代快的產品一開始就隨機測試。需要了解的信息包括一輪測試覆蓋薄弱的部分,開發人員技術高低,與測試功能相關聯的功能,功能是新功能還是老功能。
3)了解功能產生的原因及要達到的效果
此處屬于提升版,通過了解軟件產生背景,便于我們理解產品需求,從而感知產品設計上的缺陷。
如何提高隨機測試能力
A. 發散度
通過看同事報的bug,分析其發現bug的思路,考慮的角度。通過了解別人提的bug可以了解自己所在項目產品一般會出現哪些方面的bug。
B. 敏感度
1)對需求了然于胸,知道需求要達到的目的,開發實現是否符合產品預期。
2)從用戶角度感知產品,是否便于用戶操作,流程如否合理。
C. Bug定位力
分析典型bug,了解bug產生的原因,以及開發的修改方案,分析修改的方案是否存在缺陷。知道原因后,下次測試遇到同樣問題就可以知道bug產生的原因了。
原bug:在注音輸入法測試鍵盤語音的時候,APP掛入后臺,鍵盤啟動語音會失敗。開發對此的修改方案是判斷語音如果失敗,則再次跳轉APP啟動。
新bug:APP未掛入后臺時,啟動鍵盤語音時會多次跳轉到APP進行啟動。
由于了解了原bug的原因,發現新bug后立即定位是修改原bug出現的新bug。
D. Bug發現延伸力
了解一個bug原因后,舉一反三。思考同樣的原因,其他地方是否也存在問題,并進行驗證。
原bug:搜狗輸入法快捷符號區在系統鬧鐘標簽頁顏色顯示有問題。原因是label顏色刷新有問題。
延伸bug:驗證花漾字、按鍵音等界面同樣操作也存在問題。
隨機測試常用方法
破壞法:場景是破壞活動的絕好開始。對于一些使用測試人員能訪問資源的功能。在運行場景的時候,可以進行破壞。
例:搜狗輸入法語音功能有一個自動返回微信和QQ功能,返回功能實現方式是通過模擬iPhone手機左上角的返回前置應用實現,在使用此功能時,如果有消息通知,電話通知等打斷時,此功能返回失敗。后期開發針對此bug進行了特殊處理,在被消息打斷的情況下依然可以正常自動返回。
極限法:采用的途徑是向軟件提出很多難以回答的問題。如如何使軟件發揮到最大限度?那些輸入和數據會耗費軟件最多的運算能力?
例:輸入法中有很多文本框限制字數,對于這些文本框需要測試超過限定的字數輸入法會有什么表現,以及輸入一些特殊字符如emoji的表現。
取消法:不但充分利用了取消按鈕,而且執行了啟動和停止功能。
例:輸入法中有一個語音自動返回功能,從QQ或微信跳轉到APP語音輸入界面,有內容上屏后單擊home鍵或者手機鎖屏,還是會自動返回微信或QQ。此問題原因是開發未對取消操作進行處理。
暴力法:進行一些非常規操作,意在看軟件是否會出現崩潰。
例:小編在最近測試注音輸入法時,一只手的5個手指全在鍵盤上,隨機打字上屏等操作。通過測方法,發現了輸入法代碼中多個崩潰問題。
逆向思維法:通過相反的思維方式測試軟件,驗證軟件針對逆向行為是否進行了特殊處理。
例:小編在一次測試輸入法大白狗功能時,大白狗開關開啟在鍵盤上打字正常。但是將開關關閉后,大白狗數據沒有記錄,上傳也正常。但是在鍵盤上連續打字幾分鐘后,鍵盤開始卡頓出現各種問題。后期開發排查原因時發現大白狗線程為了防止多線程訪問造成問題,在大白狗數據寫入內存時會鎖線程,記錄完成后解鎖。但是大白狗開關關閉后,開發未對此情況進行解鎖處理,導致線程一直被鎖,出現其他線程訪問時一直訪問不了。
隨機測試之收益
1)可以發現正常思路不容易發現的bug
2)可以發現隱藏路徑比較深的bug
3)可以發現新功能與老功能交叉位置的隱患
4)通過已有bug擴展延伸發現新bug
福利來嘍!!
小伙伴們如果想更系統的了解探索式測試,給大家推薦一本書《探索式軟件測試》