什么是探索性測試?
1、探索性測試的定義
探索性測試(ET)是敏捷世界里的一種重要測試方法,作為一個研究性的工具,它是用戶故事測試和自動化回歸集的重要補充。它是一種經(jīng)過深思熟慮的測試方式,沒有測試腳本,可以使你的測試超出各種明顯已經(jīng)測試過的場景。探索測試將學習,測試設(shè)計和測試執(zhí)行整合在一起,形成一種測試方法。
探索性測試的最大特色是在對測試對象進行測試的同時學習測試對象并設(shè)計測試,在測試過程中運用獲得的關(guān)于測試對象的信息設(shè)計新的更好的測試。他的典型過程如下圖:
這相對于傳統(tǒng)軟件測試過程中嚴格的“先設(shè)計,后執(zhí)行”來說,是具有很大區(qū)別的。
2、探索性測試的基本過程
探索性測試的基本過程包括如下:
識別軟件系統(tǒng)的目的;
識別軟件系統(tǒng)提供的功能;
識別軟件系統(tǒng)潛在的不穩(wěn)定的區(qū)域;
在探索軟件系統(tǒng)的過程中記錄關(guān)于軟件的消息和問題;
創(chuàng)建一個測試綱要,使用它來執(zhí)行測試。
注意:上面的過程是一個循環(huán)的過程,并且沒有很嚴格的執(zhí)行順序,完全能夠先創(chuàng)建測試綱要,執(zhí)行測試,然后在測試中進修軟件系統(tǒng);也能夠先探索軟件系統(tǒng)的各個區(qū)域,然后再列出需要測試的要點。
探索性測試強調(diào)創(chuàng)新的測試思維,在測試過程中不斷地出現(xiàn)許多關(guān)于測試的新想法,
因而就像一把叉,下圖就是一個所謂的“探索叉”(exploratory forks)。
探索性測試強調(diào)測試過程中要有更多的發(fā)散思維,這也是與保守測試方式的最大區(qū)別。
保守測試方式強調(diào)設(shè)想完善的測試用例,測試人員嚴格按測試用例執(zhí)行測試,這多少限制了測試人員的測試思維,測試人員往往缺乏主觀能動性。
下圖展示了一個發(fā)散思維的過程,探索性測試強調(diào)發(fā)散,但并不是盲目地發(fā)散,在適當?shù)臅r候還要收斂回來。
例如,當發(fā)覺在一個測試的分支路徑上已經(jīng)花了很長時間也沒有找到問題的答案時,則能夠考慮先放棄那個區(qū)域的探索,因為還有一個主線的測試任務。
探索性測試尤其適合于那些需求不是很明確的測試任務,或者是一名剛剛接手一項新的測試任務的測試人員使用。
3、探索性測試的價值
3.1、探索性測試可以用來找到深層次的BUG。
因為探索性測試人員是優(yōu)秀的觀察者,他們觀察不正常和不期望的結(jié)果,并進行認真的思考,這種狀態(tài)和按部就班的執(zhí)行用例是不一樣的,因此,它更容易發(fā)現(xiàn)一些隱藏的很深的問題。
3.2、探索性測試可以加深測試人員對被測系統(tǒng)的了解。
探索性測試強調(diào)對被測試對象的學習,并且是在測試過程中的學習,并在此基礎(chǔ)上設(shè)計測試,因此,它使測試人員更容易深入的理解被測系統(tǒng)。
4、探索性測試的誤區(qū)
4.1、不要將探索性測試和隨機測試混淆。
探索性測試不是在鍵盤錢坐下并敲擊,沒有熟練技能,不會認真思考的“黑盒”測試人員所做的并不是探索性測試,一個合格的探索性測試人員需要認真思考和分析結(jié)果,并且在探索測試的過程中做記錄。
4.2、不要將探索性測試和回歸測試混淆。
探索性測試更注重的是思考和學習,不斷發(fā)現(xiàn)新的問題,而版本的回歸測試,是對原有的功能的保證,為持續(xù)迭代構(gòu)筑安全網(wǎng)。重復的功能回歸測試應該盡量用自動化的方式來完成,這樣,才有足夠的人力來進行探索性測試。
4.3、探索性測試不能用來評估軟件質(zhì)量。
盡管探索性測試是一種有效的測試方法,但是它不意味著是一種全面覆蓋的測試方法。如果你要評估測試是否全面,可能你需要其他的手段。
本文作者?reach296
探索性測試強調(diào)測試過程中學習,那么測試依據(jù)從何而來?是不是要前置于常規(guī)測試?