- 在探索性測試中,我們設(shè)計和執(zhí)行測試是實時的。那么我們應(yīng)該怎樣組織我們的思維以使我們能思考出有價值的測試?有一種方式就是通過使用啟發(fā)式方法(heuristic)和記憶式方法(mnemonics)進(jìn)行。啟發(fā)式方法是一種“依據(jù)經(jīng)驗法則,簡單化或有依據(jù)的猜測”呼伸。舉個例子,在房間門口的地毯下找出鑰匙就是一種啟發(fā)式方法钝尸。相比之下括享,記憶式方法是用一種“用詞語,押韻蝶怔,或其它的記憶方法來將復(fù)雜而又冗長的信息進(jìn)行有效記憶的方式”奶浦。同時采用啟發(fā)式方法和記憶式方法,對我們在壓力下解決問題有非常大的幫助踢星。
SFDPO詮釋測試
- 在測試中我運用的啟發(fā)式方法和記憶式方法可稱為“San Francisco Depot”澳叉,或者稱為SFDPO。這些字母代表著Structure, Function, Data, Platform和Operations沐悦。每個詞代表著軟件產(chǎn)品一個不同的方面成洗。對于產(chǎn)品,思考以上提及的每個方面藏否,會使我想起很多非常有趣的測試方法瓶殃。所以當(dāng)我被要求去測試一些我從沒有見過的東西時,我會對自己說“San Francisco Depot”副签,回憶以上五個產(chǎn)品元素的每一個遥椿,然后開始思考我該測試些什么。
- Structure(它是什么):它有哪些文件組成淆储?我了解它的構(gòu)造信息嗎冠场?它是一個程序還是多個?它有哪些配套的材料本砰?我能按模塊劃分來測試嗎碴裙?
- Function(它能做什么):它的功能是什么?它有哪些錯誤處理呢点额?它有怎樣的界面呢舔株?它會做哪些用戶不可見的事情?它與操作系統(tǒng)是怎樣交互的还棱?
- Data(數(shù)據(jù)是如何處理的):有哪些怎樣的輸入载慈?輸出又是什么樣的?它能處于什么樣的模式或狀態(tài)诱贿?它是否會預(yù)先裝載數(shù)據(jù)娃肿?輸入是否對時間和順序上一定的要求呢咕缎?
- Platform(它依附于什么):它運行于什么樣的操作系統(tǒng)之上珠十?環(huán)境需要以某些特別的方式進(jìn)行配置嗎料扰?它依附于第三方組件嗎?
- Operations(它是怎樣被使用的):誰將使用它焙蹭?它會在哪里被使用晒杈,怎么使用?它被用于做什么孔厉?用戶有哪些特定的使用方式呢拯钻?我們能獲取一些用戶數(shù)據(jù)來幫助我們測試顯得更真實些?
思想之光
- 通過使用如SFDPO這樣的小技巧撰豺,我能非撤喟悖快速的得到一些關(guān)于產(chǎn)品的想法。但是我不只喜歡速度污桦,可靠性也是亩歹。在我發(fā)現(xiàn)SFDPO之前,我能想到很多測試的點子凡橱,但是我覺得這些點子是隨機(jī)和散亂的小作。我沒有方法來評估我分析的完整性。如今我掌握了啟發(fā)式方法和記憶式方法稼钩,雖然我知道我仍然會忘記掉測試某些東西顾稀,但是至少我已經(jīng)很系統(tǒng)地測過產(chǎn)品的主要方面。從測試方法到質(zhì)量標(biāo)準(zhǔn)坝撑,我已經(jīng)在每一件事情上使用啟發(fā)式方法静秆。
- 因為你知道的一些事情,并不會在它被需要的時候能被你想起巡李,所以SFDPO不一個模板或測試計劃抚笔,它僅僅是一種方法,在你測試的時候能使你產(chǎn)生很多重要的想法击儡。它是你有用的工具包中的一部分塔沃。如果你想成為一名出色的、可靠的探索性測試人員阳谍,最關(guān)鍵的事情是開始收集和創(chuàng)造能對你有用的啟發(fā)式方法庫蛀柴。同時,請記住矫夯,沒有任何啟發(fā)式智慧鸽疾。智慧其實在你心中,啟發(fā)式方法僅僅是喚起你心中的那些想法训貌,如同一些排序好的認(rèn)知鬧鐘制肮,它并不能告訴你準(zhǔn)確的行動步驟在何時何處冒窍。這就是技能和經(jīng)驗所在。
- 好的測試是一門微妙的藝術(shù)豺鼻,對此你應(yīng)該掌握一些有效的工具综液。
后記(譯者)
- 一直以來,對探索性測試到底該怎么進(jìn)行都心存迷惑儒飒。也看到過很多人感慨谬莹,對于一個陌生的軟件,怎樣能快速的發(fā)現(xiàn)bug這樣一個問題感到?jīng)]有思路桩了,或許此文能提供些借鑒和參考