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