探索式軟件測試的四個類型、探索式軟件測試一共分為自由式探索式測試、基于場景的探索式測試、基于策略的探索式測試和基于反饋的探索式測試。下面將詳細介紹4種類型的應用場景。
一:自由式探索式測試
自由式探索式測試指的是對一個應用程序的所有功能,以任意次序、使用任何如數進行隨機探測,而不考慮哪些功能是否必須包括在內。自由式測試沒有任何規則和模式、只是不停的去做。很不幸,很多人認為所有的探索式測試都是自由式的,從長遠的觀點來看,這種看法嘀咕了探索式測試技術的能力,我們在隨后將看到這類測試的一些變種。
一個自由測試用例可能會被選中成為一個快速的冒煙測試,用它來檢查是否會找到重大的崩潰或者嚴重的軟件缺陷,或是在采用先進的技術之前通過它來熟悉一個應用程序。顯然,自由式探索式測試無需也不應該進行大量的準備規則。事實上,它更像是“探索”而不是“測試”,所以我們應當相應的調整對它的期望值。
自由式測試不需要多少經驗或者信息。但是,同以下提到的探索式技術相結合后,它將成為一個非常強大的測試工具。
二:基于場景的探索式測試
基于場景的探索式測試和傳統的基于場景的測試有類似之處。兩者都涉及到一個開商店,就是用戶故事或者是文檔化得端到端場景的開始之處,那也是我們所期望的最終用戶開始執行應用程序的地方。這些場景可以來自用戶研究、應用程序、以前版本的數據等,并作為腳本用于測試軟件。探索式測試對傳統場景測試的補充吧腳本的應用范圍擴大到了更改、調查和改變用戶執行路徑的范疇。
使用場景作為指導的探索式測試人員經常會修改他敢興趣的輸入或者是追尋一些并沒有包括在腳本中的潛在副作用。不過,由于最終的不表是完成給出的場景,這些測試上的彎路、最終總是會回到腳本文件記載的用戶主要執行路徑。
三:基于策略的探索式測試
將自由式測試探索式與具有測試老手的經驗、技能和感知融合在一起,就成為基于策略的探索式測試。它屬于自由式的探索,只是他是在現有的錯誤搜索技術下引導完成的?;诓呗缘奶剿魇綔y試應用所有的已知技術(如邊界值分析或組合測試)和未知的本能(如異常處理往往容易出現軟件缺陷),來指導測試人員進行測試。
這些已知的策略是基于策略的探索式測試成功的關鍵,存儲的測試知識越豐富,測試就會更有效率。這些策略緣于積累下來的知識,它們指導軟件缺陷隱藏在哪里,如何綜合人工輸入數據,那些代碼路徑常常出現故障。
基于策略的探索式測試結合了測試老手的經驗和探索型測試人員的隨機性。
四:基于反饋的探索式測試
基于反饋的探索式測試緣于自由式測試,但是隨著測試歷史的形成,測試人員們就會利用反饋來指導今后的探索。“覆蓋”就是典型的例子。一名測試人員通過咨詢那些覆蓋指標(代碼覆蓋、用戶界面覆蓋、特性覆蓋、輸入覆蓋或者其中的某一些組合)來選中新的測試用例,以使這些覆蓋指標得以提高。覆蓋指標只是收錄反饋信息的標志之一。我們也會看其他標志,如代碼改動數量和軟件缺陷密集程度等。
基于反饋的探索式測試時一種“上一次測試”:在上一次我根據應用程序的最后狀態選了每某一個輸入之后、下一次我就會選中另外一個輸入?;蛘呤?,在上一次遇到這個界面時我用A屬性,這一次我就會用B屬性。
基于反饋的探索式測試工具是非常有價值的,它可以是測試人員保存、搜索測試歷史并據此采取實時行動。不幸的是這樣的工具很少。