黑盒測試
概述
黑盒測試又名為功能測試,主要目的是發現軟件設計的需求或者是軟件設計規格說明書中的錯誤缺陷。軟件的開發具有特定性,一般都是為了某種具體特定功能開發的,軟件功能的描述依賴于在軟件需求階段的需求規格說明書的分析,軟件在設計過程中被分成了一個或者是多個功能,保證這些功能能夠正常運行的就是軟件測試,從而進一步滿足用戶的需求與需要。黑盒測試與白盒測試相反,軟件設計程序被看做一個打不開的盒子,盒子裡的程序代碼測試人員不能看到。對于源代碼不可見的情況,可使用黑盒測試方法對軟件進行功能測試。隻能看到軟件或者是某些模塊的簡單功能描述,這種測試方法主要是驗證軟件或者是功能的實現度。
測試方法
(一)等價類劃分法
等價類劃分法是一種典型的、重要的黑盒測試方法,它将程序所有可能的輸入數據劃分為若幹個等價類。然後從每個部分中選取具有代表性的數據當做測試用例。測試用例由有效等價類和無效等價類的代表數據組成,從而保證測試用例具有完整性和代表性。使用該方法設計測試用例主要有兩個步驟:(1)确定等價類;(2)生成測試用例。
(二)邊界值分析法
邊界值分析法是對程序輸入或輸出的邊界值進行測試的一種黑盒測試方法。實際的測試工作證明,考慮了邊界條件的測試用例比那些沒有考慮邊界條件的測試用例具有更高的測試回報率。這裡所說的邊界條件,是指輸入和輸入等價類中那些恰好處于邊界、或超過邊界、或在邊界以下的狀态。
(三)因果圖法
因果圖法也是較常用的一種黑盒測試方法,是一種簡化了的邏輯圖。因果圖能直觀地表明輸入條件和輸出動作之間的因果關系,能幫助測試人員把注意力集中到與程序功能有關的輸入組合上。因果圖法是一種适合于描述對于多種輸入條件組合的測試方法,根據輸入條件的組合、約束關系和輸出條件的因果關系,分析輸入條件的各種組合情況,從而設計測試用例的方法,它适合于檢查程序輸入條件的各種組合情況
(四)錯誤推測法
錯誤推測法是基于以往的經驗和直覺,參照以往的軟件系統出現的錯誤,推測當前被測程序中可能存在的缺陷和錯誤,有針對性地設計測試用例。
用錯誤推測法設計測試用例的基本思想是:列舉出程序中可能犯出現的錯誤或容易發生錯誤的特殊情況的清單,然後根據清單和已經設計好的測試用例來編寫特定的測試用例。例如,程序中出現的輸入數據為“0”或者字符為空就是一種錯誤易發情況;在出現輸入或輸出的數量不定的地方,數量為“沒有”和“一個”也是錯誤易發情況。特别需要注意的是,在閱讀規格說明時聯系程序員可能做的假設來确定測試用例,測試人員要站在用戶的角度來考慮輸入信息,而不必去管這些信息對于被測程序是合理還是不合理的輸入。
白盒測試
概述
白盒測試又名為結構測試,主要目的是發現軟件程序編碼過程中的錯誤。代碼編寫錯誤的原因有很多,代碼編寫過程中,軟件代碼編寫程序員的編程經驗、對于開發工具熟悉掌握程度以及代碼編寫時的精神狀态情況,這些情況不佳,都有可能使得他們在編寫過程中出現錯誤。軟件程序基本的語法錯誤在程序調試時,就能夠很及時地發現,然後及時進行改正。但是軟件程序在運算順序、邏輯判斷以及運行路徑上的錯誤很難發現,在實際的軟件程序代碼編寫上,沒有程序員能夠保證代碼編寫結構不出現任何錯誤,即使是水平很高的程序員也不能保證。白盒測試下,軟件程序被看做是一個打開的盒子,盒子裡有測試軟件的源程序,還能夠分析盒子内部的結構,所以這種測試方法能夠全面地測試程序代碼結構。
方法步驟
白盒測試的方法有三種,一是程序結構分析,根據源代碼可以首先繪制程序的流程圖,然後根據流程圖分析程序的結構。二是邏輯覆蓋方測試,根據程序的内部結構,對所有的路徑進行測試,是一種窮舉路徑的測試方法。三是基本路徑測試,根據程序的邏輯判斷,分析程序中的路徑,再進行用例的設計。白盒測試是軟件測試中比較重要的一種測試方法,可以分為四個步驟實施,第一步,撰寫測試計劃。根據需求說明書,制定軟件測試的進度,确定人員、範圍、技術、風險等,形成測試計劃或測試方案。第二步,撰寫測試用例。根據源代碼及其分析,按照一定規範化的方法進行軟件結構劃分,并進行測試用例的設計,形成測試用例表。第三步,執行測試用例。按照之前寫好的測試用例,進行系統測試的執行,并且記錄測試結果,形成缺陷表和缺陷報告。第四步,撰寫測試總結。将前期的測試工作做總結,分析用例的數量、發現的高、中、低缺陷數,評價本系統,形成完整的總結報告。
區别
軟件的黑盒測試意味着測試要在軟件的接口處進行。這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序内部的邏輯結構和内部特性,隻依據程序的需求規格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試。
軟件的白盒測試是對軟件的過程性細節做細緻的檢查。這種方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序内部的邏輯結構及有關信息,設計或選擇測試用例,對程序的所有邏輯路徑進行測試,通過在不同點檢查程序狀态,确定實際狀态是否與預期的狀态一緻。因此白盒測試又稱為結構測試。白盒測試主要是想對程序模塊進行檢查。