1. 程式人生 > >軟件測試中的“黑盒”與“白盒”

軟件測試中的“黑盒”與“白盒”

外部 想是 區間 設計 nbsp ron 添加 這一 白盒測試

 軟件測試中,最常聽到“黑盒測試”與“白盒測試”,它們是軟件測試中最基本的測試方法。   那麽究竟何為“黑盒”,何為“白盒”呢?下面就對其概念與常用方法進行一下介紹。   黑盒測試:   也稱功能測試、數據驅動測試,它將被測軟件看作一個打不開的黑盒,主要根據功能需求設計測試用例,進行測試。   概念:黑盒測試是從一種從軟件外部對軟件實施的測試,也稱功能測試或基於規格說明的測試。其基本觀點是:任何程序都可以看作是從輸入定義域到輸出值域的映射,這種觀點將被測程序看作一個打不開的黑盒,黑盒裏面的內容(實現)是完全不知道的,只知道軟件要做什麽。因無法看到盒子中的內容,所以不知道軟件是如何實現的,也不關心黑盒裏面的結構,只關心軟件的輸入數據和輸出結果。   檢測軟件功能能否按照需求規格說明書的規定正常工作,是否有功能遺漏;   檢測是否有人機交互錯誤,是否有數據結構和外部數據庫訪問錯誤,是否能恰當地接收數據並保持外部信息(如數據庫或文件)等的完整性;   檢測行為、性能等特性是否滿足要求等; 檢測程序初始化和終止方面的錯誤等。   優點:   ① 與軟件具體實現無關,如果軟件實現發生了變化,測試用例仍可用;   ② 設計黑盒測試用例可以和軟件實現同時進行,因此可壓縮項目總開發時間。   黑盒測試常用方法
  等價類劃分   邊界值分析   因果圖   決策表分析   等價類劃分   完全不考慮程序的內部結構,只根據程序規格說明書對輸入範圍進行劃分,把所有可能的輸入數據,即程序輸入域劃分為若幹個互不相交的子集,稱為等價類,然後從每個等價類中選取少數具有代表性的數據作為測試用例,進行測試。   劃分原則:區間、數值、數值集合、限制條件或規則、細分等價類   邊界值分析   邊界值和等價類密切相關,輸入等價類和輸出等價類的邊界是要著重測試的邊界情況。在等價類的劃分過程中產生了許多等價類邊界。邊界是最容易出錯的地方,所以,從等價類中選取測試數據時應該關註邊界值。   在等價類劃分基礎上進行邊界值分析測試的基本思想是,選取正好等於、剛剛大於或剛剛小於等價類邊界的值作為測試數據,而不是選取等價類中的典型值或任意值做為測試數據。   對於一個n變量的程序,邊界值分析測試會產生4n+1個測試用例。   因果圖
  (1)確定軟件規格中的原因和結果。分析規格說明中哪些是原因(即輸入條件或輸入條件的等價類),哪些是結果(即輸出條件),並給每個原因和結果賦予一個標識符。   (2)確定原因和結果之間的邏輯關系。分析軟件規格說明中的語義,找出原因與結果之間、原因與原因之間對應的關系,根據這些關系畫出因果圖。   (3)確定因果圖中的各個約束。由於語法或環境的限制,有些原因與原因之間、原因與結果之間的組合情況不可能出現。為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件。   (4)把因果圖轉換為決策表。   (5)根據決策表設計測試用例。   決策表分析   在所有的黑盒測試方法中,基於決策表的測試是最嚴格,最具有邏輯性的測試方法。   決策表是把作為條件的所有輸入的各種組合值以及對應輸出值都羅列出來而形成的表格。   它能夠將復雜的問題按照各種可能的情況全部列舉出來,簡明並避免遺漏。因此,利用決策表能夠設計出完整的測試用例集合。   步驟:
  (1)列出所有的條件樁和動作樁。   (2)確定規則的個數。   (3)填入條件項。   (4)填入動作項,得到初始決策表。   (5)簡化決策表,合並相似規則。   對於n個條件的決策表,相應有2n個規則   決策表合並原則:即若表中有兩條以上規則具有相同的動作,並且在條件項之間存在極為相似的關系,便可以合並。   白盒測試:   也稱結構測試或邏輯驅動測試,它是知道產品內部工作過程,可通過測試來檢測產品內部動作是否按照規格說明書的規定正常進行,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能。   白盒測試常用方法   基本覆蓋標準:邏輯驅動、循環、基路測試等,主要用於軟件驗證。   “白盒”法全面了解程序內部邏輯結構、對所有邏輯路徑進行測試。   “白盒”法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內部結構,從檢查程序的邏輯著手,得出測試數據。貫穿程序的獨立路徑數是天文數字。但即使每條路徑都測試了仍然可能有錯誤。   原因:   第一,窮舉路徑測試決不能查出程序違反了設計規範,即程序本身是個錯誤的程序。   第二,窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。   第三,窮舉路徑測試可能發現不了一些與數據相關的錯誤。   白盒測試邏輯驅動方法   語句覆蓋   判定覆蓋   條件覆蓋   判定/條件覆蓋   條件組合覆蓋   路徑覆蓋 如果有任何疑問,歡迎添加qq群測試入門大神 755431660 共同學習~
?技術分享圖片?

軟件測試中的“黑盒”與“白盒”