軟體測試的種類:白盒測試和黑盒測試

2020-10-16 Linux雲計算架構

1.白盒測試

白盒測試,又稱結構測試,主要用於單元測試階段。它的前提是可以把程序看成裝在一個透明的白箱子裡,測試者完全知道程序的結構和處理算法。這種方法按照程序內部邏輯設計測試用例,檢測程序中的主要執行通路是否都能按預定要求正常工作。

白盒測試根據軟體的內部邏輯設計測試用例,常用的技術是邏輯覆蓋,主要的覆蓋標準有 6 種:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合條件覆蓋和路徑覆蓋。

(1)語句覆蓋。語句覆蓋是指選擇足夠多的測試用例,使得運行這些測試用例時,被測程序的每個語句至少執行一次。 很顯然,語句覆蓋是一種很弱的覆蓋標準。

(2)判定覆蓋。判定覆蓋又稱分支覆蓋,它的含義是,不僅每個語句至少執行一次,而且每個判定的每種可能的結果(分支)都至少執行一次。判定覆蓋比語句覆蓋強,但對程序邏輯的覆蓋程度仍然不高。

(3)條件覆蓋。條件覆蓋的含義是,不僅每個語句至少執行一次,而且使判定表達式中的每個條件都取得各種可能的結果。條件覆蓋不一定包含判定覆蓋,判定覆蓋也不一定包含條件覆蓋。

(4)判定/條件覆蓋。同時滿足判定覆蓋和條件覆蓋的邏輯覆蓋稱為判定/條件覆蓋。

它的含義是,選取足夠的測試用例,使得判定表達式中每個條件的所有可能結果至少出現一

次,而且每個判定本身的所有可能結果也至少出現一次。

(5)條件組合覆蓋。條件組合覆蓋的含義是,選取足夠的測試用例,使得每個判定表達式中條件結果的所有可能組合至少出現一次。

顯然,滿足條件組合覆蓋的測試用例,也一定滿足判定/條件覆蓋。因此,條件組合覆蓋是上述 5 種覆蓋標準中最強的一種。然而,條件組合覆蓋還不能保證程序中所有可能的路徑都至少經過一次。

(6)路徑覆蓋。路徑覆蓋的含義是,選取足夠的測試用例,使得程序的每條可能執行到的路徑都至少經過一次(如果程序中有環路,則要求每條環路路徑至少經過一次)。

2.黑盒測試

黑盒測試,又稱功能測試,主要用於集成測試和確認測試階段。它把軟體看作一個不透明的黑箱子,完全不考慮(或不了解)軟體的內部結構和處理算法,它只檢查軟體功能是否能按照軟體需求說明書的要求正常使用,軟體是否能適當地接收輸入數據並產生正確的輸出信息,軟體運行過程中能否保持外部信息(例如文件和資料庫)的完整性等。

黑盒測試根據軟體需求說明書所規定的功能來設計測試用例,它不考慮軟體的內部結構和處理算法。



常用的黑盒測試技術包括等價類劃分、邊值分析、錯誤推測和因果圖等。

(1)等價類劃分

在設計測試用例時,等價類劃分是用得最多的一種黑盒測試方法。

所謂等價類就是某個輸入域的集合,對於一個等價類中的輸入值來說,它們揭示程序中錯誤

的作用是等效的。也就是說,如果等價類中的一個輸入數據能檢測出一個錯誤,那麼等價類

中的其他輸入數據也能檢測出同一個錯誤;反之,如果等價類中的一個輸入數據不能檢測出

某個錯誤,那麼等價類中的其他輸入數據也不能檢測出這一錯誤(除非這個等價類的某個子

集還屬於另一等價類)。

無效等價類是用來測試非正常的輸入數據的,因此每個無效等價類

都有可能查出軟體中的錯誤,所以要為每個無效等價類設計一個測試用例。

(2)邊值分析

經驗表明,軟體在處理邊界情況時最容易出錯。設計一些測試用例,使軟體恰好運行在邊界附近,暴露出軟體錯誤的可能性會更大一些。

通常,每一個等價類的邊界,都應該著重測試,選取的測試數據應該恰好等於、稍小於或稍大於邊界值。

(3)錯誤推測

錯誤推測法主要依靠測試人員的經驗和直覺,從各種可能的測試方案中選出一些最可能引起程序出錯的方案。

(4)因果圖

因果圖法是根據輸入條件與輸出結果之間的因果關係來設計測試用例的,它首先檢查輸入條件的各種組合情況,並找出輸出結果對輸入條件的依賴關係,然後為每種輸出條件的組合設計測試用例。

相關焦點

  • 軟體測試中黑盒測試和白盒測試的詳細講解
    本篇將介紹關於軟體測試的黑盒測試和白盒測試知識的分享,有興趣的朋友可以了解一下!眾所周知,軟體測試是為了便於程式設計師對必要的有要求的軟體進行相關的運行和闡明,判辯設計的規範以及最後運行成功後的審查編碼的合格性。這一步的成功也就是設計的成功的第一步。我們將軟體的測試分為兩個模塊來完成,一方面是程序的編碼部分設計與軟體單元測試的部分,另一個方面就是對整個設計的全面檢測了。
  • 黑盒白盒軟體測試是什麼意思?兩種測試方法有哪些優缺點
    軟體測試是軟體開發過程中必不可少的階段,對於軟體測試人員來說,本職工作就是按照測試方法和測試工具查找程序bug的過程。說到測試方法,相信很多小夥伴對黑盒測試和白盒測試並不陌生,也有通俗一點的說法就是這兩種測試方法一個看得到代碼,一個看不到代碼。那麼黑盒白盒軟體測試究竟是什麼意思,對軟體測試工作有什麼影響呢?
  • 黑盒測試和白盒測試的基本原理/區別是什麼?
    首先我們來看,白盒測試跟黑盒測試,對於這兩個概念,我在網上也經常看到有人提出類似的問題,那我今天就來寫一篇關於兩者之間的原理與區別VS。因為有很多朋友是剛剛接觸軟體測試行業的,多多少少都會有聽過白盒測試、黑盒測試。在公司裡面,或者經常聽到有人說你是做黑盒測試還是做白盒測試?或者白盒測試包括哪一些範疇呢?黑盒測試又包括哪一些範疇。
  • 關於軟體工程的白盒和黑盒測試
    白盒測試是一種測試用例設計方法,盒子指的是被測試的軟體,而白盒指的盒子是透明可見的,我們可以清楚盒子內部的東西以及它們是如何運作。「白盒」法採用的是窮舉路徑測試,在使用這一方法之前,測試者必須檢查程序的內部結構,從檢查程序的邏輯著手,得出測試數據。1.
  • 「測試」黑盒測試、白盒測試的簡單介紹
    測試分為三種 1. 黑盒測試(將程序當做一個黑盒子,只測試外部排版功能,不考慮程序的內部結構)2. 白盒測試(不考慮外部結構,對程序內部進行測試,要求需要看懂代碼 java的白盒測試需要看得懂java)3.
  • 遊戲測試白盒和黑盒什麼意思
    遊戲測試白盒和黑盒什麼意思?很多遊戲小白不是很明白,那麼就和小編來看看下面這篇關於遊戲測試黑盒白盒什麼意思的解答,希望對小夥伴們有所幫助。遊戲測試白盒和黑盒什麼意思  白盒測試  是與黑盒測試相對應的,這種方法是把測試對象看作一個打開的透明盒子。
  • 什麼是白盒測試和黑盒測試?
    有個網友發私信吐槽,前幾天和一個合作的軟體外包公司開會,人家問需不需提供白盒測試報告,他不懂啥意思,覺得測試報告肯定是需要的,於是就說要,結果今天給了報價,發現這一項要好幾萬。例如這個「白盒測試」,還有一個對應的詞是「黑盒測試」,啥意思呢?比如你家新買的電視機,把電視機和遙控器上的所有按鍵都按一遍,看看每個按鍵是否能達到預期的效果,這個就是黑盒測試了。而如果把電視給完全拆開,用一大堆專業的檢測工具,去檢測拆出來的每一個零件是不是能正常工作,這就是白盒測試了。
  • 白盒測試快速入門1-簡介
    什麼是白盒測試?白盒測試被定義為測試軟體解決方案的內部結構,設計和編碼。在這種類型的測試中,代碼對測試人員是可見的。它主要側重於通過應用程式驗證輸入和輸出的流程,改進設計和可用性,加強安全性。白盒測試也稱為透明盒測試,開箱測試,結構測試,基於代碼的測試和玻璃盒測試。它通常由開發人員執行。它是軟體測試「盒子測試」方法的兩個部分之一。
  • 黑盒測試方法揭密
    一、黑盒測試在快速應用開發(rad)環境中的重要作用本文引用地址:http://www.eepw.com.cn/article/192849.htm軟體測試方法一般分為兩種:白盒測試與黑盒測試。其中,白盒測試又稱為結構測試、邏輯驅動測試或基於程序本身的測試,著重於程序的內部結構及算法,通常不關心功能與性能指標。
  • 軟體工程和軟體測試
    成熟度等級過程域 可管理級:需求管理、項目計劃、配置管理、項目監督與控制、供應商合同管理、度量和分析、過程和產品質量保證 已定義級 量化管理級 優化管理級可定義級:需求開發、技術解決方案、產品集成、驗證、確認、組織級過程焦點、組織級過程定義
  • 項目測試基礎:黑盒測試相關知識筆記
    1、軟體測試方法分類靜態測試:主要指測試程序不在機器上運行,而是採用人工檢測和計算機輔助靜態分析的手段對程序進行檢測。人工檢測:靠人工審查程序或評審如啊你就按,包括代碼檢查、靜態結構分析、代碼質量度量等。
  • 軟體測試是幹什麼的?
    1、國內定位和發展前景:測試工程師,軟體質量的把關者,工作起點高,發展空間大。我國的軟體測試職業還處於一個發展的階段,所以測試工程師具有較大發展前景。目前傳統的軟體行業還是以軟體測試工程師為主,但是在新興的網際網路行業大多還是以QA來命名這個職位,也就是質量保證。
  • 項目測試基礎:白盒測試相關知識筆記
    1、白盒測試概念白盒測試又稱為結構測試,主要是根據程序的內部結構和邏輯來設計測試用例,然後對程序的路徑和過程進行測試,檢查是否滿足設計的需要。2、白盒測試常用的技術介紹白盒測試常用的技術有邏輯覆蓋、循環覆蓋、基本路徑測試。2.1 邏輯覆蓋邏輯覆蓋考察用測試數據運行被檢測程序時,對程序邏輯的覆蓋程度。
  • 軟體測試新突破之「精準測試」
    而測試的難點就體現在以下幾個方面:(1)系統級的測試用的基本都是黑盒測試方法,從根本上註定基於黑盒測試方法的各種方法都沒有直接面對計算機所真正理解的程序層面去解決軟體測試問題。同時黑盒測試永遠帶有一種猜測的基因,過程非常不穩定,並且難以控制。
  • 什麼是軟體測試
    雖然大部分測試的智力過程不外乎回顧、檢查,然而「測試」這個詞意味著產品動態分析──讓產品流暢運行。程序質量可能,而且通常會,隨系統不同而有差異;不過某些公認特性是共通的:可靠性、穩定性、輕便性、易於維護、以及實用性。軟體測試一般分為黑盒測試和白盒測試。
  • 白盒測試的類別、依據和流程
    白盒測試的類別、依據和流程白盒測試的策略是首先進行靜態結構分析,採用先靜態後動態的的組合方式,然後進行覆蓋測試。利用靜態結構分析和動態測試對結果進行進一步確認,以達到測試效果。1、白盒測試類別白盒測試的類別具體分為以下七大類:(1)軟體公用問題的測試。(2)語言測試。(3)業務對象測試。(4)數據類型測試。(5)界面測試。(6)數值對象測試。
  • 博睿同創|軟體測試方法應該用哪一個?
    編碼後或編碼前(TDD即測試驅動開發) 測試對象:模塊 測試人員:開發人員或白盒測試工程師 測試依據:設計文檔+代碼和注釋 測試方法:白盒測試 測試內容:模塊接口測試、局部數據結構測試、路徑測試、錯誤處理測試、邊界測試
  • 一篇乾貨搞懂測試:軟體測試基本點總結
    軟體測試在軟體設計完成後要經過嚴密的測試,以發現軟體在整個設計過程中存在的問題並加以糾正。整個測試過程分單元測試、組裝測試以及系統測試三個階段進行。測試的方法主要有白盒測試和黑盒測試兩種。在測試過程中需要建立詳細的測試計劃並嚴格按照測試計劃進行測試,以減少測試的隨意性。
  • 新手分不清軟體測試方法?今天帶大家分類一下
    軟體測試方法種類繁多,有白盒測試、黑盒測試、靜態測試、動態測試、集成測試等等,記憶起來容易混亂,傻傻分不清楚,如果把軟體測試方法進行分類, 就會清晰很多。現在test先生把常用的軟體測試方法列出來,讓大家更容易區分記憶。
  • 黑盒測試的7種測試方法
    黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,在程序接口進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息。黑盒測試著眼於程序外部結構,不考慮內部邏輯結構,主要針對軟體界面和軟體功能進行測試。