解鎖探索式測試:發(fā)展階段、相關(guān)類型、優(yōu)秀實踐
譯文【51CTO.com快譯】
什么是探索性測試(Exploratory Testing)?
在探索性測試中,測試人員會在沒有既定計劃的情況下去檢查目標(biāo)系統(tǒng),以發(fā)現(xiàn)用戶在瀏覽網(wǎng)站或使用應(yīng)用程序時,可能遇到的各種缺陷。此方式應(yīng)盡量能夠模仿最終用戶的各種自由選擇,也就是說:在該過程中,測試人員可以自行遍歷軟件的各項功能,以獲悉用戶的體驗質(zhì)量。因此,探索性測試有助于驗證系統(tǒng)是否按照預(yù)期進行運作,而且能夠保障用戶在使用的過程中得到輕松愉快的感受。
探索性測試的階段
#1對于缺陷進行分類
- 基于相似的軟件,分類常見缺陷(請參見:https://dzone.com/articles/about-the-chances-to-detect-visibility-bugs-in-con)。
- 分析并記錄此類缺陷的根本原因。
- 開發(fā)測試方案以測試這些缺陷。
#2創(chuàng)建測試章程
測試章程應(yīng)當(dāng)包括如下方面:
- 需要測試哪些功能。
- 如何開展測試。
- 尋找什么缺陷。
- 測試時需要記住哪些指標(biāo)。
#3時間盒(Time Box)
時間盒的重點是測試人員如何測試和處置系統(tǒng)的響應(yīng)。
- 測試人員在特定的時間范圍內(nèi)(通常為90分鐘)進行上述測試。
- 在測試時間段內(nèi)不應(yīng)出現(xiàn)間斷。
- 如有必要,可以延長或減少時間范圍(通常取決于測試的進度)。
#4評審結(jié)果
- 對于已識別的缺陷進行分類。
- 評估各類缺陷。
- 記錄存在的問題。
#5報告
- 編譯輸出結(jié)果。
- 根據(jù)測試章程,將實際的測試結(jié)果與預(yù)期的結(jié)果進行比較。
- 確定是否需要引入其他方面的測試。
有關(guān)探索性測試的實用提示
- 可以將軟件分為多個模塊,以簡化測試的復(fù)雜度,并提高測試的覆蓋率。
- 列出所有需要測試的功能清單,以確保不會遺漏任何細(xì)節(jié)功能。
- 優(yōu)先測試基本的用戶功能方案。接著擴展性地在測試過程中添加更多的檢測點。
- 根據(jù)測試章程中列舉的標(biāo)準(zhǔn),逐一檢查產(chǎn)品的圖形用戶界面(Graphical User Interface,GUI)。
- 明確地在探索性測試會話中列舉出待測任務(wù)。
- 準(zhǔn)確記錄需要測試的內(nèi)容,測試原因,同時包括如何評估其運行質(zhì)量。
- 記錄在測試期間所發(fā)現(xiàn)的各項問題。
- 對接專職的測試人員,以進行有效的測試。
- 創(chuàng)建盡可能多且詳盡的測試相關(guān)文檔。
- 如有可能,請運行多種測試,以最大程度地提高測試覆蓋率。
探索性測試的類型
(1)自由式(Freestyle)探索性測試
此類探索性測試被視為按需采取的臨時性方法(請參見:https://dzone.com/articles/using-ad-hoc-scripts-in-your-automated-database-de),因此它既無固定的規(guī)則,也沒有對應(yīng)的結(jié)構(gòu)和組織。通過快速瀏覽目標(biāo)應(yīng)用,測試人員可以驗證在其他環(huán)節(jié)測試人員所獲取的成果,調(diào)查特定的缺陷,以及進行快速的冒煙測試(smoke test)。
(2)基于場景(Scenario-Based)的探索性測試
這種形式的探索性測試基于實際的用戶場景。在此類測試中,測試人員會采用所有可能的方式,來試探軟件以匹配不同的場景??梢姡颂幍闹攸c是:測試盡可能多的場景,以提供最大的測試覆蓋率。
(3)基于策略(Strategy-based)的探索性測試
通常,此類測試會被分配給已經(jīng)熟悉了被測試軟件的測試人員。其中包括:邊界值分析、等效(equivalence)技術(shù)和各種基于風(fēng)險的技術(shù),以識別那些更具挑戰(zhàn)性的缺陷。
在敏捷開發(fā)中采取探索性測試的優(yōu)勢
- 在開發(fā)的前期階段提供了快速、且盡早的反饋。
- 有助于發(fā)現(xiàn)各種現(xiàn)有缺陷。
- 由于不需要腳本,因此軟件項目中的開發(fā)人員、測試人員、設(shè)計師和任何其他利益相關(guān)者,都可以發(fā)起并執(zhí)行探索性測試。
- 在應(yīng)用程序的迭代編碼過程中,探索性測試非常適合于測試那些新的功能,而自動化測試則專注于回歸測試、以及向后的兼容性測試。
- 如果項目的需求并不確定,那么探索性測試則非常適合在有限的時間內(nèi),測試各種新的需求,以快速提供各種實用的結(jié)果。
探索性測試的優(yōu)秀實踐
- 了解您的客戶:所有軟件測試都關(guān)乎于檢查產(chǎn)品的質(zhì)量,以提供最大的用戶滿意度。因此,為了執(zhí)行有效的探索性測試,了解客戶的專注點是必不可少的。也就是說,我們應(yīng)當(dāng)從客戶的角度,來開展有意義的探索性測試。當(dāng)然也請記?。翰灰M隘地僅從單個客戶的角度去考慮問題。您可以將最終用戶根據(jù)他們的年齡、性別、經(jīng)濟狀況、偏好、以及其他方面分類,以模擬不同的方式使用同一個被測軟件。同時,測試人員也必須能夠跳出技術(shù)人員的角色,以一般用戶的心態(tài)去體驗與試用。
- 使用真實的瀏覽器和設(shè)備:眾所周知,沒有一種模擬器能夠提供真實的用戶環(huán)境(請參見:https://dzone.com/articles/real-user-monitoring-vs-synthetic-monitoring-which)。而在實際場景中,用戶只會在真實的設(shè)備上,而不是在那些模擬器虛擬出的測試設(shè)備上使用目標(biāo)軟件。因此,也請您務(wù)必在真實的設(shè)備上運行探索性測試。當(dāng)然,如果軟件企業(yè)由于資金預(yù)算不夠,甚至無法創(chuàng)建和維護內(nèi)部實驗環(huán)境,以供測試人員使用的話,那么請您可能地按需選擇那些基于云端的測試服務(wù)。
- 了解競爭對手:俗話說:知己知彼百戰(zhàn)不殆。通過了解您的競爭對手及其產(chǎn)品的功能與缺陷,測試人員可以更有針對性的測試手頭上的產(chǎn)品。當(dāng)然,這可能更需要整個團隊在開發(fā)階段就引起足夠的重視。例如:當(dāng)我們獲悉“友商”的某個競品應(yīng)用,經(jīng)常會被用戶投訴購物車功能上的設(shè)計缺陷時,那么測試人員就應(yīng)當(dāng)著重且謹(jǐn)慎地測試手頭產(chǎn)品的購物車功能,并確保不會重蹈覆轍。
其實,探索性測試是每個軟件測試過程的重要組成部分之一。我們應(yīng)當(dāng)將其納入測試的整個生命周期中,以確保本團隊能夠推出功能齊備、且讓用戶滿意的軟件產(chǎn)品。
原文標(biāo)題:Exploratory Testing: A Detailed Guide,作者:Shreya Bose
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】