黑盒測試就是把測試物件看做乙個不透明的黑盒子,不必了解程式的內部邏輯和結構,只需按照需求規格說明書檢查程式的功能是否符合
黑盒測試主要是為了發現以下幾點錯誤:
(1)是否有不正確或者遺漏的功能
(2)在介面上,輸入能否被正確的接收,是否能輸出正確的結果
(3)是否有資料結構錯誤或者外部資訊訪問錯誤
(4)效能上是否能滿足要求
(5)是否有初始化或者終止性錯誤
1.等價類測試
因為測試所有的可能輸入資料時不可能的
所以需要在所有的輸入資料中選擇合適的代表性的子集來進行測試
這一過程需要經過等價類劃分和選取測試用例兩個步驟
所謂的等價類
就是在所有的測試資料中按照其最終的測試結果進行劃分
比如說:
在乙個接受三個資料計算是否可以構成三角形的三個邊的程式中
如果輸入5,5,5這三個資料,那麼構成了等邊三角形的邊
那麼在輸入10,10,10後者20,20,20也是一樣的結果
所以這三個資料可以劃分為乙個等價類
在i乙個等價類中,只要乙個測試資料時錯誤的,那麼這個等價類中所有的資料結果也都是錯誤的,反之亦然
等價類分為有效等價類和無效等價類
因為無效的資料對應程式的測試也是必不可少的
等價類測試的原則:
(1)如果輸入條件中規定了數值的取值範圍或者是個數,那麼可以確立乙個有效等價類和兩個無效等價類
(2)如果輸入條件中規定了數值的集合或者規定了「必須如何」的條件,那麼可以確立乙個有效等價類和乙個無效等價類
(3)如果輸入條件中規定了數值輸入的一組值,而且程式要對其中每個數值進行單獨的處理,可以為每個數值確立乙個有效等價類,然後對所有的數值的不允許輸入的數值確立乙個無效等價類
(4)如果輸入條件中規定了資料必須遵守的規則,則可以確立乙個有效等價類和若干個無效等價類(以不同的角度違反規則)
(5)如果乙個等價類中的元素在程式中的處理方式不同,則進一步劃分更小的等價類
劃分好等價類,並建立等價類表列出所有的等價類之後按照以下原則選擇測試用例
(1)為每乙個等價類規定乙個唯一的標號
(2)設計乙個新的測試用例,盡可能多的覆蓋沒有覆蓋過的有效等價類,重複這一步直至所有有效等價類都被覆蓋
(3)設計乙個新的測試用例,其實僅覆蓋乙個沒有被覆蓋過的無效等價類,重複這一步使得所有的無效等價類都被覆蓋
2.邊界值分析
邊界值分析其實是讀等價類劃分的補充
因為程式中的大量錯誤是發生在輸入或輸出範圍的邊界上,而不是範圍的內部,所以要針對各種邊界情況設計測試用例
進行邊界值分析首先要確定邊界情況
應當選取正好等於,剛剛大於,或者剛剛小於邊界的值進行測試
進行邊界值分析的原則:
(1)如果輸入條件中規定了值的範圍,則應選取這個範圍的邊界的值以及剛剛超過這個範圍的值
(2)如果輸入條件中規定了值的個數,則應當選取最大,最小個數以及比最大多一和比最小少一的值
(3)根據規格說明的每個輸出條件進行原則1
(4)根據規格說明的每個輸出條件進行原則2
(5)如果規格說明規定輸出或輸出域是有序集合,則選取集合的第乙個元素和最後乙個元素
(6)如果程式中使用了乙個內部的資料結構,則選取這個資料結構的邊界值
(7)分析規格說明,找出其他可能的邊界條件
3.基於判定表的測試
判定表又稱為決策表,最適合描述在將多個邏輯條件取值組合或複雜條件情況下執行哪些不同的動作
使用判定表時
在條件框列出所有的可能的單個條件
在動作框列出對應條件的執行動作
4.基於因果圖的測試
等價類劃分和邊界值分析著重考慮輸入條件,但對於各個輸入條件之間的關係則討論不多
而在某些情況下又需要對輸入條件之間的關係和各種組合情況進行描述
就要使用到因果圖測試
因果圖方法最終生成的就是判定表
使用因果圖方法的步驟如下:
(1)根據規格說明書分析哪些是原因(輸入條件)哪些是結果(輸出條件),並為每個原因和結果賦予乙個識別符號
(2)分析規格說明書中的語義,找出原因和結果之間的對應關係,畫出因果圖
(3)由於語法和環境限制,有些原因或者結果之間的組合情況有著一些限制,為了表明這些特殊情況,在因果圖上用一些記號標明約束條件
(4)把因果圖轉換為判定表
(5)把判定表的每一列作為依據,設計測試用例
5.基於狀態圖的測試
狀態圖描述了當前測試物件和測試資料之間的關係
狀態圖的主要圖形元素有:
(1)狀態,用圓圈表示,反映當前物件所處的環境或者動作
(2)轉換,用箭頭表示,表示從乙個狀態到另乙個狀態的過程
(3)事件,和特定的轉換有關,用來描述轉換的過程
(4)活動,以/形式表示
(5)條件,以形式表示,說明在這個條件下該狀態才能被轉換
(6)特殊狀態,開始和結束狀態
通常需要將狀態圖轉換成狀態轉換樹後者狀態轉換表來進行測試用例的選擇
從狀態圖到狀態轉換樹的轉換步驟:
(1)將初始或者開始狀態作為樹的根節點,所處的層次是1
(2)設當前生成狀態轉換樹的層次為k,從左到右檢查所有層次為k的節點,把對應節點的下乙個可能狀態作為其子女節點,並將轉換作為邊
(3)重複(2)直至下面兩種情況出現:
1)乙個位於k層的節點出現在j層上,且j<=k,這個節點成為最終的葉節點,不需要繼續生成他的子節點
2)節點的狀態是結束狀態,也不需要針對該節點繼續進行狀態轉換
6.基於功能圖的測試
功能圖模型由狀態圖和邏輯功能圖模型構成
7.基於用例和場景的測試
uml通過用例模型來描述系統與外界的互動和功能需求
為了給出uml中用例的細節,還要為每個用例建立乙個規格說明,描述用例的事件流
典型的事件流有基本事件流(簡稱基本流),後補事件流和異常事件流(統稱備選流)
在建立了用例模型之後,需要對每個用例進行場景分析,發現所包含的基本流和備選流
然後根據每個場景和事件流來設計測試用例
8.基於有向圖的測試用例設計
在物件導向方法中
通常使用用例圖來建立系統的功能模型
用類圖來建立資料模型
用狀態圖,順序圖,活**等建立行為模型
基於有向圖設計測試用例主要針對行為模型
該過程中主要包含6個活動:
(1)定義圖
(2)定義鏈結
(3)節點覆蓋
(4)鏈結覆蓋
(5)權重測試
(6)圈測試
9.基於正交實驗設計法的測試
所謂的正交實驗法就是從大量的試驗點中挑選出適量的有代表性的點進行實驗
首先根據被測軟體的需求規格說明,找出影響其功能實現的操作物件和外部因素
把他們當做因子,將因子的取值作為狀態,構造出二元的因素分析表
然後利用正交表進行各因子的狀態組合,建立因果圖
這樣得出的測試用例集中,測試用例的數目將大大減少
10.其他黑盒測試用例設計技術
軟體測試 黑盒測試
1.黑盒測試概述 黑盒測試也稱功能測試或資料驅動測試,它是在已知產品所應具有的功能,通過測試來檢測每個功能是否都能正常使用。在測試時,把程式看作乙個不能開啟的黑盒子,在完全不考慮程式內部結構和內部特性的情況下,測試者在程式介面進行測試,它只檢查程式功能是否按照需求規格說明書的規定正常使用,程式是否能...
軟體測試 黑盒測試
白盒測試計畫書著重測試軟體的源 黑盒技術著重測試軟體功能。因此,設計測試用例時,需要研究需求說明和總體設計說明中的相關程式功能或輸入,輸出之間的關係等資訊,從而與測試後的結果進行分析比較。在實際測試中,常常把黑盒測試常常與白盒測試聯合使用,它是與白盒測試互補的測試方法。它很可能發現白盒測試不易發現的...
黑盒測試技術
測試人員必須在測試的過程中盡量發現測試物件中的缺陷,以盡可能少的成本驗證盡量多的需求。黑盒測試,顧名思義,不需要使用任何關於被測元件和系統的內部結構資訊。黑盒測試技術測試人員不需要了解被測物件的內部結構和具體設計,主要包括 等價類劃分 邊界值分析 決策表測試,狀態轉換測試及用例測試。1 等價類劃分 ...