軟件測試
編輯軟件測試是為了向利益相關者提供有關被測軟件產品或服務質量的信息而進行的調查。軟件測試還可以提供客觀,獨立的軟件視圖,以使企業能夠理解和理解軟件實施的風險。測試技術包括執行程序或應用程序的過程,目的是發現軟件錯誤(錯誤或其他缺陷),并驗證軟件產品是否適合使用。
軟件測試涉及軟件組件或系統組件的執行,以評估一個或多個感興趣的屬性。通常,這些屬性指示受測組件或系統的程度:
由于即使是簡單的軟件組件,可能進行的測試數量實際上都是無限的,因此所有軟件測試都使用某種策略來選擇在可用時間和資源上可行的測試。結果,軟件測試通常(但不是排他性地)試圖執行程序或應用程序,目的是發現軟件錯誤(錯誤或其他缺陷)。測試工作是一個反復的過程,因為當一個錯誤被修復時,它可以闡明其他更深層次的錯誤,甚至可以創建新的錯誤。
軟件測試可以提供有關軟件質量及其對用戶或贊助商失敗的風險的客觀、獨立的信息。
只要存在可執行軟件(即使已部分完成),就可以進行軟件測試。軟件開發的總體方法通常決定何時以及如何進行測試。例如,在分階段的過程中,大多數測試是在定義系統要求并在可測試程序中實施之后進行的。相反,在敏捷方法下,需求、編程和測試通常是同時進行的。
概述
盡管在某些特定假設的假設下軟件測試可以確定軟件的正確性,但是測試無法識別軟件中的所有缺陷。相反,它提供了一種批評或比較,將產品的狀態和行為與測試預言進行比較-有人可能會識別問題的原理或機制。這些預言可以包括(但不限于)規格、合同、可比較產品、同一產品的過去版本、對預期或預期目的、用戶或客戶期望、相關標準、適用法律或其他標準的推斷。
測試的主要目的是檢測軟件故障,以便可以發現并糾正缺陷。測試不能確定產品在所有條件下都能正常運行,而只能確定產品在特定條件下不能正常運行。軟件測試的范圍通常包括檢查代碼以及在各種環境和條件下執行該代碼以及檢查代碼的各個方面:它是否執行了應做的事情和需要做的事情去做。在當前的軟件開發文化中,測試組織可能與開發團隊分開。測試團隊成員有各種角色。從軟件測試中獲得的信息可用于更正軟件開發過程。
每個軟件產品都有一個目標受眾。例如,視頻游戲軟件的受眾與銀行軟件完全不同。因此,當組織開發或以其他方式投資軟件產品時,它可以評估該軟件產品對于最終用戶,其目標受眾、購買者和其他利益相關方是否可接受。軟件測試有助于進行此評估。
缺陷和失敗
并非所有軟件缺陷都是由編碼錯誤引起的。代價高昂的缺陷的一種常見來源是需求缺口,即無法識別的需求導致程序設計人員遺漏錯誤。需求缺口通常是非功能性需求,例如可測試性、可伸縮性、可維護性、性能和安全性。
通過以下過程會發生軟件故障。程序員會犯錯誤(錯誤),從而導致軟件源代碼中存在缺陷(錯誤)。如果執行此缺陷,則在某些情況下,系統將產生錯誤的結果,從而導致故障。并非所有缺陷都必然會導致失敗。例如,無效代碼中的缺陷將永遠不會導致失敗。當環境改變時,缺陷可能會變成故障。這些環境變化的示例包括在新的計算機硬件平臺上運行的軟件,源數據的更改或與其他軟件的交互。單個缺陷可能導致各種各樣的故障癥狀。
輸入組合和前提條件
軟件測試的一個基本問題是,即使使用簡單的產品,在輸入和前提條件(初始狀態)的所有組合下進行測試也不可行。這意味著軟件產品中的缺陷數量可能非常大,并且很難在測試中發現不經常出現的缺陷。更顯著,非功能性質量(它應該是怎樣的尺寸是相對于什么是應該做的)-可用性、可擴展性、性能、兼容性、可靠性-可以是高度主觀的;對一個人構成足夠價值的事物可能對另一個人是無法忍受的。
軟件開發人員無法測試所有內容,但是他們可以使用組合測試設計來確定獲得所需覆蓋范圍所需的最少測試數量。組合測試設計使用戶能夠以更少的測試獲得更大的測試覆蓋率。不管他們是在尋找速度還是測試深度,他們都可以使用組合測試設計方法將結構化的變化構建到他們的測試用例中。
經濟學
NIST在2002年進行的一項研究報告稱,軟件漏洞每年給美國經濟造成595億美元的損失。如果執行更好的軟件測試,則可以避免三分之一以上的成本。
由于成本原因,外包軟件測試非常普遍,菲律賓和印度是首選目的地。
角色
軟件測試可以由專門的軟件測試人員完成;直到1980年代,“軟件測試器”一詞被普遍使用,但后來也被視為一個獨立的專業。關于軟件測試的時間段和不同的目標,已經建立了不同的角色,例如測試經理、測試主管、測試分析師、測試設計師、測試人員、自動化開發人員和測試管理員。軟件測試也可以由非專用軟件測試人員執行。
測試工具
測試工具和調試器可以xxx幫助進行程序測試和故障檢測。測試/調試工具包括以下功能:
- 程序xxx器,允許完全或部分xxx程序代碼,包括:
- 格式化的轉儲或符號調試,工具允許檢查錯誤或選定點的程序變量
- 自動化功能圖形用戶界面(GUI)測試工具用于通過GUI重復系統級測試
- 基準測試,可以進行運行時性能比較
- 性能分析(或性能分析工具)可幫助突出顯示熱點和資源使用情況
這些功能中的某些功能可以合并到單個復合工具或集成開發環境(IDE)中。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/116249/