正文 探索性測試的實施與理解(1 / 3)

探索性測試的實施與理解

學術交流

作者:張歆薇

【摘要】傳統的麵向故障的軟件測試方法存在限製條件高精確程度與低誤報率無法兼得的瓶頸效果。而高誤報率直接導致軟件測試成本的增加和效率的低下。本文通過對探索性測試方法的研究中得出該方法的使用場合與特點,從而希望能在有限的軟件測試成本內找出與腳本測試相結合的最佳方法。利用探索性測試,能顯著提高軟件測試的效率。

【關鍵詞】軟件測試;探索性測試;測試方法;缺陷效率

隨著軟件測試技術的不斷發展,各種新穎的測試技術越來越受到軟件測試人員的關注。探索性軟件測試是其中一種比較前沿的理論,尤其適用於那些要求在短時間內發現被測軟件一些重要缺陷或事先沒有能夠進行詳細測試設計的情況。探索性軟件測試強大的缺陷發現效率是其得到眾多青睞的重要原因之一。如何選擇合適的測試方法?我們針對三種測試方法(腳本測試,探索性測試和自動化測試)區別以及他們之間的合作關係展開一定的討論。

1.調研目的

1.1 軟件測試現狀和問題

軟件測試是軟件開發生命周期中不可或缺的用來保證軟件質量、提高軟件可靠性的重要階段。基於傳統理論的軟件測試,理論上都要求盡可能早地引入軟件測試過程。

而在實際的測試過程中,我們所遇到的問題很多:首當其衝的就是長期處於瀑布模型下的軟件工程,將測試工作安排並推遲到了開發周期結束階段進行,導致大量的測試工作,包括功能測試、集成測試以及性能測試都堆積到了末期進行。其次,沒有有效地利用自動化測試這一先進技術也是目前軟件質量備受質疑的關鍵因素。雖然很多公司都非常推崇軟件測試自動化這一理念。可真正用到實處能夠事半功倍的畢竟不是很多。第三,需求變更得頻繁性也是一個讓項目經理頭大的問題。客戶一改再改的情況,絕對不是少數。再加上項目進度、客戶壓力等其他其他因素,測試工作的時間和內容被一壓再壓地縮減。這樣惡性循環,誰也不敢保證軟件質量。

如何在減少重複性的測試工作的同時,發現盡可能多的軟件缺陷,並利用有效的自動化測試降低成本,同時還能夠及時高效的覆蓋到這些變更的需求。這些正是想要幫助大家解決的問題。

1.2 探索性測試

探索性軟件測試是不同於傳統方法的測試技術,在某些情況下,它比腳本測試更高效。尤其適用於那些要求短時間內,或者在頻繁的需求變更下發現被測試軟件重要缺陷的情況。其實每個測試工程師都在不知不覺地使用探索性測試方法。其定義由James A.Whittaker提出:測試人員在測試應用程序中可以天馬行空的想怎麼測試就怎麼測試,利用程序所提供的信息自由發揮,沒有限製,不受任何約束的探索程序各個功能,借由這一方法來發現測試用例以外的軟件錯誤。

探索性測試,就是對手工測試用例加上自動化測試用例的一種補充。如果說手工測試和自動化測試在整個測試過程中占了70%,那我們所希望的就是通過探索性測試,能夠將我們所忽略或者遺漏掉的30%覆蓋到大部分。100%的覆蓋測試是不可能的。我們能做的就是通過各種測試途徑、測試方式,包括單元測試代碼,代碼覆蓋率工具等,盡可能的提高我們測試的覆蓋範圍。