1. 程式人生 > 其它 >淺談探索式測試

淺談探索式測試


(一)探索式測試理論知識

什麼是探索式測試?

  • 探索式測試(ET,Exploratory Testing)是一種軟體測試風格,而不是一種具體的軟體測試技術(什麼是具體的軟體測試技術?如:等價類劃分法、邊界值分析法、組合測試等)。(探索式測試是測試專屬的,不像敏捷模式,有敏捷開發和敏捷測試)
  • 探索式測試強調依據當前待測專案實際情況,選擇合適的測試技術,而不侷限於特定的測試技術。
  • 這種方法強調測試者的主觀能動性,以及測試設計測試執行同時性
  • 目的是探索開發更多不同形態的測試方法,以便改善測試流程。
  • 傳統的測試流程——“先設計,再測試”,通常是先進行需求分析,再製定測試計劃,接著梳理測試點,然後針對測試點設計好測試用例,最後執行測試。這種模式也帶來一些問題,比如在測試目標不明確的情況下,需求變換頻繁,輸出範圍過大等,經常可能出現測試遺漏,而且在一定程度上也限制了測試思維的發散。而探索式測試的出現,正好彌補了傳統測試中出現的這種問題。

探索式測試的核心思想:

  • 探索式測試強調獨立測試人員的自由責任。測試人員應該為個人和團隊負責,調動所有能量,發揮人的靈活性,在整體上持續優化個人和團隊的產出。
  • 探索式測試建議在整個專案過程中,將測試相關學習測試設計測試執行測試結果分析作為相互支援的活動,並行地執行。實際上,人腦難以並行地執行多項任務。探索式測試旨在將測試學習、測試設計、測試執行和測試結果分析作為一個迴圈快速地迭代,以不斷收集反饋、調整測試、優化價值。

什麼樣的專案適合進行探索式測試?

  1. SRS(Software Requirements Specification)軟體需求說明書不完善時間緊迫沒有測試用例

    的情況下,以ET快速完成版本新功能的測試。

    作用:更快設計,更快執行,更低成本。

  2. 系統測試完成之後,還有剩餘時間的情況下,以探索式測試作為補充,嘗試系統測試覆蓋不到的場景,從而減少漏測,提高測試覆蓋率。

進行探索式測試的前提條件:

  1. 團隊對產品功能比較熟悉。(比如:做過同類型的軟體)
  2. 已經可以執行的待測軟體。(開發已經開發完成)

探索式測試在專案中如何落地?

  1. 快速學習需求:基於對軟體歷史版本的熟悉,對新版本功能快速學習,提出問題並進行澄清。

  2. 作出測試計劃:時間,範圍,團隊分工等。(如:表-論壇專案探索式測試計劃所示簡單的表格)

  3. 利用腦圖形式,列出有哪些模組,覆蓋哪些場景,每個場景的注意事項,然後進行評審。

    表-論壇專案探索式測試計劃

模組 時間 負責人
註冊登入 6.23 - 6.24 測試小王
技術文章 6.23 - 6.25 測試小劉
問答貼 6.23 - 6.25 測試小李
  1. 探索:按照腦圖,執行探索的過程中,根據情況,逐步深挖(也是邊執行邊學習的過程)每條Path,更新並記錄(做出√或者×的標識)執行探索過程中走過的Path(帶著反思去執行測試)。

  2. 提交缺陷:把探索式測試過程中發現的缺陷提交到缺陷管理系統中,修復後迴歸。

  3. 報告總結:以簡單的表格,對BUG的分佈,數量,級別,進行統計和報告。(測試報告

(二)探索式測試分類

探索式測試可分為四類:

  • 自由式探索式測試

    ​ 自由式顧名思義就是沒有約束,純粹從使用的角度出發,拋開規則、模式,測試人員可以任意順序和方式對軟體進行使用測試。這種測試通常會被選做冒煙測試用例。

  • 基於場景的探索式測試

    ​ 這種測試跟傳統的基於場景的測試(場景法)比較像,不同的是,在這種測試中測試人員會擴大測試範圍

    例如1,對某搜尋框的測試:
    - 傳統的場景測試用例可能是:
      ① 輸入“襯衫”,預期結果是搜尋到襯衫相關的資訊;
      ② 輸入“風扇”,搜尋到風扇相關的資訊。
    - 而基於場景的探索式測試,測試場景可能是:
      ① 輸入“襯衫”,探索搜尋結果;
      ② 貼上“123@”,搜尋結果;
      ③ 輸入一個亂碼,搜尋結果;
      ④ 輸入“襯衫”,搜尋結果後返回退到搜尋首頁再次搜尋。
    
    例如2,對於一個批量下載功能:==
    - 傳統的場景測試用例可能是:
      ① 點選“選中全部檔案”按鈕,批量下載;
      ② 手動選擇要下載的檔案,批量下載。
      ③ 測試是否支援跨頁批量下載;
      ④ 批量下載的個數:1,2,499,500,501,999,1000,1001……
      ……
    - 而基於場景的探索式測試,測試場景可能是:
      ① 點選“選中全部檔案”,再手動取消勾選任意個數的檔案,批量下載;
      ② 點選“全選”按鈕,選中當前頁面的所有檔案,再切換到另一頁手動勾選任意個數檔案,批量下載;
      ③ 點選“選中全部檔案”,再取消,再手動勾選任意個數檔案,批量下載;
      ……
    
  • 基於策略的探索式測試

    ​ 這是一種比較依靠經驗的測試方法,簡單來說就是測試老手,融合自己的經驗、技能、感知等條件,結合自由式探索式測試,用自己積累下來的知識來指導測試,是一種經驗結合隨機性的測試。(類似於編寫測試用例時用到的錯誤推斷法,基於經驗和直覺推測程式中所有可能存在的各種錯誤,從而有針對性的設計測試用例。)

  • 基於反饋的探索式測試

    ​ 反饋指的是當測試人員對被測程式做出指令後得到的響應結果。

    ​ 基於這個結果,測試人員可以調整自己的輸入,以期望得到不同的結果

    ​ 例如:在基於場景的探索式測試的描述中,輸入襯衫和風扇會得到不同的搜尋結果,而襯衫的搜尋結果就是對襯衫這個輸入的反饋,風扇的結果就是對風扇這個輸入的反饋。