什麼是破壞性測試和非破壞性測試?(技術、方法、示例)
雖然大多數軟體測試方法側重於軟體的功能方面,但破壞性測試強調檢查軟體的不可預測性。因此,它允許測試人員檢測一般使用者通常無法識別的罕見缺陷。
雖然破壞性軟體測試 (DST) 涵蓋了測試過程中的一個重要部分,但這絕不能替代傳統的軟體測試。因此,它通常與常規測試過程一起進行。
什麼是破壞性軟體測試?
破壞性軟體測試 (DST) 是一種測試過程,測試人員故意導致軟體部分發生故障以測試其強度和故障。非破壞性測試 (NDT),又稱正向測試或快樂路徑測試,涉及正確地測試和互動軟體。
破壞性軟體測試的優勢
雖然破壞性測試不能替代傳統的軟體測試 (CST),但您可能想知道為什麼要首先投入時間和金錢。以下是破壞性軟體測試的一些重要優勢:
它揭示了軟體被不當使用時的故障點。
它允許檢測平均使用者無法檢測到的罕見軟體缺陷,但這些缺陷會在以後出現。
它使測試人員能夠檢查應用程式的耐用性、可恢復性和壽命。
它允許您發現缺陷並使軟體適合新手使用者。
執行破壞性測試的步驟
步驟 1 - 客戶需要在開始此測試周期之前傳送應用程式副本或訪問憑據和使用者需求。
步驟 2 - 在向 QA 分析師提交需求後,客戶隨後演示應用程式。
步驟 3 - 現在輪到 QA 分析師確定軟體內的邊界功能,然後確定在這些設定邊界內的應用程式可用性限制。
步驟 4 - QA 測試人員將使用隨機技術隨機測試應用程式,同時保持在邊界內。所有工作流程都經過測試,並記錄錯誤。
步驟 5 - 然後,測試人員與相關人員共享缺陷目錄。
步驟 6 - 如果客戶有不同的意見,則將重複破壞性測試周期。
在破壞性測試中需要驗證的要素:
檢測應用程式中的正確和不正確行為
應用程式是否返回有效或無效的輸入資料
應用程式如何對不當使用做出反應
破壞性軟體測試方法
執行破壞性軟體測試過程有多種方法:
同行評審 - 測試人員可以獲得不熟悉該軟體的同行的產品評審。這將幫助他們檢測軟體中隱藏的缺陷。
利益相關者評審 - 測試人員可以允許利益相關者在有限的時間內使用該軟體。有時,這有助於發現測試人員經常錯過的有效測試場景。
故障點分析法 - 此方法將審查和檢查軟體的每個角落。它有助於檢測軟體將在哪個點發生故障。
探索性測試 - 透過執行表使用此方法。測試人員將大致瞭解要測試的內容,以便在需要時重複測試並控制測試覆蓋率。
用不正確的資料淹沒系統 - 使用損壞的資料,在使用者介面中輸入錯誤的序列等,以確定應用程式在哪個點失敗。
破壞性測試技術
以下是破壞性測試中使用的技術:
- 自頂向下測試
- 系統測試
- 迴歸測試
- 迴圈測試
- 介面測試
- 等價劃分
- 邊界值測試
- 黑盒測試
- Alpha/Beta 測試
- 驗收測試
重要的破壞性測試技巧
在對應用程式進行測試之前,請將自己想象成客戶。
從使用者故事中刪除所有型別的偏見資訊,例如故事描述、驗收標準等。
盡最大努力破壞所有你能破壞的東西。
遵循異常路徑而不是快樂路徑。
在真實的網路環境中進行測試,而不是使用高階機器或超高速網路。
什麼是非破壞性測試?
在非破壞性測試 (NDT) 中,測試人員會正確地與軟體互動。例如,在 DST 中,測試人員輸入不正確或不可接受的變數,而在 NDT 中,使用可接受的資料來檢視軟體是否接受它。
假設一個輸入框只接受 1-99 之間的數字,那麼這裡的任務是在範圍內輸入可接受的數字並驗證軟體的功能。
在 NDT 中,測試工程師使用明確定義的測試用例。如果軟體返回所需的輸出而沒有顯示任何錯誤或異常,則測試被認為成功。這意味著軟體按預期工作。
非破壞性軟體測試的優勢
以下是非破壞性軟體測試過程的優勢
它確保軟體高質量且所有問題都已解決。
成功的 NDT 意味著軟體按要求規格工作。
它確認滿足了所有利益相關者的期望。
它表示軟體涵蓋所有效能要求。
它節省了用於產品評估和錯誤修復的大量資金和時間。
何時執行非破壞性測試?
非破壞性測試在 SDLC 的早期階段進行。這很重要,因為快樂路徑是應用程式的生命線。如果它沒有按預期工作,它將是其餘測試過程。此外,執行此測試所產生的成本和時間相當低。預算有限的組織可以選擇它來滿足軟體要求和驗收標準。
非破壞性軟體測試技巧
測試人員必須使用積極的測試方法進行非破壞性測試。
此測試的主要目的是驗證應用程式在積極方面的行為。這意味著測試人員必須檢視在輸入有效輸入資料時軟體是否完美執行。
破壞性測試和非破壞性測試的區別
| 破壞性測試 | 非破壞性測試 |
|---|---|
| 主要關注的是軟體設計的弱點,而不是功能。 | 主要關注的是軟體功能的弱點。 |
| 執行此測試不需要業務需求。 | 測試是為了根據業務需求和接受的標準驗證軟體的功能。 |
| 透過輸入異常輸入來檢測故障點,從而破壞軟體。 | 正確地與軟體互動並驗證積極的結果。 |
結論
破壞性測試和非破壞性測試都在軟體測試周期中發揮著重要作用。雖然兩者都很關鍵,但非破壞性測試優於其對應測試,因為它涵蓋的範圍更廣,並允許企業節省材料成本。同時,破壞性測試幫助企業發現軟體中通常隱藏但會影響使用者體驗的罕見缺陷。但是,進行此測試可能既昂貴又費時。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP