fbpx

Get your 6-month No-Cost Opt-Out offer for Unlimited Software Automation?

探索性測試是一種特定類型的軟體測試,它對應用程式有很多好處,使其能夠充分發揮其潛力。

團隊將探索性測試集成到日常檢查中的方式甚至可以確定軟體的功能,特別是當它以新的和意想不到的方式接近測試程式時。 這有助於測試人員發現應用程式中的問題,否則這些問題在啟動之前可能會被忽視,並導致關鍵功能無法正常工作。

瞭解探索性測試的過程、類型和方法可以説明您指導組織及其測試團隊如何將其合併到他們的常規檢查中。

團隊還可以使用許多免費工具來促進這些檢查,並在問題可能成為開發障礙之前發現問題。

在本指南中,我們展示了探索性測試的好處以及團隊在實施之前應考慮的關鍵注意事項。

 

Table of Contents

什麼是探索性測試?

 

探索性測試結合了測試設計和執行階段,確保測試人員的完全操作自由,並允許他們不斷簡化工作。

當這些團隊檢查軟體時,他們可能會發現需要徹底檢查的新元件,並且可能很容易提出有利於應用程式的新測試。

探索性測試類似於臨時測試,但遵循更嚴格的文檔,也包含更主動的學習過程。

結構化程度較低的方法可幫助測試人員確定應用程式如何回應實際方案和測試用例,並作為腳本測試的重要補充。

團隊探索性測試的品質通常取決於各個測試人員的技能,因為檢查需要創造力和對軟體的透徹理解。 這是一個持續發現的過程——測試人員使用演繹推理來指導他們的整體技術。

探索性測試特別有用,因為它反映了使用者可能如何使用該軟體。 大多數使用者會偶然發現錯誤和問題,因此這些無腳本的過程可以幫助測試人員找到預先確定的檢查可能無法發現的問題。

團隊也可以自動執行此過程,以確保更高的效率水準。

 

1. 什麼時候需要做探索性測試?

 

探索性測試通常在幾乎所有軟體測試過程中都很有用,儘管它特別擅長提供有關應用程式的快速反饋。

如果腳本化測試用完,團隊還可能會合併這些檢查。 如果沒有明確的軟體檢查方向,探索性測試可能有助於發現標準檢查之外的問題。

確保多樣化的測試程式可以讓測試人員在任何階段更深入地瞭解該軟體,但儘早進行這些程式可能會帶來更多好處。

團隊可以在以後根據需要重新進行探索性測試,以增加安心。

 

2. 當您不需要進行探索性測試

 

在某些情況下,探索性測試沒有任何好處,但對於測試人員來說,等到軟體具有其核心功能會更有用。

應用程式的功能通常相互交叉或交互,這意味著一旦開發團隊向該軟體添加更多功能,對一個功能的探索性測試可能會過時。

也可以毫無問題地在腳本檢查的同時執行這些測試,假設測試人員可以確保強大的文檔水準以避免混淆。

與其他測試類型相比,探索性測試具有高度通用性,因此這些檢查非常適用。

 

3. 誰參與探索性測試?

 

探索性測試在某些方面涉及許多工作人員,包括:

任何技能水準的軟體測試人員都可以進行這些測試,儘管對軟體有更好理解的團隊成員可以設計更多種類的檢查。

經驗也可能影響他們確定最有用測試的能力。

• 承認這些測試結果的軟體開發人員會採取任何建議,並經常開發自己的問題解決方案。

他們對測試的回應使應用程式能夠達到成功發佈的適合狀態。

• 監督整個過程的項目經理,甚至可以決定團隊採用哪種測試類型。

他們還可能負責為團隊採購可以簡化甚至自動化測試的軟體。

 

探索性測試生命週期

 

探索性測試過程非常注重測試人員的自由度,但仍遵循特定的結構。

這種方法的主要三個階段是:

 

第一階段:學習

 

測試人員首先要對軟體及其功能有深刻的理解——批判性地分析它以確定它是如何組合在一起的。

這允許測試人員找出使用者可以做出的常規輸入,儘管他們可能已經知道應用程式及其功能。

學習階段甚至可能需要有關如何操作軟體的教程。 這是探索階段,為測試人員提供設計各種有用測試所需的所有資訊。

 

第 2 階段:測試設計

 

探索性測試設計確實涉及各種規則和參數,但與腳本測試相比,仍然提供了更多的自由度 – 腳本測試的細節在測試開始之前就已經知道了。

測試人員可以設計他們認為更精確地適合應用程式的檢查,並有可能為開發團隊發現有價值的數據,包括需要他們修復的顯著錯誤。

測試團隊使用此階段來確定要採用哪種方法,以及如何以發揮其優勢的方式在各個測試人員之間分配工作。

 

第3階段:執行

 

在設計要使用的檢查之後,測試人員現在可以以他們認為最有效的方式檢查應用程式 – 他們可以在設計特定測試后立即執行此操作。

這是測試人員主動搜索問題的階段,以及他們發現的任何問題如何反饋到其他特性和功能中。

雖然探索性測試執行涉及一定程度的直觀工作,但它仍然遵循設定的流程和目標,允許可以輕鬆適應特定測試目標的流體測試。

 

探索性測試與腳本式測試

 

探索性測試實際上與腳本測試相反,儘管兩者都對於確保應用程式準備好發佈非常重要。 後者通常更正式和結構化,與探索性檢查相比,包含許多廣泛的測試,探索性檢查通常更特定於應用程式的功能。

作為其中的一部分,探索性測試的適應性也明顯更強,而如果軟體發生重大更改,腳本測試可能會很困難。 探索性測試可能會發現錯誤並更快地採取行動,這使得前者在快速反饋至關重要的情況下特別有用。

 

1. 主動探索性測試

 

主動探索性測試涉及測試人員為其檢查設計一個自動腳本,另一個測試人員執行該腳本。 如果適用,這些腳本會考慮前面的測試。

這兩個測試人員通常在整個檢查過程中切換角色,以仔細檢查這些腳本和過程的可靠性。

主動測試具有更廣泛的覆蓋範圍,而不會犧牲探索性檢查的商標特異性。 這些腳本還允許更好的文檔,從而更輕鬆地重現測試人員發現的任何問題。

文檔是主動測試的重要組成部分,因為這還可以説明利益相關者查看應用程式的整體進度。

 

2. 被動探索性測試

 

被動探索性測試只需要一名測試人員,儘管成對工作可以進一步簡化流程。

這種方法涉及記錄測試人員操作的特定軟體 – 為他們提供簡單的步驟來複製他們發現的任何問題。 這通常以視頻的形式出現,測試人員會給出評論,逐步解釋他們的行為。

記錄測試過程還可以深入瞭解應用程式的性能,包括它回應輸入請求的速度。

被動測試為測試人員和開發團隊提供了有關軟體功能如何運行的大量詳細資訊。

 

探索性測試技術

 

探索性測試通常遵循“參觀”格式 – 測試人員以最有效的方式探索軟體。

團隊可以選擇各種旅行,包括:

 

•旅遊指南

這種方法優先考慮應用程式突出顯示的功能,密切複製普通使用者與軟體互動的方式,並發現他們自然會發現的問題。

 

•歷史之旅

此教程將檢查應用程式最舊的功能,以確保它們仍在運行;如果開發人員添加了與之衝突的新功能,這一點尤其重要。

 

•金錢之旅

此探索性測試檢查關鍵應用程式功能,特別是客戶和客戶付費訪問的功能 – 這些通常是測試團隊中的最高優先順序。

 

•犯罪狂歡之旅

測試人員有時會主動破壞應用程式或引發負面情況,例如輸入無效資訊並調查應用程式對此的回應方式。

 

•後巷之旅

此過程涉及較少客戶可能使用的功能;這些對於任何測試方法都同樣重要,特別是因為它們將與其他功能交互。

 

• 智力之旅

此教程進一步推動應用程式,測試具有更高(有時是最大值)值的最複雜功能,以確定軟體的處理速度。

 

探索性測試方法

 

探索性測試有兩種主要方法:

 

1. 基於會話的探索性測試

 

這是一種基於時間的技術,旨在通過將測試過程劃分為具有兩個組成部分的“會話”來量化測試過程:任務和章程。

任務是特定會話的目的和持續時間,為探索性測試人員提供明確的重點。

章程規定了每個會話的範圍,並詳細說明了測試人員打算實現的任何特定目標。 通過將檢查拆分為更易於管理的元件,從而提高了問責制(和文檔)級別。

基於會話的測試還可以提高工作效率,併為測試人員提供清晰的指標和故障排除資訊。

 

2. 基於配對的探索性測試

 

基於結對的測試類似於主動探索性測試,因為它主要涉及成對工作(通常在同一設備上)以同時持續檢查應用程式。 在這種安排中,一個測試人員建議一系列測試用例並記錄進度,而另一個測試人員則測試軟體。

在整個基於配對的測試中,溝通是必不可少的,因為這可以確保兩個測試人員都了解檢查及其目的。

如果您自己分配這些對,請確保適應每個測試人員的優點和缺點,因為這可以讓您構建更強大的探索性測試過程。

 

哪些因素會影響探索性測試?

 

可能影響團隊探索性測試品質的因素包括:

 

• 軟體的總體目標和核心功能。

• 應用程式當前階段的特定測試目標。

• 團隊中每個測試人員的個人角色和能力。

• 可用的工具,例如用於自動化測試的免費軟體。

• 測試人員從同行或管理層獲得的支援。

• 客戶的要求和市場當前的大趨勢。

•應用程式的易用性,例如介面的流動性。

• 測試人員完成測試階段的時間。

• 測試人員打算使用的輸入和其他分類數據。

• 開發人員隨時間添加到軟體中的功能。

 

探索性測試的類型

 

團隊可以合併的三種主要探索性測試類型是:

 

1. 自由式探索性測試

 

自由式測試採用臨時方法來檢查應用程式。 這幾乎沒有規則需要考慮,因此其有效性可能會有所不同;某些軟體和元件需要更強大的方法。

這些檢查仍然可以通過幫助測試人員熟悉此應用程式並驗證先前測試人員的工作來提供很多好處。

即使沒有嚴格的規則,經驗豐富且技術嫻熟的測試人員也可以輕鬆地使用它來格式化以發揮自己的優勢。 他們可以輕鬆瀏覽軟體的各個方面——在某些情況下,測試規則是限制性的,可能會無意中限制團隊的結果。

 

2. 場景化探索性測試

 

基於場景的測試使用真實情況作為每個測試的基礎,例如通過檢查使用者在此軟體的典型操作過程中可能做出的輸入。

測試人員努力確保他們設計的每個方案都與使用者與應用程式的交互方式相匹配。

時間可能是一個限制,因為團隊的目標是測試盡可能多的場景;根據未來的截止日期,這可能無法涵蓋所有可能性。

測試人員應採用不同類別的廣泛測試。

 

3. 基於策略的探索性測試

 

基於策略的測試涉及廣泛的特定方法,包括邊界值測試、等價技術、基於風險的技術等。 這通常會優先考慮已經熟悉應用程式的測試人員,因為他們可以開發包含這些單獨方法的定製策略。

基於策略的方法主要關注軟體的功能(和內部工作),而不考慮可能導致使用者遇到出現的問題的可能場景。 這可能會導致對應用程式及其各種功能進行更廣泛的分析,可能比其他各種方法更深入。

 

手動還是自動探索性測試?

 

測試團隊可以手動執行探索性檢查,也可以自動執行檢查。 任何一種選擇都有能力提供巨大的好處;正確的選擇通常取決於項目的具體情況。

 

手動探索性測試

 

手動探索性測試允許更大範圍的定製檢查。 雖然由於人類測試人員比計算機慢,這可能需要更長的時間,但手動檢查可能有助於確定用戶體驗。

測試人員不僅要確保應用程式的功能都按預期工作,還要確定使用者群是否可以輕鬆操作它。 這可能是最常見的探索性測試形式 – 儘管這並不一定使它成為最有效的。

 

1. 手動執行探索性測試的好處

 

手動探索性測試的好處包括:

 

更加注重可用性

 

自動探索性測試可能會注意到軟體中的差異,但可能無法像人類測試人員那樣解釋這些問題。

這包括瞭解軟體使用者可能如何導航或與應用程式交互,這是自動化無法考慮的。

手動探索性測試人員可以提供更高級別的反饋,包括有關他們發現的問題如何影響整體軟體或一般體驗的具體細節。

 

可以進行即時更改

 

探索性測試的關鍵優勢之一是,在拍賣必要的改進之前,可以確定對測試的需求並相對較快地執行它。

自動化測試通常是一個更快的過程,但測試人員必須等到一切完成才能進行更改——手動測試人員可以在探索性測試過程仍在進行時執行此操作。

但是,這通常僅適用於影響軟體次要部分的錯誤。

 

更加註重細節

 

探索性測試主要是發現在理解應用程式的同時測試應用程式的新方法;這有時可能意味著一個測試通過向測試人員提供想法而導致另一個測試。

自動化測試可能無法解釋這一點,因為測試團隊相對不干涉。 手動測試人員不斷提高他們對軟體的瞭解,並設計新的但同樣重要的測試 – 但如果第三方軟體正在自動化它們,這可能會很困難。

 

可以在代碼之外找到錯誤

 

手動探索性檢查使測試人員能夠查看應用程式和軟體的各個方面,包括代碼本身之外的內容。

許多自動化方法僅限於代碼及其功能,這可能會導致測試團隊沒有注意到應用程式其他部分可能出現的問題。

這主要取決於您擁有的自動化軟體,因為某些解決方案可以提供更廣泛的探索性測試方法。

 

確保整個項目的品質

 

自動探索性檢查僅查找應用程式中的錯誤和指標;手動測試人員可以檢查軟體並提供自己的全面反饋。

例如,他們可以測試代碼並確定它太複雜 – 尤其重要,因為死代碼會降低性能,但實際上不會被自動化流程檢測到。

測試人員對軟體的瞭解可能有助於診斷測試其他階段出現的問題。

 

2. 手動探索性測試的挑戰

 

手動探索性測試的挑戰包括:

 

人為錯誤的可能性

 

自動探索性測試可以根據需要多次運行完全相同的檢查,而不會更改確切的進度,從而確保一致性和可靠的結果。

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

手動探索性測試容易受到人為錯誤的影響,這意味著測試人員可能會輸入錯誤的值。 通常可以仔細檢查這些測試並修復任何差異,因為它們乍一看可能很明顯。

但是,在發現錯誤後重做測試可能會佔用更多時間。

 

通常更耗時

 

即使測試人員正確地進行了每一次探索性檢查,沒有人為錯誤,與自動化軟體相比,整個過程也需要大量時間,自動化軟體可以更快地計算測試。

這至少可能相差幾個小時;測試人員可以花費在應用程式中無法從自動化中獲得好處的部分上的時間。

探索性測試也需要持續的監督,而自動化允許測試在一夜之間運行。

 

冗長的文檔編製過程

 

同樣,手動測試期間和之後的手動文檔可能會給探索性測試過程帶來不必要的壓力。

這使得跟蹤隨時間推移的更改和軟體編輯變得更加困難 – 自動化軟體通常能夠在運行測試時直觀地考慮到這一點。

這是另一個管理問題,佔用了其他事項的時間和精力,這有效地縮小了整個軟體測試過程的範圍和廣度。

 

必須熟悉軟體

 

任何技能水準的手動測試人員都可以檢查應用程式並對其進行徹底測試。 這是因為他們為理解軟體所做的工作——探索過程的第一階段。

但是,如果測試人員努力或忽略瞭解此應用程式的工作原理,他們可能會難以設計和執行合適的測試範圍。

充分了解軟體可以讓測試人員超越通常的測試參數。

 

維護成本高

 

依賴手動探索性測試通常需要更大的測試團隊,與自動檢查相比,這可能會導致更高的長期成本。 執行這些探索性測試的第三方軟體可以提供巨大的價值,甚至可以完全免費。

根據任務的複雜性,公司可能需要具有多年經驗的高技能測試人員來全面檢查應用程式。 與使用免費的自動化軟體相比,這可能會顯著增加測試費用。

 

3. 何時使用手動探索性測試

 

手動探索性測試通常伴隨著一些挑戰,但仍然是全面軟體測試的重要組成部分。 這是因為自動化無法完全考慮軟體的某些方面也需要重點關注。

例如,軟體無法可靠地提供有關使用者介面或使用者體驗測試的反饋。 測試人員只有在手動測試應用程式時才能很好地瞭解應用程式在實踐中的工作方式。 這意味著開發人員和測試團隊都必須考慮將至少一定程度的手動探索性測試集成到他們的檢查中。

 

自動化探索性測試

 

自動化測試 使用第三方軟體來自動執行某些檢查 – 測試人員通常可以對其進行自定義以適應幾乎任何測試。

但是,這通常需要團隊至少手動運行一次檢查來校準自動化。 這可以顯著簡化測試和開發團隊的流程。

儘管自動執行探索性測試可能並不常見,但這樣做對應用程式及其性能有幾個明顯的好處。

 

1. 探索性測試自動化的優勢

 

探索性測試自動化的主要優點包括:

 

一致的測試執行

 

人為錯誤很容易導致測試錯誤,需要時間和金錢來修復;自動探索性檢查允許測試團隊規避此問題。

測試人員有效地教自動化軟體如何正確執行測試,確保它每次都以相同的方式執行測試。 這提高了測試的整體可靠性,並減少了開發人員等待結果所花費的時間 – 特別是因為測試人員可以輕鬆地將其設置為通宵運行。

 

為每個人節省時間

 

自動化測試使開發人員能夠更快地開始修復問題,同時還允許測試人員涵蓋更廣泛的探索性檢查。 無論截止日期如何,團隊只能考慮這麼多場景,這意味著測試人員在允許的時間範圍內盡可能多地進行檢查非常重要。

自動化有助於以比手動測試儀快得多的速度進行這些探索性測試。

 

具有成本效益的方法

 

根據團隊選擇的軟體,自動化可能比手動測試更具成本效益——這甚至是免費的。

雖然手動測試人員仍然至關重要,其中一些人將負責校準自動化程式,但實際自動化盡可能多的探索性測試使公司有機會降低員工成本。

一旦團隊瞭解了自動化軟體,他們就可以使其適應廣泛的任務。

 

適用於多種設備

 

手動測試可能需要具有各種設備經驗的員工,例如,如果構建行動應用程式,則瞭解各種手機操作系統,包括Android和iOS。

自動化軟體可以解決這個問題,並在多個設備上進行測試,以確保應用程式能夠始終如一地運行良好。 瞭解這些設備的測試團隊可能會發現該過程很乏味;自動化再次能夠簡化通常的探索性測試流程並同時測試每個反覆運算。

 

可重用腳本

 

如果團隊正在測試同一軟體的多個版本,甚至是具有相似體系結構或功能的多個產品,則可以從一個測試週期重用腳本到下一個測試週期。

如果有必要進行任何調整以確保相容性,手動測試人員可以比編寫全新的腳本更快地進行這些調整。

自動化幾乎優化了探索性測試過程的每個階段,易於在不同的軟體配置中進行設置。

 

2. 自動化探索性測試的挑戰

 

此過程還涉及各種挑戰,例如:

 

僅代表測試的一面

 

在測試應用程式時自動執行每次檢查是不切實際或明智的,因為只有手動測試人員才能可靠地提供反饋。

這包括用戶體驗,儘管有可能通過自動化獲得全面的性能和負載測試分析,具體取決於您選擇的軟體。

探索性測試自動化缺乏人工判斷,與手動測試器一起進行某些檢查時效果最好。

 

對能力的不切實際的期望

 

同樣,自動化探索性測試程式可以為整個項目的應用程式提供巨大的好處。

然而,這種方法並不總是答案。 在每個階段嚴重依賴自動化的組織可能對軟體有一個不完整的視角。

自動化可識別問題,但測試和開發團隊負責修復它們。 定義總體自動化策略非常重要,這樣專案中的每個人都瞭解其功能和局限性。

 

更高的技能要求

 

自動化通常涉及知道如何執行複雜的檢查,以及如何程式設計和實際自動化它們。 這通常需要多年的腳本編寫經驗,儘管自動化軟體可以幫助顯著優化這些流程。

公司招募具有多樣化和強大技能的測試人員以促進有效的自動化至關重要。

在自動化方面經驗豐富的測試人員也知道在從可用的第三方軟體選項中進行選擇時要優先考慮的功能,從而確保團隊收到好的產品。

 

策略和溝通不當

 

傳達連貫的策略對於任何成功的自動化都至關重要;開發人員、測試人員甚至項目經理在整個測試過程中必須保持一致。

團隊必須共同努力,確定其即將進行的程式的範圍和時程表。 任何測試過程都是如此,但由於自動化的複雜性增加,這一點尤其重要。 更好的溝通管道和缺乏資訊孤島可以讓您的團隊更有效地進行測試。

 

選擇合適的自動化軟體

 

自動化通常涉及選擇與團隊測試目標相容的第三方應用程式。 每個選項都有不同的定價計劃和功能。 這可能是一筆巨大的長期費用,即使軟體成功地執行了自動化測試,同時提供了大量的價值。

有許多免費選項提供了令人印象深刻的功能,可與高級替代品相媲美。 測試團隊必須研究所有可用的選項,包括自由軟體。

 

結論:探索性測試自動化與手動探索性測試

 

很少有專案受益於完全手動測試或全自動測試,因為各種應用程式在兩者的組合下表現更好。

雖然自動化測試可以優化開發和品質保證團隊的流程,但設計的某些方面需要手動探索性測試;這是獲得使用者意識反饋的唯一方法。

隨著時間的推移,越來越多的組織正在努力實施超自動化,這一過程旨在智慧地最大限度地提高 自動化程度,確保企業擁有有效的戰略——這仍然可以與手動測試一起存在。

由於自動化軟體的日益普及,自動化測試對公司來說變得越來越容易,特別是有幾個具有大量功能的免費選項。 這使得公司更容易採用手動/自動探索性測試的組合方法。

敏捷(一種專注於增量但重大進展的專案管理技術)在開發中的日益普及也是一個因素,因為它需要較短的測試週期。 組合測試策略可以適應這種策略和各種其他開發策略,例如持續集成,這同樣需要重複測試以確保在同一軟體的多次反覆運算中取得成功。

 

開始探索性測試需要什麼

 

探索性測試的先決條件是:

 

1. 明確的測試目標

 

儘管探索性測試是自由的代名詞,有時與臨時測試混淆,但這仍然遵循特定的規則或可定義的目標。 QA 團隊成功瀏覽幾乎任何測試結構的唯一方法是瞭解每個測試的預期結果,尤其是當測試人員通常自己設計這些檢查時。

 

2. 富有創意、直觀的測試人員

 

探索性測試側重於設計新的和創造性的測試,以發現應用程式的問題。 即使是經驗有限的測試人員也可以做到這一點,假設他們了解軟體。

測試人員了解應用程式及其工作原理非常重要;這使他們能夠直觀地開發一系列有用的檢查。

 

3. 連貫的文件

 

每種類型的測試都必須有強大的文檔,以確保每個團隊成員都遵循預期的測試計劃,並且沒有人意外地重複檢查。

這是整個部門和多個部門之間溝通的一個重要方面,例如開發人員需要定期測試更新以找出如何解決問題。

 

4. 客戶的觀點

 

探索性測試涵蓋許多策略和方案,包括反映用戶實際如何與應用程式交互的策略和方案。 測試團隊在檢查期間必須考慮到這一點,即使他們沒有進行基於場景的測試也是如此。

採用此功能允許測試人員從不同的角度進行測試,從而提高這些檢查的品質。

 

5. 自動化測試軟體

 

由於團隊可能會自動化他們設計的大量測試,因此在執行階段之前購買高品質的自動化測試軟體非常重要。

開發人員和測試團隊可以利用他們對專案的理解來確定適合自己要求的第三方應用程式。

 

探索性測試過程

 

探索性測試的具體步驟如下:

 

1. 對測試程式進行分類

 

探索性測試的第一步是讓相關團隊成員了解他們如何處理這些檢查,例如對常見故障進行分類並進行根本原因分析。

這是測試人員自己開發測試想法的地方;根據他們的確切方法,他們還可以設計測試章程。

這規定了該會話或工作日的範圍和測試。

 

2. 開始測試

雖然確切的參數(例如每次測試或整個會話的時間)取決於團隊自己的偏好和專案的要求,但所有探索都遵循某些共同點。

在對相關檢查進行分類后,品質保證人員開始進行測試並記錄任何結果。

如果檢查需要自動化,測試人員可以將其設置為通宵工作或在白天自己監控。

 

3. 查看結果

 

下一階段是查看結果,將其與默認結果和預期結果進行比較。 如果這些測試導致任何類型的重大意外偏差,測試人員可以重複檢查或立即開始弄清楚如何修復此問題。 他們向開發人員提出的建議可能有助於確定正確的方法,他們的錯誤報告可以詳細列出這一點。

 

4. 測試彙報

 

拍賣測試結果后,品質保證團隊開始審查測試程式本身,並用它來確定他們的探索性測試方法是否合適。

此測試摘要報告甚至可能得出結論,即檢查期間存在需要重新測試的操作錯誤。 開發人員修復這些問題后,測試團隊還可以再次檢查應用程式,以確定它們是否成功。

 

探索性測試的最佳實踐

 

探索性測試最有效的實踐包括:

 

1. 配對測試人員

許多形式的探索性測試都受益於測試人員的協同工作 – 這進一步簡化了流程,並允許對相同的檢查進行多個視角。

配對測試還避免了隧道視覺的可能性,鼓勵更具創造性的測試設計。

幾個人從事相同的測試可能會提高所有的準確性,並且拆分工作量也有助於使整個團隊的測試更快。

 

2. 混合手動和自動測試

 

一些公司仍在努力採用自動化,而另一些公司則過度使用它,即使手動視角可能更有益。 平衡這些檢查在一起,可以讓測試團隊覆蓋更多的基礎,並確保整個應用程序的品質,包括更主觀的方面,如軟體介面。

同時進行手動和自動測試是保證每個特性或功能的完整測試覆蓋的唯一方法。

 

3. 了解市場

 

在測試過程中,測試人員必須了解他們的目標受眾和競爭對手,這一點很重要;這有助於他們評估人們可能如何回應應用程式的當前功能。

某些功能的需求量很大,測試團隊可以從檢查期間確定這些功能的優先順序中受益。 儘管他們還必須保持廣泛的測試覆蓋範圍。 這可以確定測試的方向以及軟體在發佈時的潛在成功。

 

4. 使用真實設備進行測試

 

軟體測試團隊可以使用模擬器來促進他們的探索性檢查;這可能很有用,但很少反映實際的用戶環境。

真實設備通過生成更逼真的體驗來説明提高探索性測試的可靠性 – 模擬器並不完美,並且可能存在客戶不存在的錯誤。

仿真是測試多個平臺的快速方法,但它不能替代實際設備。

 

探索性測試的輸出類型

 

測試人員在執行檢查后可能會收到各種輸出,包括:

 

1. 測試結果

 

結果本身有多種形式,因為探索性測試可以包含數百個獨特的測試。 這些結果構成了測試例程的大部分輸出,提供有關應用程式狀態及其滿足使用者需求的能力的重要資訊。

測試人員可以在收到這些結果后重新檢查系統並驗證資訊,以確定他們的下一步行動。

 

2. 測試紀錄

 

應用程式自己的日誌通常會在測試過程中顯示錯誤和問題;這些為軟體未能通過測試提供了最有力的線索。 高級測試人員特別擅長解釋應用程式的日誌,讓他們確定複雜問題的原因。

測試人員從這些日誌中收集的資訊越多,他們就越能幫助開發人員。

 

3. 測試報告

 

根據團隊的自動化過程,他們的輸出可能會自動生成錯誤報告。 這列出了應用程式中存在的任何錯誤,可能包括其原因以及與開發人員相關的任何其他數據。

測試人員可以使用它來就軟體是否準備好啟動提供自己的意見,這通常稱為通過/不通過決策。

 

探索性測試範例

 

以下是公司如何使用探索性測試的三個示例:

 

1. 移動遊戲應用程式

 

如果遊戲公司希望發佈行動應用程式的重大更新,探索性測試人員可以檢查舊功能和新功能,以確定應用程式是否仍然穩定。 這可能會增加軟體的複雜性,以至於無法在某些設備上運行。

測試人員努力將這種情況的影響降至最低,同時確保在盡可能多的平臺上的可用性。

探索性測試人員徹底檢查遊戲及其許多複雜的場景,以確保每個功能都按預期工作;此過程通常需要手動測試儀。

 

2. 服務提供者的網站

 

網站還經過探索性測試,以確保它們對用戶和員工都有效,因此測試人員可以從登錄網站開始。 這將測試網站創建新使用者配置檔的能力,並檢查使用者是否無法訪問管理功能。

然後,測試人員繼續檢查服務,這可能是以預約或下訂單的形式。 然後,他們將完成購買以確保結帳功能正常,然後查看訂單的電子郵件確認和帳戶的歷史記錄。

 

3. 醫院的管理制度

 

各種應用和系統都可以從探索性測試中受益。 對於醫院管理系統,測試人員可能會查看支付模組如何與其他功能交互。

如果沒有嚴格的測試,更高水準的集成可能會導致重大錯誤。 這些檢查可能涉及跟蹤系統許多元件以及它們如何相交的架構圖。

測試人員還會查看系統先前反覆運算中的問題,並專門測試這些問題是否仍然存在,並在發現任何錯誤時迅速採取行動。

 

通過探索性測試檢測到的錯誤和bug的類型

 

測試人員在探索性測試期間可能會發現的錯誤包括:

 

1. 功能不相容

應用程式中的某些功能可能無法按預期相互交互,這可能導致用戶無法完成購買或使用應用程式。 測試人員單獨檢查功能並相互串聯,以確保所有功能都適合在一起。

 

2. UI設計不當

應用程式的使用者介面準確決定了某人如何使用該軟體。 例如,如果客戶不明顯地看到重要功能,他們可能不會注意到這些功能的存在,這限制了他們對應用程式的享受。

手動 UI測試 可識別並糾正使用者不友好的設計。

 

3. 身份驗證錯誤

許多應用程式和網站允許創建具有某些許可權的使用者配置檔。 至關重要的是,測試人員要檢查普通使用者是否可以以某種方式訪問敏感數據甚至管理功能,同時以意想不到的方式使用該軟體。

 

4. 死代碼

測試人員可能會發現應用程式中仍然存在過時的代碼,這甚至可能是導致明顯性能問題的原因。 死代碼使應用程式的內部工作過於複雜,並可能導致可避免的錯誤。 識別和優化這一點可以使軟體對員工和用戶的反應更快。

 

常見探索性測試指標

 

測試人員在探索性測試期間可能遇到的常見指標包括:

 

1. 性能測試指標

查看應用程式一般性能的探索性測試可以產生廣泛的指標。 這可以包括最小、平均和最大響應時間以及故障和成功率,以確定穩定性。

 

2. 測試覆蓋率指標

測試覆蓋率很重要,因為這決定了測試包含的應用程式的類別和方面。 例如,需求覆蓋率百分比評估是否有任何功能需要進一步測試輪次。

 

3. 整體測試效率

跟蹤成功和失敗檢查的數量有助於測試人員確定應用程式的總體運行狀況。 最重要的是,團隊可以跟蹤他們檢測到的錯誤中有多少是關鍵的。

 

4. 缺陷的分佈

同樣,檢查缺陷分佈可以顯示最容易出錯的元件或功能。 這些可能是應用程式中經常與其他測試交互的部分,因此必須確定這些測試的優先順序。

 

5. 回歸指標

探索性回歸測試使測試人員能夠查看同一軟體的不同反覆運算的行為方式以及這會如何影響性能。

缺陷注入率和每次構建的缺陷是有助於實現此目的的特定指標。

 

消除一些困惑:探索性測試與臨時測試

 

由於非常注重測試人員的自由,有些人經常將探索性測試與臨時測試混為一談。 這兩種格式有幾個關鍵的相似之處,但最終服務於不同的目的。

 

1. 什麼是臨時測試?

 

臨時測試是一種完全非結構化的方法,它打破了傳統的測試設計,以發現否則可能不會出現的缺陷。

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

這種形式的測試通常不涉及文檔,因此很難重現問題,除非測試人員絕對確定原因。

這方面的一個例子是“猴子測試”,這是一種涉及隨機輸入並最終旨在破壞系統的檢查。

與探索性測試類似,許多臨時測試人員成對工作以完成這些檢查;這提高了它們的可靠性。 在正式測試執行后,臨時方法可能很有用,以確保檢查考慮到每種可能性;當進行進一步測試的時間有限時,這也很有用。 通過正確的執行,臨時測試是非常有益的。

 

2. 探索性測試和臨時測試之間的區別

 

臨時測試通常不涉及正式文檔。 這與探索性測試形成鮮明對比,在探索性測試中,這些檢查的即興性質使記錄保存變得更加重要。

探索性測試採用更多種類的正式測試技術,而臨時檢查則通過查看傳統測試禮儀之外來避免這種情況。 這有助於他們發現測試人員永遠不會發現的錯誤。

探索性測試有明確的目標和界限,但仍允許團隊成員使用創造性測試。 臨時測試通常沒有可定義的最終目標,除了盡可能推動軟體。 臨時測試通常還涉及軟體及其功能的預先存在的知識,而探索性測試將學習應用程序納入其常規流程。

 

敏捷中的探索性測試

 

敏捷方法極大地促進了持續改進。 這意味著它與探索性測試搭配得很好,尤其是在頻繁軟體更新的需求增長的情況下。

將探索性測試與敏捷相結合,可以通過在團隊成員的日程安排中加入發佈計劃和衝刺執行,為團隊成員提供更強大的測試結構。 採用敏捷技術的公司可以通過將其與探索性測試相結合來進一步利用這一點;這是測試應用程式的每個單獨軟體元件的好方法。 由於測試人員可以在沒有腳本的情況下進行探索性檢查,這為品質保證人員和開發人員節省了大量寶貴的時間。

自動化探索性測試使這些節省更加複雜,説明公司更快地檢查其應用程式的最新反覆運算,可能是在一夜之間。 探索性檢查可提供快速、可用的結果,開發人員可以對任何必要的更改採取行動,作為下一個衝刺 (sprint) 的一部分。

手動探索性測試仍然與敏捷一起提供許多好處,因為它能夠識別自動化方法可能遺漏的問題。 其他形式的測試只是花費太長時間或提供的好處太少,無法舒適地適應敏捷框架。 探索性檢查可以確保每個敏捷階段都顯著改進軟體及其功能。

 

實施探索性測試時要避免的7個錯誤和陷阱

 

以下是公司在實施探索性測試時經常犯的七個常見錯誤,以及公司如何避免這些問題:

 

1. 不平衡的手動/自動化測試

 

找出最適合手動檢查的測試以及哪些測試將從自動化中受益需要時間,但可以讓團隊更有效地進行測試。

自動化太多測試可能會導致應用程式由於缺乏人工測試人員而笨拙或不使用者友好。

 

2. 時間限制

探索性測試比許多其他形式的測試更快,但專案截止日期的現實意味著團隊可以執行的測試數量仍然存在限制。

時間管理和對測試覆蓋率的承諾有助於測試團隊對許多廣泛的類別執行盡可能多的檢查。

 

3. 不靈活的測試儀

雖然探索性測試人員不需要預先存在的軟體知識或特別深厚的技能,但檢查仍然依賴於單個團隊成員的能力和主動性。

專案經理必須明智地分配這些測試角色,並在必要時將它們保留給團隊中更具創造性和直觀的成員。

 

4. 難以複製失敗

哪些操作導致測試失敗並不總是很明顯;也不清楚應用程式的哪些方面是罪魁禍首。

這就是為什麼許多探索性方法涉及將測試人員配對在一起,甚至直接記錄測試人員的螢幕,以更清楚地了解問題及其確切原因。

 

5. 文件不明確

無論是自動錯誤報告還是已完成測試的手動記錄,良好的文檔都使開發人員更容易根據測試團隊的發現採取行動。

測試團隊必須致力於確保在每次檢查中保持高品質的記錄,為每份報告提供盡可能多的細節。

 

6. 高期望

探索性測試幾乎對任何軟體專案都是有益的,但其範圍仍然有限——它與其他測試方法結合使用效果最好。

測試團隊必須與通常的腳本測試一起執行這些檢查;這是質量保證部門確保始終如一的廣泛測試覆蓋率的唯一方法。

 

7. 自動化不當

測試團隊和專案經理必須瞭解哪種自動化軟體為該特定應用程式提供最大的好處。

不同的第三方選項提供自己獨特的功能,因此團隊的選擇可能決定其 機器人流程自動化的成功;他們必須考慮擺在他們面前的每一個選擇。

 

5 種最佳免費探索性測試工具

 

質量保證團隊可以免費使用的五個最佳探索性測試工具包括:

 

1. ZAPTEST 免費版

ZAPTEST Free 以絕對零成本提供高級功能,使任何組織都可以從輕鬆的探索性測試實施中受益。

此應用程式可以使用創新的 1SCRIPT 技術自動化任何平臺、設備和瀏覽器。

ZAPTEST 還提供靈活的 RPA 自動化,讓您將其與手動方法相結合。

 

2. X射線探索應用程式

XEA 允許使用者創建全面的測試章程並輕鬆記錄他們的進度,從而簡化探索性測試的錯誤報告階段。

此選項完全側重於用戶視角,並提供集中的結果中心來更新其他測試人員。

但是,XRAY目前沒有集成的自動化,這可能會限制其長期有效性。

 

3. 蟲子磁鐵

Bug Magnet 是一個提供徹底探索性測試的瀏覽器擴展,允許測試人員檢查邊緣情況和其他有問題的值。

此擴展還提供虛擬文本、電子郵件位址和多個字元集的簡單集成。

但是,這僅適用於Firefox和基於Chrome的瀏覽器,因此其用途不如競爭對手。

 

4. Azure 測試計劃

Azure 測試計劃是 Microsoft Azure 平臺的關鍵部分,允許測試人員跨多種方案捕獲豐富的數據。

此選項適用於桌面和基於 Web 的應用程式,同時還提供端到端的可追溯性,從而清楚地記錄了軟體開發情況。

但是,此方法通常需要與 Azure 進行更深入的集成,因此以犧牲靈活性為代價。

 

5. 命運

Testiny 專門從事手動探索性測試,提供了一個智慧編輯器,允許測試人員使用樹結構進行設計檢查,以實現最大的靈活性。

對運行或測試用例的每次更改都會保留在應用程式的歷史記錄中,以確保完全的責任和可追溯性。

但是,這僅適用於小型團隊和開源專案。

 

何時應使用企業與免費探索性測試工具?

 

雖然探索性測試是一項值得的投資,並且高級應用程式通常提供更強大的功能,但有許多免費選項提供了足夠的功能。

如果您致力於高級模型,探索性測試可能是一筆巨大的運營費用,但並非每個軟體開發公司或團隊都有錢這樣做。 最好的第三方軟體選擇通常取決於公司的具體要求。

付費解決方案可能是滿足該專案需求的唯一方法;團隊在提交應用程式之前必須調查各種選擇。

團隊較小的公司可能會從免費測試工具中受益最多,因為許多選項對有限數量的用戶是免費的。

或者,他們可以選擇沒有此限制的選項以及能夠適應測試團隊規模的選項。 這使得將探索性測試人員配對以確保更準確的結果變得更加可行——團隊自然需要更少的使用者配置檔。

許多服務提供其軟體的免費試用版,以便組織可以查看它是否滿足他們的需求;這些通常只持續幾周。

 

探索性測試清單、提示和技巧

 

測試人員在開始探索性檢查時還可以考慮許多其他提示,包括:

 

1. 適當劃分功能和模組

為了避免溝通不暢,測試團隊應該清楚地列出每個功能以及他們打算運行的檢查。 這也意味著確保測試充分分佈在軟體功能中。

為了獲得最佳結果,測試團隊根據各自的技能和優勢協商哪些成員進行每項測試至關重要。

 

2. 努力理解軟體

學習階段是探索性測試的關鍵部分。 這意味著測試人員必須積极參與軟體,並在設計測試之前弄清楚它是如何工作的。

瞭解該軟體的內部工作原理可以是一個協作過程,確保整個團隊有更好的理解。 這使測試人員可以開發更好的檢查和測試用例。

 

3. 找出問題區域

每個應用程式都有與其他應用程式相交的功能或元件。 隨著軟體變得越來越複雜,它更有可能出現錯誤;這可能需要更多測試。 團隊必須積極努力找出哪些元件需要額外的説明。

他們可能會採用特定的測試之旅,以最好地反映應用程式的需求和團隊的整體測試優先順序。

 

4. 從基本使用者方案開始

如有必要,品質保證團隊可以按任何順序進行探索性測試,但在深入研究更複雜的功能之前,從更簡單的檢查開始可能會更有説明。

這允許在複雜性方面順利進行,讓測試人員有機會了解軟體。 它還有助於測試基本功能是否按預期工作。

 

5. 將測試人員配對在一起

配對的探索性測試既簡化又驗證了品質保證階段,讓測試人員在每次檢查中都充滿信心。 協作通過提高每個團隊成員對軟體的熟悉程度,使任何形式的測試都更有效。

由於他們的個人觀點,他們還可以提供更深入的錯誤報告,為開發人員提供更多的資訊。

 

6. 執行多個測試

團隊重新測試應用程式的能力取決於他們之前的時程表和截止日期。 但如果可能的話,仔細檢查特別有問題的元件可能是有用的。

最重要的是,重複測試可以驗證以前檢測到的問題現在是否已修復,並且不會進一步影響軟體。 有時需要這種勤奮來確保測試成功。

 

結論

 

探索性測試可以為各種軟體開發公司提供很多東西,作為腳本測試和許多其他檢查的補充。

在探索性測試的説明下,品質保證團隊可以按照更高的標準測試應用程式,提高最終軟體的品質,並幫助開發人員修復任何錯誤(如果存在)。

手動和自動探索性測試的組合可以確保最大的收益,允許對所有軟體元件給予同等關注。

如果您的公司需要探索性自動化軟體,ZAPTEST 免費版提供了比其他高級應用程式更廣泛、更靈活的功能,讓測試人員可以輕鬆優化這些檢查。

 

常見問題和資源

 

1. 探索性測試自動化的最佳課程

 

新手和有經驗的探索性測試人員都可以從課程中受益,以提高他們的技能。 這包括弄清楚如何處理新軟體。

可以幫助解決此問題的有用課程包括:

• Udemy 完整的 2023 年軟體測試訓練營;這教授了28小時內的廣泛軟體測試。

• Coveros的探索性測試;這重點介紹如何開發章程並將探索性測試應用於 API。

• Polteq 為期兩天的探索性測試培訓;這著眼於探索性測試在敏捷環境中的工作方式。

• LinkedIn的探索性測試;這顯示了現代軟體測試如何接受探索性檢查。

• Coursera的軟體測試簡介;這有助於首次測試人員瞭解典型過程。

 

2. 探索性測試的前 5 個面試問題是什麼?

 

在面試探索性測試職位時,招聘經理必須提出好的問題,以準確評估候選人的技能和經驗。

要問的前五個問題是:

• 包括它們的適用性,腳本測試和探索性測試之間的主要區別是什麼?

• 作為一名探索性測試人員,您遇到了哪些挑戰,您是如何克服這些挑戰的?

• 舉例說明從機器人過程自動化中受益最大的探索性測試。

• 在您看來,探索性測試儀最重要的技能(技術或其他)是什麼?

• 對於難以理解軟體以及如何檢查軟體的測試人員,您有什麼建議?

 

3. 關於探索性測試的最佳 YouTube 教程

 

YouTube等視頻共享網站上提供了許多免費教程,可以幫助潛在的測試人員瞭解其核心原理。 有些是系列的一部分,而另一些則是對該主題的單視頻深入研究。

提供這些教程的頻道包括:

• 測試學院,提供數百個視頻,涵蓋軟體測試的各個方面。

軟體測試導師,同樣提供有關軟體測試基礎知識的大量視頻。

• QAFox,它還提供真實世界的示例和現場專案,以補充其所有視頻。

• SDET-QA Automation Techie,其中包含多個關於不同測試方法的綜合視頻。

• GlitchITSystem,它通過探索性測試查看各種網站,試圖發現故障。

 

4. 如何維持探索性測試?

 

執行良好的探索性測試包括強大的文檔,開發人員和未來的測試人員會參考這些文檔來更新軟體反覆運算。

當應用程式有重大更新時,有必要重新測試其主要功能,以確保這些添加不會對預先存在的功能產生負面影響。

這是保證探索性測試長期保持成功的唯一方法。 它還有助於在設計原始應用程式及其檢查時考慮未來的計劃,例如初步功能。

QA人員必須充分計劃這些測試,並弄清楚何時重新檢查申請;自動化測試工具可以幫助團隊解決這個問題。

 

5. 探索性測試是黑盒測試嗎?

探索性測試與黑盒測試非常相似,黑盒測試是指通過查看應用程式的功能來檢查應用程式,而無需直接檢查代碼。

對探索性測試的檢查類型沒有明確限制;這種方法可能包含軟體的各個方面,包括代碼。

這兩種測試類型之間的主要相似之處之一是測試人員缺乏預知。 黑盒測試人員在測試之前通常不熟悉該軟體,而探索性測試人員在初始檢查中瞭解該軟體的工作原理。

雖然探索性測試通常並不總是歸類為黑盒測試,但這兩種方法之間確實存在大量交叉。

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post