什麼是動態測試?(型別、技術、示例)
動態測試
在軟體測試中,動態測試是一種用於測試軟體程式碼動態行為的方法或技術。此測試主要用於測試軟體產品在動態變數(或非恆定變數)下的行為,以及檢測軟體執行時環境中的薄弱或脆弱區域。軟體程式碼應被執行以測試軟體產品的動態行為。
測試需要 2 個 V 來完成測試過程,並結合了驗證和確認。在這兩個 V 中,驗證被稱為靜態測試,而確認被稱為動態測試。
為什麼要進行動態測試?
執行動態測試的主要目的是確保軟體產品在安裝期間和安裝後都能正常執行,從而保證應用程式穩定且沒有重大缺陷。動態測試有助於確保軟體產品的一致性。
考慮一個銀行應用程式,它具有不同的螢幕,例如“我的賬戶”部分、“資金轉賬”、“賬單支付”等。所有這些螢幕都具有金額欄位,該欄位接受一些字元作為輸入。
假設“我的賬戶”螢幕顯示金額為 25,000 盧比,“資金轉賬”螢幕顯示金額為 25,000 美元,“賬單支付”螢幕顯示金額為 25,000 美元,這都是相同金額。但是,金額的顯示方式並不相同,從而導致軟體產品不一致。
一致性不僅限於工作方式,還涉及效能、使用情況、相容性等不同因素,因此動態測試非常重要。
動態測試的型別
動態測試分為兩類:
白盒測試 - 在這種軟體測試方法中,測試人員知道內部結構/設計。白盒測試主要用於檢查軟體產品根據軟體程式碼的功能。白盒測試由具有程式設計知識的開發人員或白盒測試人員執行。
黑盒測試 - 在這種測試方法中,測試人員不知道內部結構、程式碼或設計。黑盒測試主要用於驗證被測軟體產品的執行或功能。黑盒測試需要執行整個測試套件。黑盒測試由測試人員執行,不需要任何程式設計知識。
黑盒測試分為兩種型別:
功能測試 - 用於驗證開發的功能是否符合規定的功能。功能測試透過執行由質量保證 (QA) 團隊編寫的功能測試用例來完成。在這種測試中,透過提供輸入、驗證結果並將獲得的結果與預期結果進行比較來測試軟體產品。
以下是功能測試中最重要的不同級別:
單元測試 - 單元是可測試的一小段軟體程式碼。單元測試是在被測軟體產品的單個單元上進行的。開發人員通常負責單元測試。
整合測試 - 此測試透過組合所有可以由開發人員或測試人員測試的單元來執行。
系統測試 - 此測試用於確保被測軟體產品滿足所有要求。系統測試通常在整個系統準備就緒後進行。當代碼提供給質量保證團隊時,測試人員會執行系統測試。
驗收測試 - 此測試用於驗證軟體是否滿足所有業務需求,以及它是否已準備好使用或部署。驗收測試通常由終端使用者執行。
非功能測試 - 這種測試方法不強調功能方面,而是關注非功能方面,例如記憶體洩漏、效能、健壯性等。此測試在所有測試級別中進行。以下是非功能測試中最重要的不同級別
效能測試 - 用於驗證軟體的響應時間,以及在所需負載下檢查其是否符合要求。
恢復測試 - 此測試方法用於驗證系統從崩潰和故障中恢復的能力。
相容性測試 - 此測試方法用於驗證軟體在不同環境中的行為。
安全測試 - 此測試方法用於驗證軟體的健壯性,以確保只有授權的使用者/角色才能訪問軟體。
可用性測試 - 此測試方法由終端使用者執行,以驗證軟體的可用性。
動態測試的技術
動態測試的不同技術是不同的任務,例如測試的需求分析、測試計劃、設計測試用例和實施、測試環境的設定、測試用例的執行、缺陷報告和測試結束。動態測試中執行的測試取決於測試中先前任務的完成情況。
動態測試的過程從設計測試用例開始。在我們深入瞭解這個過程之前,讓我們討論一下動態程式設計要遵循的策略。測試策略主要強調可用資源和可用時間。根據這些因素,測試範圍和目標、測試階段或週期、環境、假設或挑戰、風險等都將被記錄在案。
在定義測試策略並獲得管理層批准後,實際的測試用例設計過程開始。
測試設計和實施 - 在此階段,將識別要測試的功能、測試條件、覆蓋項和測試用例。
測試環境設定 - 我們必須確保測試環境必須與生產環境相似。在此階段,將安裝構建並管理測試機器。
測試執行 - 在此階段,將執行測試用例。
缺陷報告 - 根據測試用例的執行情況,如果預期結果與實際結果不相同,則測試用例將被標記為失敗,並且必須記錄缺陷。
動態測試的優點
動態測試可以發現未發現的錯誤,這些錯誤被認為是難以或複雜,並且無法透過靜態分析覆蓋。
在動態測試中,軟體將進行端到端測試,以確保軟體無錯誤,從而提高軟體和專案的質量。
它是檢測安全威脅的重要工具。
動態測試的缺點
它會消耗大量時間,因為它會執行軟體或程式碼,這需要大量的資源。
它會增加專案或軟體的成本,因為它在軟體開發生命週期的後期開始。因此,在後期修復的任何問題都可能增加成本。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP