- 軟件測試分析與實踐
- 高熾揚主編
- 815字
- 2024-03-22 12:19:08
2.1.3 軟件測試的風險觀點
測試被定義為對軟件系統中潛在的各種風險進行評估的活動,這是軟件測試的風險觀點。一方面,軟件測試自身的風險性是人們公認的,測試的覆蓋率不能達到100%;另一方面,軟件測試的標準有時不清楚,軟件規格說明書雖然是測試中的一個標準,但不是唯一的標準。因為規格說明書本身的內容完全有可能是錯誤的,它所定義的功能特性不是用戶所需要的。所以,我們常常強調軟件測試人員應該站在客戶的角度進行測試,除了發現程序中的錯誤,還要發現需求定義的錯誤、規格說明書設計的缺陷。但是,測試在大多數時間/情況下是由工程師完成的,而不是客戶自己來做的,所以又怎么能保證工程師和客戶想的一樣呢?
有人把開發比作打靶,目標明確,就是按照規格說明書去實現系統的功能。而把測試比作撈魚,目標不明確,自己判斷哪些地方魚多,就去哪些地方撈。如果只撈大魚(嚴重缺陷),網眼就可以大些,撒網區域相對比較集中(測試點集中在主要功能上)。如果想把大大小小的魚都撈上來,網眼就要小,普遍撒網,不放過任何一塊區域(測試點遍及所有功能)。
在“風險”觀點的框架下,軟件測試可以看作是一個動態的監控過程,對軟件開發全過程進行測試,隨時發現不健康的征兆,發現問題后報告問題,并重新評估新的風險,設置新的監控基準,不斷地持續下去。軟件測試包括回歸測試。這時,軟件測試完全可以看作是控制軟件質量的過程。
按照這種觀點,可以制定基于風險的測試策略,首先要評估測試的風險,每個功能出問題的概率有多大?根據Pareto原則(也叫80/20原則),哪些功能是用戶最常用的功能(約占20%)?如果某個功能出問題,對用戶的影響又有多大?然后,根據風險大小確定測試的優先級。優先級高的功能特性,測試優先得到執行。一般來講,高優先級功能(用戶最常用的功能,約占20%)的測試會得到完全的、充分的執行,而低優先級功能(用戶不常用的功能,約占80%)的測試就可能由于時間或經費的限制,降低測試的要求,減少測試工作量,這樣做風險性并不是很大。
- C# 7 and .NET Core Cookbook
- C語言程序設計習題解析與上機指導(第4版)
- 動手玩轉Scratch3.0編程:人工智能科創教育指南
- 深入理解Java7:核心技術與最佳實踐
- Java Web開發技術教程
- Nginx Essentials
- Java:High-Performance Apps with Java 9
- ASP.NET Core 2 Fundamentals
- Visual Basic程序設計上機實驗教程
- Python面試通關寶典
- HTML5與CSS3權威指南
- jQuery權威指南
- Mastering Wireless Penetration Testing for Highly Secured Environments
- Go Programming Blueprints
- Mastering Chef Provisioning