软件测试技术---黑盒测试
黑盒測試就是把測試對象看做一個不透明的黑盒子,不必了解程序的內部邏輯和結構,只需按照需求規格說明書檢查程序的功能是否符合
黑盒測試主要是為了發現以下幾點錯誤:
(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.其他黑盒測試用例設計技術
轉載于:https://www.cnblogs.com/jchubby/p/4429733.html
總結
以上是生活随笔為你收集整理的软件测试技术---黑盒测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么我们使用Nginx而不是Apach
- 下一篇: 接口到底是什么(一语道破)