1. 程式人生 > >軟體測試之測試術語

軟體測試之測試術語

軟體測試
軟體測試,指通過某種手段來執行或測試某個系統的過程。其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。軟體測試是為了發現錯誤而執行程式的過程。

測試用例
指的是在測試執行之前設計的一套詳細的測試方案,包括測試環境、測試步驟、測試資料和預期結果。
用一個等式來簡單表示:測試用例=輸入+輸出+測試環境。其中,“輸入”包括測試資料和操作步驟;“輸出”指的是期望結果;測試環境指的是系統環境設定。

根據測試方法可劃分為:黑盒測試、白盒測試、灰盒測試。

黑盒測試
黑盒測試,指的是把被測的軟體看作是一個黑盒子,不去關心盒子裡面的結構是什麼樣,只關心輸入資料和輸出結果。
它只檢查程式功能是否按照需求規格說明書的規定正常使用,程式是否能適當地接收輸入資料而產生正確的輸出資訊。黑盒測試著眼於程式外部結構,不考慮內部邏輯結構,主要針對軟體介面和軟體功能進行測試。

白盒測試
白盒測試,指的是把盒子蓋子開啟,去研究裡面的原始碼和程式結果。
它是按照程式內部的結構測試程式,通過測試來檢測產品內部動作是否按照設計規格說明書的規定正常進行,檢驗程式中的每條通路是否都能按預定要求正確工作。

灰盒測試
灰盒測試介於黑盒測試與白盒測試之間。
可以這樣理解,灰盒測試關注輸出對於輸入的正確性,同時也關注內部表現,但這種關注不象白盒那樣詳細、完整,只是通過一些表徵性的現象、事件、標誌來判斷內部的執行狀態,有時候輸出是正確的,但內部其實已經錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要採取這樣的一種灰盒的方法。

根據測試流程/開發階段可劃分為:單元測試、整合測試、系統測試、驗收測試。

單元測試
單元測試是對軟體中的基本組成單位進行的測試。目的是檢驗軟體基本組成單位的正確性。

整合測試
整合測試是在軟體系統整合過程中所進行的測試。目的是檢查軟體單位之間的介面是否正確。

系統測試
系統測試是對已經整合好的軟體系統進行徹底的測試,以驗證軟體系統的正確性和效能等是否滿足其規約所指定的要求。

驗收測試
驗收測試是部署軟體之前的最後一個測試操作。目的是確保軟體準備就緒,向軟體購買者展示該軟體系統滿足其使用者的需求。

根據測試的側重可劃分為:功能測試、效能測試。

功能測試
檢查實際的功能是否符合需求。

效能測試
通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項效能指標進行測試。

效能測試是相對功能測試來說的。它們之間最本質的區別就是:對系統的處理能力是否夠成壓力。如果一個使用者的一個操作(比如超大資料量的查詢)對系統夠成了壓力,也可以視其為效能測試。
軟體的效能包括很多方面,主要有時間效能和空間效能兩種。
時間效能:主要是指軟體的一個具體的響應時間。比如一個登入所需要的時間,一個交易所需要的時間等。
空間效能:主要指軟體執行時所消耗的系統資源,比如硬體資源,CPU、記憶體,網路頻寬消耗等。

根據測試是否使用自動化工具劃分:手工測試與自動化測試 。

手工測試
人工一個一個的去執行測試用例,通過鍵盤滑鼠等輸入一些引數,檢視返回結果是否符合預期結果。在目前的測試領域,手工測試仍然是無法替代的一種測試方法。

自動化測試
自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測試用例並通過評審之後,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為了節省人力、時間或硬體資源,提高測試效率,便引入了自動化測試的概念。自動化測試是對手工測試的一種補充,因為很多資料的正確性、GUI、業務邏輯等都離不開測試人員的人工判斷。

自動化測試又可分為功能自動化測試與效能自動化測試。
功能自動化測試,指通過相關的測試技術,用一段程式來測試一個軟體的功能,這樣就可以重複執行程式來進行重複的測試。如果一個軟體一小部分發生改變,我們只要修改一部分程式碼,就可以重複的對整個軟體進行功能測試。這樣就大大的提高了測試效率。
效能自動化測試,除了早期階段,現在的效能測試工作都是通過效能測試工具輔助完成的。能過工具可以模擬成千上萬的使用者向系統傳送請求,用來驗證系統的處理能力。

其他測試術語,

冒煙測試
這一術語源自硬體行業。任何新電路板焊好後,先通電檢查,如果存在設計缺陷,電路板可能會短路冒煙。在軟體中,冒煙測試的物件是每一個新編譯的需要正式測試的軟體版本,目的是確認軟體基本功能正常,可以進行後續的正式測試工作。冒煙測試的執行者是版本編譯人員。

迴歸測試
迴歸測試是指修改了舊程式碼後,重新測試以確認修改後沒有引入新的錯誤或導致其他程式碼產生錯誤。

隨機測試
指測試中的所有輸入資料都是隨機生成的,其目的是模擬使用者的真實操作,並發現一些邊緣性的錯誤。隨機測試可以發現一些隱蔽的錯誤,但是也有很多缺點,比如測試不繫統,無法統計程式碼覆蓋率和需求覆蓋率,發現的問題難以重現。

A/B測試
簡單來說,A/B測試指為同一個目標制定兩個方案(比如兩個頁面),讓一部分使用者使用A方案,另一部分使用者使用B方案,記錄下使用者的使用情況,看哪個方案更符合設計。
A/B測試的核心就是:確定兩個元素或版本(A和B)哪個版本更好,你需要同時實驗兩個版本。最後,選擇最好的版本使用。
可藉助A/B測試來優化產品、提高轉化率。