劉 燕,謝曉妤,劉 巖(中國電子科技集團(tuán)公司第二十八研究所,南京,210007)
?
探索式軟件測試方法分析
劉 燕,謝曉妤,劉 巖
(中國電子科技集團(tuán)公司第二十八研究所,南京,210007)
摘要:本文將從探索式軟件測試的定義、思維模式和特點上進(jìn)行闡述,論述如何制定優(yōu)質(zhì)的探索章程以及探索式軟件測試的應(yīng)用和未來前景。
關(guān)鍵詞:探索式測試;探索式思維過程;探索章程
軟件已經(jīng)與我們的生活息息相關(guān),軟件測試是為了發(fā)現(xiàn)軟件設(shè)計和實現(xiàn)過程中的疏忽,保證軟件質(zhì)量的重要手段。軟件測試是與軟件進(jìn)行交互,觀察其行為并與預(yù)期進(jìn)行比較。一方面,受數(shù)據(jù)、交互、順序、配置、時間等因素影響,事先創(chuàng)建覆蓋全部情況的測試集用例是不可能的,另一方面,很多的軟件缺陷和軟件潛在風(fēng)險并不是通過事先創(chuàng)建好的測試集用例發(fā)現(xiàn)的,軟件缺陷需要軟件測試人員運用探索式軟件測試方法,通過自己的能力進(jìn)行觀察發(fā)現(xiàn)潛在風(fēng)險進(jìn)行探索。
1.1定義
探索式軟件測試不是一個新近剛被提出來的測試技術(shù),也不是一種深奧的技術(shù)。事實上,許多測試人員在知覺和不知覺地使用了這種技術(shù)。2003年,Jame Bach 給出了探索式測試的一個廣泛定義,探索式測試就是同時進(jìn)行學(xué)習(xí)和同時進(jìn)行測試設(shè)計和執(zhí)行。之后2008年,Cem Kaner又給出來探索式測試較為完整的定義,探索式軟件測試是一種測試風(fēng)格,強調(diào)個人自由和個人測試的責(zé)任,不斷優(yōu)化測試人員的工作質(zhì)量,把測試學(xué)習(xí)、測試設(shè)計、測試執(zhí)行和測試結(jié)果解析視為相互支持的活動,它們在整個項目過程中并行的運行。
1.2探索式思維過程
探索式軟件測試的思維模型簡稱為CPIE:
收集(collation):測試人員需要收集所有關(guān)于被測系統(tǒng)的所有信息,去了解和理解;
劃分優(yōu)先級(prioritization):測試人員需要對所有待測試的任務(wù)或模塊或特性進(jìn)行優(yōu)先級的劃分;
分析(investigation):測試人員劃分好有效級后,就需要對確定即將測試的任務(wù)進(jìn)行仔細(xì)的分析并預(yù)測其可能輸出的結(jié)果;
實施(experimentation):測試人員需要實際的去進(jìn)行測試,看看測試預(yù)期是否正確,信息是否正確,就會循環(huán)得影響到收集(collation)階段。
探索式軟件測試強調(diào)實施(experimentation)階段,設(shè)計的再好的測試集用例,在沒有實際進(jìn)行測試之前,不知道是好還是不好或者還有沒有其它更好的測試思路。同樣可以發(fā)現(xiàn)CPIE過程是一個循環(huán)的過程,在探索式軟件測試過程中,設(shè)計測試和執(zhí)行測試是互相驅(qū)動和完善的過程。
1.3特點
探索式軟件測試的立場是測試人員結(jié)合場景真正使用了被測試系統(tǒng),只有對被測試系統(tǒng)有一定的了解和掌握,才能夠有效地對該系統(tǒng)進(jìn)行測試,在我們沒有真正接觸一個系統(tǒng)之前,我們很難完全了解這個系統(tǒng),雖然我們可以在測試計劃階段按照需求或設(shè)計要求寫出測試方案和測試用例,但寫出的測試方案和測試用例的可操作性有可能不強。對這種情況,探索式測試給測試者一個測試思路,如果我們可以在對系統(tǒng)的測試中逐步深入地學(xué)習(xí)該系統(tǒng),隨著測試人員在測試中對該系統(tǒng)越來越深入地了解,測試人員會注意到哪些情況是系統(tǒng)無法應(yīng)付自如的,這將指導(dǎo)下一個的測試,這使測試變得更加有效率。
2.1章程含義
測試人員進(jìn)行探索的終極目標(biāo)是搜尋那些有價值的信息。有價值的信息可分成三大類:
這就是我們的一個簡單的探索章程三段式模板。一個優(yōu)質(zhì)的探索章程既能提供給測試人員一個明確的導(dǎo)向,又不會過度細(xì)化成了測試用例。但如果探索章程太過于寬泛,無法給問題提供足夠的關(guān)注,即目標(biāo)太大,可能永遠(yuǎn)也完不成探索任務(wù)。
2.2制定探索章程
探索章程的制定是在提醒軟件測試人員集中精力關(guān)注某個特定種類的信息或風(fēng)險。舉例說明,在空中交通管制系統(tǒng)中,管制員是系統(tǒng)用戶,對用戶可能會做的修改經(jīng)緯度操作制定一個探索章程,如下所示:
這個探索章程只關(guān)注于飛行航線編輯功能,只對經(jīng)緯度的輸入錯誤時進(jìn)行探索。如果把資源改成“使用負(fù)的經(jīng)緯度”,那制定的這個探索章程就太具體了,已經(jīng)沒有什么可以探索的了,所以探索章程的制定,是在發(fā)現(xiàn)了一個不確定性或者是依賴關(guān)系不明確的信息進(jìn)行探索。
探索式軟件測試技術(shù)在某些情況下,它比腳本測試更高效,那么在什么樣的情況下應(yīng)用更為高效。
探索式軟件測試是測試人員根據(jù)現(xiàn)實場景進(jìn)行的一種主動測試,需要在有限的時間中選擇并做出正確的事情,需要有明確的戰(zhàn)略和方向,但又必須預(yù)留一定的空間和時間使每個測試人員可以充分運作起來,在測試的過程中隨機應(yīng)變。探索式軟件測試鼓勵著測試人員邊測試邊計劃,運用測試中收集到的信息,影響自己正在進(jìn)行測試的實際方式。
參考文獻(xiàn)
[1]James Bach,Exploratory Testing Explained[EB/ OL],2003.4.(1)http://www.satisfice.com/articles/etarticle.pdf
[2]Cem Kaner,A Tutorial in Exploratory Testing[EB/ OL],2008.4:(36).http://http://www.kaner.com/pdfs/ QAIExploring.pdf
Analysis of test method for exploring software
Liu Yan,Xie Xiaoyu,Liu Yan
(twenty-eighth Research Institute, China Electronic Technology Group Corporation,Nanjing,210007)
Abstract:In this paper,the definition,thinking mode and characteristics of exploratory software testing are discussed,and how to make the quality of the articles of association and the application and future prospects of exploratory software testing are discussed.
Keywords:exploratory testing;exploratory thinking process;exploration of the articles of association