【学习笔记】白盒及黑盒测试方法简介
目錄
- 測試用例
- 什么是測試用例
- 測試用例的要素
- 白盒測試
- 白盒測試的基本介紹
- 白盒測試用例設(shè)計方法
- 一、 邏輯覆蓋法
- 1.語句覆蓋
- 2. 判定覆蓋
- 3.條件覆蓋
- 4.判定-條件覆蓋
- 5.條件組合覆蓋
- 6.路徑覆蓋
- 二、基本路徑測試法
- 總結(jié)
- 黑盒測試
- 分類
- 功能測試
- 性能測試
- 測試設(shè)計方法
- 1.等價類法
- 2.邊界值法
- 3.判定表法
- 4.因果圖法
- 5.狀態(tài)遷移圖法
- 6.場景法
- 7.正交實驗法
- 8.錯誤推測法
- 9?流程分析法
- 黑盒方法總結(jié)
測試用例
什么是測試用例
軟件測試的核心,為了特定目的而設(shè)計的一組具有測試輸入、執(zhí)行條件、預(yù)期結(jié)果的輸出文檔
測試用例的要素
eg.測試qq郵箱登錄功能
xx----xx—為了特定的目的—x---x—x---測試輸入—執(zhí)行條件----預(yù)期結(jié)果
用例編號、用例標(biāo)題、測試項目、用例級別、預(yù)置條件、測試輸入、執(zhí)行步驟、預(yù)期結(jié)果
*實際工作中根據(jù)項目要求用例設(shè)計要素可以做調(diào)整,上述要素幾乎覆蓋常見用例設(shè)計模板
白盒測試
白盒測試的基本介紹
黑白盒一般配合測試,重點(業(yè)務(wù)復(fù)雜模塊)進(jìn)行白盒測試覆蓋完全
黑盒:根據(jù)業(yè)務(wù)需求設(shè)計
白盒:根據(jù)系統(tǒng)內(nèi)部實現(xiàn)(盡可能覆蓋內(nèi)部邏輯)
優(yōu)點:代碼覆蓋率高
缺點:覆蓋所有代碼路徑難度大(eg.在有多個邏輯判斷時)
業(yè)務(wù)功能可能覆蓋不全
測試開銷大
白盒測試用例設(shè)計方法
各方法需盡可能達(dá)到100%覆蓋
靜態(tài):測試過程中不執(zhí)行代碼
eg.
動態(tài) :測試過程中不執(zhí)行代碼
邏輯覆蓋法(含語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋、路徑覆蓋)、基本路徑測試法,這兩種是腳本寫作的主要方法
覆蓋率:度量測試完整性的一個手段
item:程序的邏輯結(jié)構(gòu)*(語句、判定、條件、判定條件、判定套件、條件組合、路徑)
一、 邏輯覆蓋法
通過對程序邏輯結(jié)構(gòu)的遍歷實現(xiàn)程序的覆蓋
eg.
1.語句覆蓋
設(shè)計測試用例,使得程序中每條語句至少被執(zhí)行一次
在六種邏輯覆蓋標(biāo)準(zhǔn)值中,語句覆蓋標(biāo)準(zhǔn)最弱:
eg.以上面的程序為例,當(dāng)條件代碼錯誤,仍然能順利執(zhí)行所有代碼
2. 判定覆蓋
也叫分支覆蓋,設(shè)計測試用例,是的程序中的各判斷的“真”和“假”至少被執(zhí)行一次。即:程序中的每個分支至少執(zhí)行一次
eg.案例代碼中有判定2個,判定結(jié)果4個
設(shè)計測試用例執(zhí)行了3個分支,分支覆蓋率為3/4=75%
這種方法下同樣會忽略條件中取or的情況
eg.
3.條件覆蓋
設(shè)計測試用例,判定中的每個條件(同一語句中的多個條件)至少有一次取真值,有一次取假值
較比判定覆蓋,增加了對判定中所有條件的測試,但條件覆蓋并不能保證判定覆蓋
eg.
4.判定-條件覆蓋
設(shè)計測試用例,使得測試程序中國的每個判斷本身的判定結(jié)果(真假)至少滿足一次,同時,每個邏輯條件的可能值(真假)至少滿足一次,同時,每個邏輯條件的可能值(真假)也至少能被滿足一次。即同時滿足100%判定覆蓋和100%條件覆蓋的標(biāo)準(zhǔn))
滿足判定-條件覆蓋標(biāo)準(zhǔn),一定能夠滿足條件覆蓋、判定覆蓋和語句覆蓋。
判定條件覆蓋會忽略條件中取或(or)的情況(后面的例子就不滿足條件)
eg.
5.條件組合覆蓋
條件組合覆蓋:設(shè)計測試用例,使得被測試程序中的每個判定中條件結(jié)果的所有可能組合至少執(zhí)行一次。
條件組合覆蓋可以滿足判定覆蓋、條件覆蓋、判定-條件覆蓋
該類型不能保證所有路徑被執(zhí)行
eg.
6.路徑覆蓋
設(shè)計測試用例,覆蓋程序中所有可能的路徑
不要與語句覆蓋混淆
優(yōu)點:路徑覆蓋可以對程序進(jìn)行徹底的測試,比以上5種的覆蓋面更廣
缺點:不滿足條件覆蓋、也不能夠滿足判定-條件覆蓋
二、基本路徑測試法
在程序控制流圖的基礎(chǔ)上,通過分析程序的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例
基本路徑測試法步驟:
eg.
(1)根據(jù)代碼畫出程序控制流圖
(2)計算程序的環(huán)路復(fù)雜度
判斷節(jié)點和語句節(jié)點用圓圈代表,箭頭不變
環(huán)路復(fù)雜度可以用于判斷路徑條數(shù)是否完全
(3)導(dǎo)出可執(zhí)行路徑
保證每個節(jié)點都經(jīng)過
(4)設(shè)計測試用例
總結(jié)
白盒應(yīng)用場景 :主要用于單元測試階段
一般采用先靜態(tài)、后動態(tài)的方法,如此修改成本低
設(shè)計用例一般使用基本路徑測試;重點模塊使用多種覆蓋率標(biāo)準(zhǔn)
黑盒測試
分類
功能測試
邏輯功能測試
界面測試
易用性測試
安裝測試
兼容性測試
性能測試
時間性能(事務(wù)響應(yīng)時間等)
空間性能(系統(tǒng)資源消耗)
一般性測試
穩(wěn)定性測試
負(fù)載測試:通過負(fù)載測試來確定在各種工作負(fù)載下,系統(tǒng)各項性能指標(biāo)的變化情況。
壓力測試:通過確定一個系統(tǒng)的瓶頸或者剛好不能接受的性能點,以獲得系統(tǒng)能夠提供的最大服務(wù)級別
測試設(shè)計方法
1.等價類法
等價類定義:所有測試的數(shù)據(jù)中,具有某種共同特征的數(shù)據(jù)子集
有效等價類 :滿足所有規(guī)則
無效等價類:只要有一條規(guī)則不滿足即可
思考步驟可以分為下面幾個方面:
1.確定有效等價類和無效等價類
2.有效等價類劃分(題目條件,還要注意邊界值(極值),中間再隨意找個值)
3.無效等價類劃分(與有效等價類相反,及其它特殊情況)
*注意:如以上的場景中,輸入框一、二,同一用例選定正確一個錯誤輸入,根據(jù)需求來判斷對錯
eg. [0,100]
x<0和x>100屬于無效等價類
| 數(shù)據(jù)個數(shù) (eg.手機號由11位組成) | 1個有效等價類:正確數(shù)據(jù)個數(shù)(11位) | 2個無效等價類:大于和小于數(shù)據(jù)個數(shù) (num<11,num>11) |
| 集合 (eg.電話號碼都是數(shù)字組成) | 1個有效等價類:正確數(shù)據(jù)集合(數(shù)字) | 1個或多個無效等價類 (非數(shù)字:包括字母、漢字、特殊字符等) |
| 符合某些規(guī)則的輸入 (eg.手機號首位為1) | 多個有效等價類:符合某個規(guī)則的輸入數(shù)據(jù)為1個等價類(首位為1) | 1個或多個無效等價類(包括字母、漢字、特殊字符等) |
| 取值范圍 (eg.輸入0到100之間的整數(shù)) | 1個有效等價類:正確取值范圍(0<num<100) | 2個無效等價類:大于和小于取值范圍 (num<=0,num>=100) |
| 布爾值 選擇是否為男性 | 1個有效等價類:True(是) | 1個無效等價類:False(否) |
等價類劃分是一種重要的額、常用的黑盒測試方法,不需要考慮程序內(nèi)部結(jié)構(gòu),只需要考慮程序的輸入規(guī)格即可,它將不能窮舉的測試過程進(jìn)行合理分類,從而保證設(shè)計出的測試用例具有完整性和代表性。
**eg.**1~100加法器分析(不能有中文、無效符號、小數(shù)等)
**eg.**對QQ賬號進(jìn)行測試,賬號要求6-10位正整數(shù)
根據(jù)以上案例,當(dāng)測試文本框類的程序可以考慮如下的情況:
1.文本框要求輸入的長度
2.輸入的類型
3.組成規(guī)則
4.是否為空
5.是否重復(fù)-區(qū)分大小寫
6.是否去除空格
2.邊界值法
大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部
邊界值:選取正好等于、剛好大于/小于邊界值作為測試數(shù)據(jù)
邊界值法一般和等價類法會同時使用
eg.輸入的參數(shù)值必須大于等于0且小于等于100的整數(shù)
eg.固定電話號碼測試
地區(qū)碼(3-4位)+電話號碼(8位)
邊界值的方法小結(jié)(???怪怪的)
如果輸入條件規(guī)定了值的范圍,則應(yīng)該去到剛到這個范圍的邊界值,以及剛剛超過這個范圍邊界的值作為輸入數(shù)據(jù)(上點,離點)
-兩位證書加法器數(shù)的范圍為-99~99,則應(yīng)測試-99,-100和99,100
輸入條件規(guī)定了值的個數(shù)
- 姓名要求1-20個字符,需要測試0,1,2,個字符和19,20,21個字符
- 某商品信息查詢系統(tǒng),每頁最多顯示10條商品信息,我們就應(yīng)該準(zhǔn)備商品信息,使能夠查詢出10條、11條、1條、0條商品記錄
- 邊界值和等價類的區(qū)別:邊界值分析不是從某等價類中隨便挑一個作為代表,而是這個等價類的每個邊界都要座位測試條件
有效用例:一個用例覆蓋盡可能多的有效等價類
無效用例:無效等價類覆蓋一個即可
總結(jié):邊界值和等價類相輔相成
常見邊界值:
但是,該方法具有局限性:使用等價類方法時,對于輸入域和輸入域存在關(guān)聯(lián)時無法覆蓋
eg.
3.判定表法
根據(jù)上面的例子,可以得到
條件狀:輸入(所有條件) 條件項:成功失敗條件全組合(針對條件樁的取值)
動作樁:結(jié)果 (所有結(jié)果) 動作項:結(jié)果與條件樁對應(yīng)值(針對動作樁的取值)
步驟:
(1)分析需求,確定條件樁和動作樁
(2)全組合條件得到條件項
(3)根據(jù)條件項依次填寫動作項,得到初始判定表:寫0,1
(4)簡化判定表(合并相似規(guī)則(相同動作 ))
(5)輸出用例(一個規(guī)則對應(yīng)一條測試用例)
*合并使用“-”代表無關(guān)條件,選什么都不影響結(jié)果(但是為了防止少測,一般不用)
eg.支付寶個人賬戶注冊——驗證用戶:
第一項要求輸入手機號或者電子郵箱作為賬戶名,
第二項要求正確輸入驗證碼,兩者都驗證成功后填寫賬戶信息;
但如果第一項校驗不正確,則報錯(輸入手機號或電子郵箱格式有誤);
如果第二項驗證不成功,則報錯L(驗證碼輸入錯誤)、
采用該方法列表如下(可以先寫好再繼續(xù)分析精簡可能性):
最終輸出的用例只有6種。
判定表發(fā)設(shè)計用例——規(guī)則(組合)數(shù):2^n(n為條件數(shù))
條件數(shù):4→規(guī)則:16
條件數(shù):5→規(guī)則:32
條件數(shù):6→規(guī)則:64
條件數(shù):7→規(guī)則:128
…
eg.評選三好學(xué)生,前提是遵紀(jì)守法
4.因果圖法
因果圖法是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計測試用例的方法,它適用于檢查程序輸入條件的各種組合情況。因果圖測試用例常采用豎行
特點:
1.考慮所有輸入/輸出條件的相互制約關(guān)系以及組合關(guān)系
2.考慮輸出條件之間的依賴關(guān)系
3.再根據(jù)分析的關(guān)系來轉(zhuǎn)化為判定表的規(guī)則
因果圖法產(chǎn)生的背景:
- 等價類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關(guān)系。這樣雖然各種輸入條件可能出錯的情況已經(jīng)測試到,但多個輸入條件組合起來可能出錯的情況卻被忽視了。
- 如果在測試時必須考慮輸入條件的各種組合,則可能的組合數(shù)目是將天文數(shù)字,因此必須考慮采用一種適合描述多種條件的組合、相應(yīng)產(chǎn)生的多個動作的形式來進(jìn)行測試用例的設(shè)計,這就需要利用因果圖(邏輯模型)
1.恒等-有因就有果,沒有因就沒有果
2.非-條件有一個是真,結(jié)果就是真,條件都是假,結(jié)果才是假
4.且(與)-條件都為真,結(jié)果才是真,一個條件為假,結(jié)果就是假
輸入條件與結(jié)果之間的關(guān)系:
互斥、包含、唯一??
因果圖法基本步驟:
利用因果圖導(dǎo)出測試用例需要經(jīng)過一下幾步驟:
- ①找出所有可能的原因,愿意即輸入條件或輸入條件的等價類
- ②找出所有的結(jié)果,結(jié)果即輸出條件
- ③明確所有輸入條件中回見的制約關(guān)系以及組合關(guān)系
·哪些條件不能組合到一起,哪些條件可以組合到一起 - ④明確是所有輸出條件之間的制約關(guān)系以及組合關(guān)系
·哪些輸出結(jié)果不能同時輸出,哪些輸出結(jié)果可以同時輸出 - ⑤找出什么樣的輸入條件組合會產(chǎn)生哪種輸出結(jié)果
- ⑥把因果圖轉(zhuǎn)換成判定表/決策表
- ⑦為判定表/決策表中的每一列表示的情況設(shè)計測試用例
eg.可以根據(jù)因果圖(通常不用畫出來,只需要找到關(guān)系)列測試用例表格
可以寫成如下的測試用例:
(和判定表法非常類似了,但需要的條件寫1,不用的條件不寫)
eg.上例中采用因果圖法進(jìn)行
(1)分析需求,獲取條件和動作
(2)分析條件與條件、條件與動作之間的關(guān)系
(3)通過關(guān)系畫出因果圖
(4)將因果圖轉(zhuǎn)換為判定表
判定表和因果圖的區(qū)別
| 分析條件樁與動作樁后,全組合獲取條件項 | 分析因和果,先考慮條件與條件之間的關(guān)系, 條件與結(jié)果之間的關(guān)系,再轉(zhuǎn)換為判定表 |
1.找到左右輸入條件編號
2.找到所有輸出條件編號
3.找出所有輸入、輸出的制約關(guān)系
5.狀態(tài)遷移圖法
以上的方法均針對單個功能點,還需要測試系統(tǒng)整體業(yè)務(wù)流程
首先需要找出所有的狀態(tài),分析各個狀態(tài)之間的轉(zhuǎn)換條件和轉(zhuǎn)換路徑;隨后從起狀態(tài)遷移路徑覆蓋的角度來設(shè)計測試用例。該方法多用于協(xié)議測試(eg.TCP協(xié)議、狀態(tài)機)
狀態(tài)遷移圖測試步驟:
(1)分析需求,找到狀態(tài)節(jié)點
(2)畫出狀態(tài)遷移圖
(3)畫出狀態(tài)遷移樹
(4)扎到狀態(tài)錢一書路徑,轉(zhuǎn)化為用例
eg.飛機售票系統(tǒng)
要求
預(yù)定:只有輸入無輸出——樹根
已使用/已取消:只有輸出無輸入——樹葉
從樹根到樹葉的整條路徑為一條測試路徑:
抽取4條路徑:
路徑1:預(yù)定-已取消
路徑2:預(yù)定-已支付-已取消
路徑3:預(yù)定-已支付-已出票-已取消
路徑4:預(yù)定-已支付-已出票-已使用
6.場景法
現(xiàn)有的軟件幾乎都是用事件觸發(fā)來控制流程的,事件觸發(fā)時的情景便成了場景,而同一事件的不同的觸發(fā)順序和處理結(jié)果就形成事件流。價格這種在軟件設(shè)計方面的私信啊引入到軟件測試中,生動的描繪出時間出發(fā)時的情景,有利于測試設(shè)計者設(shè)計測試用例,同時測試用例也更容易得到理解和執(zhí)行。
產(chǎn)品經(jīng)理會給業(yè)務(wù)需求,直接可以寫測試用例
- 當(dāng)拿到一個測試任務(wù)時候,我們并不是先關(guān)注某個空間的邊界值、等價類是否滿足要求,而是先要關(guān)注它的主要功能和業(yè)務(wù)流程是否正確實現(xiàn),這就需要使用場景法來完成測試。
- 當(dāng)業(yè)務(wù)流程測試(場景法,直接試程序)沒有問題,也就是該軟件的主要功能沒有問題時,我們再重點從邊界值、等價類的方面對空間進(jìn)行更細(xì)致、完整測試
?從流程的開始到結(jié)束稱為一個場景;
冒煙測試主要采用場景法進(jìn)行測試。
需要找全場景:所有路徑都覆蓋
用例場景重要概念:
· 按照正確的業(yè)務(wù)流程來實現(xiàn)的一條操作路徑(模擬正確的操作流程)
·導(dǎo)致程序出現(xiàn)錯誤的操作流程(模擬錯誤的操作流程)
用例場景是用來描述流經(jīng)用例路徑的過程,這個過程從開始到結(jié)束遍歷用例中所有基本流和備選流
在使用場景法設(shè)計測試用例時,需要覆蓋系統(tǒng)用例中的主要成功場景和擴展場景,并且需要適當(dāng)補充各種正反面的測試用例和考慮出異常場景的情形。
*場景法步驟:
分析需求,基本流和備選流
↓
根據(jù)基本流和備選流生成場景
↓
根據(jù)場景生成用例
前5 條覆蓋了所有路徑(后面幾條???)
場景1:基本流
場景2:基本流-備選流程1-基本流
場景3:基本流-備選流程2-基本流
場景4:基本流-異常流程1
場景5:基本流-備選流程2-異常流程2
場景6:基本流-備選流程1-備選流程2-異常流程2
場景7:基本流-備選流程1-備選流程2-基本流
場景8:基本流-備選流程1-異常流程1
eg.仍然使用以上支付寶注冊的案例
測試用例:
用例1:第一項輸入手機號,第二項驗證碼正確,進(jìn)入填寫賬戶信息頁面
用例2:第一項輸入電子郵箱,第二項驗證碼正確,進(jìn)入填寫賬戶信息頁面
用例3:第一項輸入不是手機號或者電子郵箱,報錯L(輸入手機號或電子郵箱格式錯誤)
用例4:第一項輸入手機號或者電子郵箱,第二項驗證碼錯誤,報錯M(驗證碼輸入錯誤)
7.正交實驗法
正交排列法能夠使用最小的測試過成績和獲得最大的測試覆蓋率,當(dāng)可能的輸入數(shù)據(jù)的組合數(shù)量很大時,由于不可能為每個輸入組合都創(chuàng)建測試用例,可以采用這種方法。
正交實驗設(shè)計方法:是由數(shù)理統(tǒng)計學(xué)科中正交實驗方法進(jìn)化出的一種測試多條件多輸入的用例設(shè)計方法,從大量的(實驗)數(shù)據(jù)(測試?yán)?#xff09;中挑選適量的,有代表性的點(這些點具有“均勻分散,齊整可比”的特點),從而合理地安排實驗(測試)的一種科學(xué)實驗設(shè)計方法。具有高效、快速、經(jīng)濟、的特點。
正交表的概念:正交表是一種特制的表,一般指的正交表即為:Ln(M^k)
- n為表的行數(shù),也就是需要測試組合的次數(shù)
- k是表的列數(shù),表示控件的個數(shù)(因素的個數(shù),或因子數(shù))
- m是每個控件包含的取值個數(shù)(各因素的水平數(shù),即各因素的狀態(tài)數(shù))
- eg:L9(3^4)
·有4個控件
·每個控件有3個取值
·含9位需要測試的組合個數(shù)(由正交表由因子和水平會給出試驗用例數(shù)目)
·稱為 4因素3水平
條件:因子
取值:水平
正交排列法的使用步驟:
- 1.根據(jù)所測程序中空間的個數(shù)(因素以及每個控件的屈指個數(shù)(水平),選取一個合適的正交排列表
- 2.把空間極其取值列舉出來,并對其進(jìn)行編號
- 3.把空間極其取值映射到正交排列表中
·把正交排列表中的ABCD(因子)分別替換成4個控件
·把每列中的1,2,3(狀態(tài))分別換成這個空間的3個取值(水平),排列順序要按照表中給出的順序 - 根據(jù)映射好的正交排列表編寫測試用例
**如何查找正交表:**根據(jù)因子和水平數(shù)查找
- 網(wǎng)站http://support.sas.com/techsup/technote/ts723_Designs.txt
- 數(shù)理統(tǒng)計、試驗設(shè)計等方面的書及附錄中
正交表使用方法:
eg.若進(jìn)行網(wǎng)站兼容性測試、要求滿足以下條件:
(1)Web瀏覽器:Nescape 6.2、IE 6.0、Opera 4.0
(2)插件:無、RealPlayer、MediaPlayer
(3)應(yīng)用服務(wù)器:IIS、Apache、Netscape Enterprise
(4)操作系統(tǒng):Windows 2000、Windows NT、Linux
解:需要查4因子3水平,查詢正交表:
Column-Number:4因子
Experiment-Number:實驗次數(shù)
以(3,1)為例,1代表,第三個用例中因子1選用水平1
進(jìn)行詳細(xì)的替換:
在此之前可以先列一張簡單表格
eg2. 某銀行交易系統(tǒng)的卡號查詢功能界面如圖所示
5因子2水平(輸入或不輸入),但是并不能找到2^5的表。
此時應(yīng)該選擇的正交表,滿足以下條件:
- 表中的因素數(shù)>=5
- 表中至少有5個因素的水平數(shù)>=2
- 行數(shù)取最少的一個
所以,只有7因子2水平表最為接近: L8(2^7)
只對前5種因子進(jìn)行替換:
并且,它也存在局限性:
- 目前常見的正交排列表只有前面附錄文件中的幾種
- 及時是已有額正交排列表,基本要求每個控件中取值的個數(shù)要相等,這在實際軟件中很少有
沒有現(xiàn)成的正交排列表?
- 通過正交排列發(fā)的學(xué)習(xí),我們更多的應(yīng)該學(xué)習(xí)到一種測試思想,月就是在所有組合集合中旋球測試數(shù)據(jù)時,應(yīng)該均勻度的選取其中的組合作為測試用例,而不要只在某個局部選取數(shù)據(jù)。
**混合正交表:**水平數(shù)(變量)的水平數(shù)(變量的取值)不相同
在實際情況中經(jīng)常遇上
eg.
利用正交表生成工具allpairs
· 很多情況下無法找到合適的正交表,就要是引用正交報表生成工具
· 使用步驟:
1. 制作取值表(只列出數(shù)據(jù)即可,不用編號)
.
2.復(fù)制取值表的數(shù)據(jù),放到文本文檔匯總保存(注意不要更改任何格式,例如文件叫Test2.txt)
3. 把文本文檔放在allpairs文件夾中
4. win+r后輸入cmd進(jìn)入控制臺
5. 進(jìn)入allpair文件夾
6. 在控制臺中輸入allpairs.exe.Test2.txt>chenggong.txt (chengong是自定義的名,用來存放生成的組合用例,表可以自動生成,不必提前建好)
Test CASES即為正交表
不過,采用該方法進(jìn)行測試的最少組合數(shù)量,但是,在測試中有余下的多種組合并沒有測試(以四因子三水平法為例,本來需要測試3^^4=81種,所以采用正交圖法還有72種未測),如果時間允許,應(yīng)該再對一些用例進(jìn)行補充。因為遺漏的組合越多,存在缺陷的可能性就越大。(關(guān)系到時間問題,如內(nèi)測、公測等)
8.錯誤推測法
錯誤推測法是指利用直覺和經(jīng)驗猜測出出錯的可能類型,有針對性列舉出程序中所有可能的錯誤和容易發(fā)生歐五額情況,它是測試經(jīng)驗豐富的測試人員喜歡使用的一種測試用例設(shè)計方法
基本思想:
列舉出可能犯錯或者易發(fā)生的清單,然后根據(jù)清單編寫測試用例,這種方法很大程度上是憑經(jīng)驗進(jìn)行的,即憑人們額對過去所作測試結(jié)果的分析,對所揭示缺點的規(guī)律性做直覺的推測來發(fā)現(xiàn)缺陷。
使用場景:一般和以上方法配合使用
采用錯誤推測法,最重要的是要思考和分析測試對象的各個方面,多參考以前發(fā)現(xiàn)的Bug相關(guān)數(shù)據(jù)、總結(jié)經(jīng)驗,個人多考慮異常情況、特殊的輸入,以一個工具這的調(diào)度對待程序,才能夠設(shè)計出比較完善的測試用例
9?流程分析法
已有流程圖,流程已知(也常用在冒煙測試)
流程分析法主要是針對測試場景類型屬于流程測試場景的測試項下的測試子項進(jìn)行設(shè)計,是從白盒設(shè)計方法中的路徑覆蓋分析法借鑒過來的一種方法。
- 在白盒測試中,路徑就是指函數(shù)代碼的某個分值組合,路徑覆蓋法需要狗仔足夠的用例覆蓋函數(shù)的所有代碼路徑
- 在黑盒測試中,若將軟件系統(tǒng)的某個流程看成路徑的話,則可以針對該路徑使用路徑分析的方法設(shè)計測試用例。
優(yōu)點:
- 降低了測試用例設(shè)計難度,只要搞清楚各種流程,就可以設(shè)計出高質(zhì)量的測試用例來,而不能需要太多測試方面的經(jīng)驗
- 在測試時間緊迫的情況下,可以由放矢的選擇測試用例,而不用完全根據(jù)經(jīng)驗來取舍。
步驟:
流程分析法總結(jié):
- 流程分析法適用于有先后順序的測試。常用于業(yè)務(wù)流程測試、安裝流程測試
- 流程分析法重點在于測試流程。因此,一般每個流程用一個測試用例驗證。
它只是在測試整理流程是否正確,細(xì)節(jié)還需要使用等街壘、邊界值等方法進(jìn)行具體分析
黑盒方法總結(jié)
測試防范的選擇:
通常再去頂測試方法時,應(yīng)遵循一下原則:
- 根據(jù)程序的和總要型和一旦發(fā)生故障將造成的損失來確定測試等級和測試重點。
- 認(rèn)真選擇測試策略,一邊能盡可能少的使用測試用例,發(fā)現(xiàn)盡可能多的程序錯誤。因為一次完整的軟件測試過后,如果程序占一流的錯誤過多并且嚴(yán)重,則表明更改此測試時不足的,而測試不足則意味著讓用戶承擔(dān)隱藏錯誤帶來的風(fēng)險,但測試過度也會資源浪費,所以需要找到一個平衡點
| 等價類法 | 功能有輸入,輸入無組合 |
| 邊界值法 | 功能有輸入,輸入范圍有邊界 |
| 判定表因果圖法 | 有多個輸入域輸出,輸入域輸入之間、輸入域輸出之間有依賴關(guān)系 |
| 正交實驗法 | 參數(shù)配置類功能,參數(shù)相互組合 |
| 場景法 狀態(tài)遷移圖 | 多個功能之間的組合邏輯測試 |
| 最后采用錯誤推斷法再追加測試用例 |
選定測試方法時,需要參考幾條參考原則(1/2):
- (1)拿到一個測試任務(wù)時,先關(guān)注它的主要功能和業(yè)務(wù)流程,業(yè)務(wù)邏輯是否正確實現(xiàn),考慮使用場景法
- (2)需要輸入數(shù)據(jù)的地方,考慮采用等價類劃分法,包括輸入條件和輸出條件的等價劃分,將無限測試變?yōu)橛邢逌y試
- (3)再任何情況下都必須采用邊界值分析法。這種方法設(shè)計出的測試用例發(fā)現(xiàn)程序錯誤的能力最強。
- (4)如果程序的功能說明中含有輸入條件的組合請款,則一開始就應(yīng)該考慮選用因果圖和判定表法。
- (5)對于參數(shù)配置類的軟件,需要考慮參數(shù)之間的組合情況,考慮使用正交排列法選擇較少的組合方式(最少的測試用例獲得最大的測試覆蓋率)
- (6)對照程序邏輯,檢查已設(shè)計出的測試用例的邏輯覆蓋程度。如果沒有達(dá)到要求的覆蓋標(biāo)準(zhǔn),應(yīng)當(dāng)再補充更多的測試用例
- (7)采用錯誤推斷法再追加測試用例——依靠測試工程師的經(jīng)驗
測試用例的力度:
測試用例的本質(zhì):
*測試用例設(shè)計并不是一個階段。測試用例的涉及也需要迭代,再軟件開發(fā)的不同階段都要回來重新評審和完善測試時間。
測試用例評審:
1.同行評審
- 測試用例的檢查方式有很多,同行評審是其中最敏捷的一種
- 個體和交互比過程和共聚更有價值,強調(diào)了測試用例設(shè)計者間的探討、寫作
2.用戶評審:
- 顧客(程序員)的寫作比合同談判更有價值
總結(jié)
以上是生活随笔為你收集整理的【学习笔记】白盒及黑盒测试方法简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机房内综合布线电缆的紧密捆绑有哪些问题?
- 下一篇: 方法有多少个参数才算多?