軟體測驗(Software Testing)的定義
官方釋義
- 用來促進鑒定軟體的正確性、完整性、安全性和質量的程序;
- 是一種實際輸出與預期輸出間的審核或者比較程序;
- 使用人工和自動手段來運行或測驗某個系統的程序,其目的在于檢驗它是否滿足規定的需求或是弄清預期結果與實際結果之間的差別;
經典定義
在規定的條件下對程式進行操作,以發現錯誤;也是對軟體質量進行評估的一個程序,
軟體質量的定義
?軟體滿足規定或潛在用戶需求的能力,具體地說,軟體質量是軟體符合明確敘述的功能和性能需求、檔案中明確描述的開發標準、以及所有專業開發的軟體都應具有的和隱含特征相一致的程度,
軟體測驗與軟體質量的區別
軟體質量(QA)
?主要作業是通過預防,檢查與改進來保證軟體質量,它所關注的是軟體質量的檢查與測量,著眼軟體開發活動中的程序、步驟及產物,而不是對軟體進行剖析進而找出問題,
軟體測驗
?測驗關心的不是程序的活動,而是對程序的產物以及開發出的軟體進行剖析,測驗人員要“執行”軟體,對程序中的產物——開發檔案和源代碼進行走查,運行,以找出問題,報告質量,測驗人員也必須假設軟體存在問題,所以所做的操作都是為了找出更多的問題,而不僅僅驗證每一件事是正確的,
軟體測驗內容
?根據測驗定義,測驗貫穿于整個軟體生命周期中,在開發的不同階段,需要測驗不同的內容,包括檔案,源代碼,資料等,
軟體測驗的分類
- 按開發階段來分:單元測驗、集成測驗、系統測驗、驗收測驗,
- 按測驗的實施單位來分:開發方測驗、用戶測驗、第三方測驗,
- 按測驗技術來分:白盒測驗、黑盒測驗、灰盒測驗,
軟體測驗的常用種類
-
功能測驗:對產品的各功能進行驗證,根據功能測驗用例,逐項測驗,檢查產品是否達到用戶要求的功能,
-
黑盒測驗:把測驗物件看做一個黑盒子,測驗人員完全不考慮程式內部的邏輯結構和內部特性,只依據程式的需求規格說明書,檢查程式的功能是否符合它的功能說明,因此黑盒測驗又叫功能測驗或資料驅動測驗,
黑盒測驗方法包括:等價類劃分、邊界值分析、因果圖分析、錯誤推測法、功能圖分析等, -
白盒測驗:是對軟體的程序性細節做細致的檢查,是把測驗物件看做一個打開的盒子,它允許測驗人員利用程式內部的邏輯結構及有關資訊,設計或選擇測驗用例,對程式所有邏輯路徑進行測驗,通過在不同點檢查程式狀態,確定實際狀態是否與預期的狀態一致,因此白盒測驗又稱為結構測驗或邏輯驅動測驗,
白盒測驗方法包括:陳述句覆寫、判定覆寫、條件覆寫、判定/條件覆寫、條件組合覆寫、路徑覆寫等, -
單元測驗:是對軟體中的基本組成單位進行的測驗,如一個模塊、一個程序等等,它是軟體動態測驗的最基本的部分,也是最重要的部分之一,其目的是檢驗軟體基本組成單位的正確性,一個軟體單元的正確性是相對于該單元的規約(詳細設計)而言的,因此,單元測驗以被測驗單位的規約為基準,
單元測驗方法包括:控制流測驗、資料流測驗、排錯測驗、分域測驗等, -
集成測驗:是在軟體系統集成程序中所進行的測驗,其主要目的是檢查軟體單位之間的介面是否正確,它根據集成測驗計劃,一邊將模塊或其他軟體單位組合成越來越大的系統,一邊運行該系統,以分析所組成的系統是否正確,各組成部分是否合拍,集成測驗的策略主要有自頂向下和自底向上兩種,
-
系統測驗:是對已經集成好的軟體系統進行徹底的測驗,以驗證軟體系統的正確性和性能等滿足其規約所指定的要求,檢查軟體的行為和輸出是否正確并非一項簡單的任務,它被稱為測驗的“先知者問題”,因此,系統測驗應該按照測驗計劃進行,其輸入、輸出和其他動態運行行為應該與軟體規約進行對比,軟體系統測驗方法很多,主要有功能測驗、性能測驗、隨機測驗等,
-
回歸測驗:是指修改了舊代碼后,重新進行測驗以確認修改沒有引入新的錯誤或導致其他代碼產生錯誤,回歸測驗的困難在于不好確定哪些內容應當被重新測驗,
-
驗收測驗:由客戶或最終用戶執行,旨在向軟體的購買者展示該軟體系統滿足其用戶的需求,它的測驗資料通常是系統測驗的測驗資料的子集,所不同的是,驗收測驗常常有軟體系統的購買者代表在現場,甚至是在軟體安裝使用的現場,這是軟體在投入使用之前的最后測驗,
-
Alpha測驗:由用戶在開發者的場所進行,并且在開發者對用戶的“指導”下進行測驗,開發者負責記錄發現在錯誤和使用中遇到的問題,總之,Alpha測驗是在受控的環境中進行的,
-
Beta測驗:由軟體的最終用戶們在一個或多個客房場所進行,與Alpha測驗不同,開發者通常在Beta測驗的現場,因Beta測驗是軟體在開發者不能控制的環境中的“真實”應用,用戶Beta測驗程序中遇到的一切問題(真實在或想像的),并且定期把這些問題報告給開發者,接收到在Beta測驗期間報告的問題之后,開發者對軟體產品進行必要的修改,并準備向全體客戶發布最終的軟體產品,
-
冒煙測驗:可以根據其名稱理解為該種測驗耗時短,僅用一袋煙功夫足夠了;其實是對軟體基本的功能進行測驗,測驗的物件是每一個新編譯的需要正式測驗的軟體版本,目的是確認軟體基本的功能正常,保證軟體系統能跑的起來,可以進行后續的正式測驗作業,
-
隨機測驗:主要是根據測驗者的經驗對軟體進行功能和性能抽查,它是根據測驗說明書執行樣例測驗的重要補充手段,是保證測驗覆寫完整性的有效方式和程序,
-
動態測驗:是指通過運行被測程式,檢查運行結果與預期結果的差異,并分析運行效率和健壯性等性能,這種方法由三部分組成:構造測驗實體、執行程式、分析程式的輸出結果,所謂軟體的動態測驗,就是通過運行軟體來檢驗軟體的動態行為和運行結果的正確性,目前,動態測驗也是公司的測驗作業的主要方式,
-
靜態測驗:是指不運行被測程式本身,僅通過分析或檢查源程式的語法、結構、程序、介面等來檢查程式的正確性,對需求規格說明書、軟體設計說明書、源程式做結構分析、流程圖分析、符號執行來找錯,靜態方法通程序式靜態特性的分析,找出欠缺和可疑之處,例如不匹配的引數、不適當的回圈嵌套和分支嵌套、不允許的遞回、未使用過的變數、空指標的參考和可疑的計算等,靜態測驗結果可用于進一步的查錯,并為測驗用例選取提供指導,
-
UI測驗:指測驗用戶界面的風格是否滿足客戶要求,文字是否正確,頁面美工是否好看,文字,圖片組合是否完美,背景是否美觀,操作是否友好等;用戶界面(UI)測驗用于核實用戶與軟體之間的互動,UI測驗的目標是確保用戶界面會通過測驗物件的功能來為用戶提供相應的訪問或瀏覽功能,另外,UI測驗還可確保UI中的物件按照預期的方式運行,并符合公司或行業的標準,包括用戶友好性,人性化,易操作性測驗,UI測驗比較主觀,與測驗人員的喜好有關,
-
自動化測驗:利用軟體測驗工具自動實作全部或部分測驗,它是軟體測驗的一個重要組成部分,能完成許多手工測驗無法實作或難以實作的測驗;正確、合理的實施自動測驗,能夠快速、全面的對軟體進行測驗,從而提高軟體質量,節省經費,縮短軟體發布周期,
-
性能測驗:是通過自動化的測驗工具模擬多種正常、峰值以及例外負載條件來對系統的各項性能指標進行測驗,負載測驗和壓力測驗都屬于性能測驗,兩者可以結合進行,通過負載測驗,確定在各種作業負載下系統的性能,目標是測驗當負載逐漸增加時,系統各項性能指標的變化情況,壓力測驗是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測驗,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/16221.html
標籤:其他
