天天看點

軟體測試基礎理論學習記錄三

動态黑盒測試

概念:不深入代碼細節測試軟體的一種方法。有效的動态測試也需要軟體行為的一些定義,即需求文檔或産品說明書。

測試用例:指進行測試時使用的特定輸入以及測試軟體的過程步驟。選擇測試用例是最重要的一項任務。

注:采用大爆炸或邊寫邊改模式開發的軟體可能沒有産品說明書,這時可以使用探索測試技術,了解軟體、設計軟體和執行測試同時進行。

一. 測試的基本方法:通過性測試和失效性測試

通過行測試:确認軟體至少能做什麼,而不考慮其能力,隻用最簡單和最直覺的測試用例。

失效性測試:為了破壞軟體而設計和執行的測試用例,也叫做錯誤強制測試。

二. 選擇測試用例的方法:等價類劃分

概念:分步驟把海量(無限)的測試用例集減的很小,但過程同樣有效。

等價類:指測試相同目标或暴露相同軟體缺陷的測試用例。

目标:把可能的測試用例集縮減到可控制且仍然足以測試軟體的小範圍内。

三. 軟體的資料測試:

  • 概念:檢查使用者輸入的資訊/傳回的結果以及中間計算結果是否正确。

    測試内容:

    • 邊界條件

      概念:指軟體運作在計劃操作界限的邊界的情況,若要選擇等價劃分中包含哪些資料,就必須根據邊界來選擇。

      (1)邊界測試資料确定:僅僅測試位于邊界的資料明顯是不夠的,最好測試邊界兩邊,建立兩個等價劃分。第一個劃分包括應該正确資料即在邊界内最後一到兩個合法的資料蒂娜,第二個劃分時可能出現錯誤的資料即邊界之外一到兩個非法資料點。

      (2)越界測試資料:通常對于最大值加1或者很小的說,以及對于最小值減1或者很小的數。

      注:在軟體每一個部分不斷尋找邊界時極為重要,尋找越多,發現的軟體缺陷可能就越多。不注重尋找邊界條件缺陷,可能會引起緩沖區溢出問題,是造成軟體安全的頭号原因。

    • 次邊界條件

      概念:在軟體内部,最終使用者幾乎看不到,但軟體測試人員仍需要進行檢查的邊界條件。

    • 預設、空白、空值、零值和無

      處理方法:将輸入的内容預設未邊界内最小合法值或者在合法劃分中間的某個合理指;或者傳回錯誤提示資訊。

    • 非法、錯誤、不正确和垃圾資料(失效性測試對象)

四. 軟體的狀态測試:

  • 軟體狀态概念:指軟體目前所處的條件或模式。
  • 狀态測試邏輯流程:
    • 建立狀态轉換圖

      狀态轉換圖應該展現一下内容:

      (1)軟體可能進入的每一種獨立狀态

      (2)從一種狀态轉入另一種狀态所需的輸入和條件。

      (3)進入或者退出某種狀态時的設定條件及輸出結果。

    • 減少要測試的狀态及轉換的數量

      常用方法:

      (1)每種狀态至少通路一次。

      (2)測試看起來最常見和最普遍的狀态運轉。

      (3)測試狀态漸最不常用的分支。

      (4)測試是以錯誤狀态及傳回值。

      (5)測試随機轉換狀态。

  • 失敗狀态測試
    • 競争條件和時序錯亂

      多個獨立的程序在系統中同時運作,并且共享記憶體、磁盤、通信以及其他硬體資源,會導緻競争條件問題。幾個事件恰巧擠在一起,由于未預料到運作過程中會被中斷以緻造成混亂,也就是時序發生錯亂。

    • 重複、壓迫和重負
      • 重複測試:不斷執行同樣的操作,最簡單的是不停的啟動、關閉程式,或反複讀寫或反複選擇同一個操作,以檢查是否存在記憶體洩漏。
      • 壓迫測試:使軟體在不夠理想的條件下運作——記憶體小、磁盤空間小、CPU速度慢、數據機速率低等,觀察軟體對外部資源的要求和依賴條件。
      • 重負測試:與壓迫測試相反,盡量提供條件任其發揮,讓軟體處理盡可能大的資料檔案。時間也是一種重負測試。

        注:重複、壓迫、重負測試應聯合使用,這是找出缺陷的一個最可靠方法。

繼續閱讀