-
描述:測試用例(TestCase):是一份關(guān)于【具體測試步驟】的文檔,是為了達(dá)到最佳的測試效果或高效揭露軟件中潛藏的bug,精心設(shè)計少量且具有代表性的測試場景和測試數(shù)據(jù)。
-
測試用例=測試場景=測試步驟+測試數(shù)據(jù)+預(yù)期結(jié)果
-
分析:測試用例就是設(shè)計一種情況,軟件在該情況下是可以正常運行,且能夠達(dá)到預(yù)期結(jié)果的。如果軟件在該情況下不能正常運行,或未達(dá)到預(yù)期結(jié)果,就證明發(fā)現(xiàn)了bug,需要提交給開發(fā)進(jìn)行確認(rèn)和修復(fù)。修復(fù)完成后,再用同一條用例進(jìn)行驗證,確保已修復(fù)完成。
-
測試用例的編寫
測試用例編號 測試項 依賴用例 測試步驟 測試數(shù)據(jù) 預(yù)期結(jié)果 測試結(jié)果 測試人 備注 -
測試用例編號:給設(shè)計好的每一個測試用例生成唯一的序列號 0001-9999
參考寫法:TestCase_項目名稱 _模塊名稱 _子模塊名稱 _功能名稱 _測試類型 _0001
注意:名稱可以簡寫,比如漢語拼音的首字母;當(dāng)換了新的功能或新的模塊,編號要重新生成;
測試類型:功能測試 Function,性能測試 Performance,界面測試 UI
-
測試項/測試用例標(biāo)題
思路:關(guān)聯(lián)本條測試用例設(shè)計的目的,一句話做概述,描述這一條用例是做什么的
寫法:具體的角度+驗證功能
? 例:測試需求:密碼:6-18位——>設(shè)計用例:驗證6位長度密碼的注冊操作
? 密碼:小于6位——>設(shè)計用例:驗證5位長度密碼的注冊操作
? 密碼:大小寫字母,數(shù)字—–>設(shè)計用例:驗證純大寫字母注冊操作 驗證純小寫字母注冊操作 驗證純數(shù)字注冊操作 驗證字母+數(shù)字組合注冊操作….
參考話術(shù):驗證XXXX的操作 XXXX情況下的驗證 XXXX操作的驗證
-
依賴用例:可選可寫的
概述:指的是當(dāng)前用例的設(shè)計,需要用到其它用例的支持,就把關(guān)聯(lián)的用例編號寫到該位置
例:針對信貸系統(tǒng)后臺:用戶管理模塊設(shè)計用例——>依賴于前臺成功注冊用戶用例
-
測試步驟:最核心的部分
概述:根據(jù)測試項,整理出詳細(xì)的操作步驟(測試過程),簡單清晰明了
? 例:驗證直角三角形判定
? 測試步驟:
? ①輸入第一條邊:3
? ②輸入第二條邊:4
? ③輸入第三條邊:5
? ④點擊提交按鈕
備注:好的測試步驟,任何一個人都是可以執(zhí)行的,也不會有任何的歧義
-
測試數(shù)據(jù)/輸入數(shù)據(jù)
概述:指的是測試步驟中用到的數(shù)據(jù)
-
預(yù)期結(jié)果
概述:指的是按照測試步驟和測試數(shù)據(jù)操作完成后,應(yīng)該會出現(xiàn)的結(jié)果
例:預(yù)期結(jié)果:提示“直角三角形”
-
測試結(jié)果
概述:寫的是實際結(jié)果和預(yù)期結(jié)果對比后產(chǎn)生的結(jié)果值:
通過(成功):實際結(jié)果和預(yù)期結(jié)果一致
不通過(失敗):實際結(jié)果和預(yù)期結(jié)果不一致
阻塞:因為一些其它的原因(不是本公司所能解決的),導(dǎo)致當(dāng)前用例無法執(zhí)行
-
測試人:寫的是執(zhí)行測試用例人員名字
注意:測試結(jié)果和測試人一定是執(zhí)行測試后,才來進(jìn)行填寫的內(nèi)容!?。?/mark>
-
備注:可選可寫的
概述:做一些額外的補充說明,比如執(zhí)行用例時,所需要的硬件,軟件,網(wǎng)絡(luò)環(huán)境… 谷歌瀏覽器10.0
-
-
測試用例的作用
① 有效性:執(zhí)行測試重要參考
②可復(fù)用性:良好的測試用例可以重復(fù)使用
①易組織性:再小的項目也會有大量的用例,用例也是隨著版本的更新不斷完善
④可評估性:用例通過率是檢查代碼質(zhì)量的參考標(biāo)準(zhǔn)
⑤可管理性:測試用例的設(shè)計也是檢查測試工作效率的標(biāo)準(zhǔn)
⑥測試用例的設(shè)計對于測試需求的覆蓋率:一定是100%
6、黑盒測試用例設(shè)計方法
-
提供方法的選擇:
- 測試數(shù)據(jù):等價類劃分法,邊界值分析法
- 測試步驟:因果圖法,判定表法,正交實驗法,場景法,功能圖法
-
測試數(shù)據(jù)的選擇:
-
等價類劃分法:劃分?jǐn)?shù)據(jù)區(qū)間
思想:依據(jù)【需求】,將程序的輸入域,劃分成若干個部分,從每個部分中再選取【少量且具有代表性】的數(shù)據(jù),作為測試用例(測試數(shù)據(jù)),選取的數(shù)據(jù)就代表了該整體。
-
等價類劃分法分類:
有效等價類:依據(jù)需求,劃分出來【有意義,合理的數(shù)據(jù)】構(gòu)成的集合區(qū)間
? 例:163郵箱:手機號快速注冊:密碼:8-16位長度構(gòu)成的密碼數(shù)據(jù)都是有效的—–>有效等價類 數(shù)據(jù)類型:大小寫字母,數(shù)字構(gòu)成的數(shù)據(jù)—–>有效
無效等價類:依據(jù)需求,劃分出來【無意義,不合理的數(shù)據(jù)】構(gòu)成的集合區(qū)間
? 例:163郵箱:手機號快速注冊:密碼:長度:兩個無效等價類:小于8位的數(shù)據(jù) 大于16位的數(shù)據(jù) 數(shù)據(jù)類型:特殊符號構(gòu)成的數(shù)據(jù)—–>無效
-
等價類劃分原則(了解)
①按照【區(qū)間】來劃分:如果輸入項中規(guī)定了【取值范圍】或【值的個數(shù)】,劃分出:一個有效等價類和兩個無效等價類
? 例:成績輸入框:規(guī)則:[0,100]分?jǐn)?shù)—–>有效:0<=成績<=100 無效:成績<0 成績>100 身份證號碼輸入框:規(guī)則:18位——>有效:18位 無效:大于18位 小于18位
②按照【數(shù)值】來劃分:如果輸入項中規(guī)定了n個值,每個值都必須測試,劃分出:n個有效,一個無效
? 例:某一所大學(xué)的福利:如果學(xué)校中教師的身份:教授,副教授,院長,系主任,都可以得到一套房子
? 四個有效:教授身份的人構(gòu)成的集合區(qū)間,副教授身份的人構(gòu)成的集合區(qū)間,院長身份的人構(gòu)成的集合區(qū)間,系主任身份的人構(gòu)成的集合區(qū)間
? 一個無效:除了上述四個身份以外的人構(gòu)成的集合區(qū)間
③按照【數(shù)據(jù)集合】來劃分:如果輸入項中規(guī)定了輸入值的集合,劃分出:一個有效,一個無效
? 例:名字需求:首個字符必須是字母
? 一個有效:以字母開頭的數(shù)據(jù)構(gòu)成的集合區(qū)間
? 一個無效:不以字母開頭的數(shù)據(jù)構(gòu)成的集合區(qū)間
④按照【規(guī)則】來劃分:如果輸入項中規(guī)定了必須要遵守規(guī)則的情況下,劃分出:一個有效(滿足規(guī)則的所有數(shù)據(jù)),若干個無效(從不同角度違反規(guī)則)
? 例:需求:校內(nèi)電話撥打外線號碼以9開頭
? 有效:9開頭+外線號碼
? 無效:非9+外線號碼 9+非外線號碼 非9+非外線號碼
⑤其它情況:
? (1)如果輸入項是一個布爾量,劃分出:一個有效,一個無效
? (2)在已知劃分好的等價類基礎(chǔ)上,有些情況還可以繼續(xù)進(jìn)一步劃分出更小的等價類
? 例:名字需求:一個無效:不以字母開頭—–>以數(shù)字開頭的所有數(shù)據(jù) 無效,以特殊符號開頭的所有數(shù)據(jù) 無效……
-
等價類劃分法設(shè)計測試用例(分析思路)
①建立等價類表:梳理思路,劃分出每一個輸入項的有效等價類,無效等價類
輸入條件 有效等價類 無效等價類 ②給劃分出來的每一個等價類生成一個唯一的編號
③==設(shè)計一條用例,盡可能多的覆蓋有效等價類(能用一條用例完成的,就不考慮第二條),直到把所有的有效等價類全部覆蓋完成。==
④==設(shè)計一條用例,只覆蓋一個無效等價類==
注意:當(dāng)以某一個輸入項進(jìn)行違反規(guī)則設(shè)計測試用例時,其他的輸入項均看成是滿足/符合規(guī)則
-
-
測試需求:“測什么”
-
測試用例:“怎么測”
-
黑盒測試:
測試數(shù)據(jù)選擇:等價類邊界值法
測試步驟設(shè)計:因果圖判定表法 場景法 正交實驗法 功能圖法
等價類劃分法:思想:輸入項—–>劃分集合區(qū)間:有效等價類:有意義,合理 無效等價類:無意義,不合理
-
邊界值分析法
-
前提:成績判定 :[90,100] 優(yōu)秀,[70,90) 良好,[60,70) 及格,[0,60) 不及格
if(grade>=90 && grade<=100){
? alert(“優(yōu)秀”)
}
-
概述:大量的測試工作經(jīng)驗告訴我們,大部分的錯誤往往發(fā)生在邊界(并不是程序的內(nèi)部),針對邊界設(shè)計用例,能夠發(fā)現(xiàn)更多的缺陷。邊界值法是對等價類法的補充:通過等價類劃分區(qū)間,結(jié)合邊界值選取測試數(shù)據(jù)(邊界數(shù)據(jù))
-
邊界:指的是輸入或輸出范圍中,恰好處于邊界,剛剛超越邊界,邊界以下的
-
邊界值法設(shè)計用例(分析思路):
①確定好邊界的情況:輸入項或輸出的邊界
②選取邊界數(shù)據(jù)作為測試數(shù)據(jù):剛剛等于,剛剛大于,剛剛小于的邊界值
-
邊界值分析法原則(了解)
①如果輸入項規(guī)定了【取值范圍】:則取剛達(dá)到的,剛超越(大于+小于)
? 例:成績輸入項:需求:0<=成績<=100 測試數(shù)據(jù):0 100 101 -1
? 價格輸入項:[1.0,10.0] 測試數(shù)據(jù):1.0 10.0 10.1 0.9
? 價格輸入項:[1.00,10.00] 測試數(shù)據(jù):1.00 10.00 0.99 10.01
②如果輸入項規(guī)定了【值的個數(shù)】,則取最大個數(shù)值,最小個數(shù)值,比最大值大一,比最小值小一
? 例:一個文件(數(shù)據(jù)表)能夠接收1-255條記錄:測試數(shù)據(jù):1 255 256 0
③1和2中的原則,也可以用于輸出結(jié)果的判定
? 例:軟件查詢功能:至少每次會顯示1條查詢結(jié)果,最多不超過20條查詢結(jié)果,測試數(shù)據(jù):1 20 0 21
④如果是輸入或輸出是一個有序序列,測試數(shù)據(jù):序列中的第一個元素,序列中最后一個元素
? 例:三部電梯:一部:1-4樓,二部:1-9樓,三部:1,4,6樓,怎么測?
⑤分析需求規(guī)格說明書,找出其它可能存在的邊界條件:次邊界值:隱藏的邊界值
? 例:月份輸入框:1-12 MySQL:數(shù)據(jù)類型:字段名 tinyint -128到127
小總結(jié):等價類劃分法用于測試數(shù)據(jù)的區(qū)間劃分,劃分完成后就可以借助于邊界值分析法,選取具體的測試數(shù)據(jù):測試數(shù)據(jù)=等價類+邊界值
-
-
測試用例評審
- 目的:可以讓用例的結(jié)構(gòu)更加清楚,覆蓋用戶場景更加全面(設(shè)計不合理,遺漏的找出來),也是提高用例設(shè)計水平方式之一
- 參與人員:測試部門相關(guān)人員,公司其它人員,客戶(第三方)
7、黑盒測試用例設(shè)計方法(二)
針對測試步驟的設(shè)計方法
1、因果圖法
-
思想:適用于【多種輸入條件的組合】,設(shè)計測試用例,根據(jù)輸入項的組合情況,以及約束關(guān)系,輸出條件的因果關(guān)系,分析出可能會產(chǎn)生的組合場景,進(jìn)行用例設(shè)計。
-
因果圖法分析過程
①根據(jù)需求說明書,找出原因(條件)和結(jié)果之間的關(guān)系,畫出因果圖
? 原因和結(jié)果關(guān)系:
? 恒等:只要有條件a,一定會有結(jié)果b
? 非:只要有條件a,一定不會有結(jié)果b
? 或:abc三個條件只要滿足其中一個,就會有結(jié)果d
? 與:abc三個條件必須同時滿足,才會有結(jié)果d
②根據(jù)需求說明書,給因果圖加上約束條件
? (1)原因和原因之間的約束條件:
? 互斥E:abc三個條件,最多成立一個
? 包含I:abc三個條件,至少成立一個
? 唯一O:abc三個條件,有且只能成立一個
? 要求R:a條件的操作,要求b條件必須保持一致
? (2)結(jié)果和結(jié)果之間的約束條件
? 屏蔽M:只要有結(jié)果a,就會屏蔽結(jié)果b
③根據(jù)因果圖,轉(zhuǎn)換出判定表(在表中整理出因果關(guān)系)
④判定表中每一個列,都是一條測試用例
小總結(jié):因果圖判定表法套路:根據(jù)需求說明—–>分析因果關(guān)系—–>畫出因果圖—–>生成判定表—–>根據(jù)表中的每一個列設(shè)計測試用例
2、判定表法
-
概述:“判定表驅(qū)動法”,用來分析多個條件下,執(zhí)行不同的組合操作情況——>分析工具:找出原因和結(jié)果(因為有些需求是比較明確,我們可以直接跳過因果圖,利用判定表分析)
-
判定表組成
條件樁:指的是所有的輸入條件(原因)
條件項:指的是每一個輸入條件的取值
動作樁:指的是所有的輸出結(jié)果
動作項:指的是所有輸出結(jié)果的取值
規(guī)則:表中的每一個列,一個規(guī)則就是一條測試用例
-
判定表法設(shè)計用例:
①假如有n個條件,且每一個條件只有兩個取值(0或1),那么故有2n個規(guī)則
②確定條件樁和動作樁:列出所有的輸入條件和輸出結(jié)果(問題和結(jié)果)
③分別填寫條件項和動作項,生成初始化的判定表
④簡化、合并、去重相似的規(guī)則或相同的動作(簡化后的判定表是大家至少要設(shè)計的測試場景,不能再少了)
小總結(jié):不管是因果圖,還是判定表,最終的目的:實現(xiàn)不同條件之間的組合,產(chǎn)生不同結(jié)果的驗證操作(因果圖判定表法)
測試數(shù)據(jù):等價類邊界值法
測試步驟:因果圖判定表法:功能:多條件組合情況
3、場景法(功能+業(yè)務(wù))
-
概述:模擬用戶使用軟件時的操作場景(在不同的場景下來測試系統(tǒng)軟件),主要測試系統(tǒng)的業(yè)務(wù)流程(畢竟一個軟件的功能相當(dāng)于是一個業(yè)務(wù)流程的體現(xiàn))
-
場景法分析過程
-
場景法一般是由基本流和備選流組成:軟件功能操作時,對應(yīng)的各種{正確+錯誤}場景
基本流:指的是從執(zhí)行程序開始,到程序執(zhí)行結(jié)束,整個過程是【沒有任何錯誤的場景】,將軟件運行的流程正確的分析和表達(dá)出來。
備選流:指的是在基本流的基礎(chǔ)上,會發(fā)生的【各種錯誤情況】所生成的場景。
例:ATM取款機:取錢功能:
? 基本流:正確的操作流程:插卡—––輸入密碼——選擇取錢功能——輸入取款金額—–確認(rèn)出錢——退卡
? 備選流:各種錯誤情況:備選流一:密碼輸錯三次,鎖卡,備選流二:卡里余額不足,備選流三:取款機器沒錢……
-
場景法在設(shè)計測試用例時,都是來源于【基本流和備選流之間組成的不同組合】生成的測試場景,一個場景就是一條測試用例
注意:一個完整的軟件,基本流是固定的,因為基本流是功能業(yè)務(wù)最明確的體現(xiàn),所以基本流是一個正確的操作流程或業(yè)務(wù)流程,沒有任何其他錯誤的情況。備選流是在基本流的操作過程中出現(xiàn)的其他流程和分支(錯誤)
-
場景法用例設(shè)計:
-
確定基本流和備選流
例:根據(jù)案例描述,能夠確定一個基本流和四個備選流
-
根據(jù)基本流和備選流的組合生成場景
例:根據(jù)上述案例,生成的場景有:
? 場景一:基本流
? 場景二:基本流+備選流1
? 場景三:基本流+備選流1+備選流2
? 場景四:基本流+備選流3
? 場景五:基本流+備選流3+備選流1
? 場景六:基本流+備選流3+備選流1+備選流2
? 場景七:基本流+備選流3+備選流4
? 場景八:基本流+備選流4
-
針對每一個場景設(shè)計測試用例(一個場景是一條用例)
-
如果有相似的場景,記得去重
案例分析2:
用戶進(jìn)入一個在線購物網(wǎng)站進(jìn)行購物,選購物品后,進(jìn)行在線購買,這是需要使用賬號登錄,登錄成功后,進(jìn)行付錢交易,交易成功后,生成訂購單,完成整個購物過程。
根據(jù)上述需求,結(jié)合場景法設(shè)計測試用例(購物功能)
(1)確定基本流和備選流
? 基本流:進(jìn)入購物網(wǎng)站—–選擇物品——登錄賬號——付錢——生成訂購單
? 備選流:
? 備選流一:賬號不存在
? 備選流二:賬號密碼錯誤
? 備選流三:卡里余額不足
? 備選流四:卡里沒錢
(2)根據(jù)基本流和備選流生成場景
? 場景一(購物成功):基本流
? 場景二(賬號不存在):基本流+備選流1
? 場景三(賬號密碼錯誤):基本流+備選流2
? 場景四(卡里余額不足):基本流+備選流3
? 場景五(卡里沒錢):基本流+備選流4
(3)根據(jù)每一個場景設(shè)計測試用例
-
-
-
錯誤推測法
? 思想:是一種【基于經(jīng)驗和直覺】的測試方法,來推測程序中所有可能存在錯誤的地方,從而更有針對性的設(shè)計測試用例:列出程序中所有會存在或出現(xiàn)錯誤的特殊情況
? 例:針對計算器的除法功能:設(shè)計用例:關(guān)注一下:除數(shù)為0的情況驗證
- 探索性測試
思想:測試人員一邊學(xué)習(xí)和了解軟件系統(tǒng)的特性,一邊進(jìn)行測試工作的開展,學(xué)習(xí)和測試是同步進(jìn)行,從而了解軟件更多的相關(guān)信息,從而設(shè)計測試用例。
4、正交實驗法
-
概述:利用【正交表】對實驗進(jìn)行整體分析,設(shè)計、綜合比較,實現(xiàn)通過【最少的實驗次數(shù)找到較好的生產(chǎn)條件】,以達(dá)到最優(yōu)的效果。從大量的實驗中,選取具有代表性的實驗點,放入到正交表,進(jìn)行數(shù)據(jù)分析和實驗的實施。
-
思想(設(shè)計測試用例分析):
-
在實驗中,把影響實驗結(jié)果的量稱為實驗因素/因子,簡稱“因素/因子”
解析:在測試中,把影響測試結(jié)果的量稱為“因素”—–>輸入項/輸入條件
-
在實驗中,每個因素所處的不同狀態(tài)或狀況,被稱為因素的水平,簡稱“水平”—–>因素的取值
解析:在測試中,水平相當(dāng)于是每個輸入項的取值
-
利用正交設(shè)計助手,生成正交表
備注:根據(jù)因素和水平的個數(shù),選擇合適的正交表:L4_2_3:會創(chuàng)建一個3因素2水平的正交表,生成4次實驗:L實驗次數(shù)_水平個數(shù) _因素個數(shù);如果沒有合適的正交表,就選擇稍大一點的
-
正交表中生成的每一個實驗,就是一條測試用例
例:做實驗:Word內(nèi)容進(jìn)行排版操作,請根據(jù)正交實驗法,設(shè)計測試用例
第一步:找出影響word內(nèi)容排版的因素有哪些?
? 字體大小 字體顏色 字體樣式
第二步:確定每個因素的取值(選取一下每個因素的不同狀態(tài))
? 字體大?。核剑?2 18 36
? 字體顏色:黑色 綠色 紫色
? 字體樣式:水平:宋體 黑體 楷體
補充:3因素3水平:有3個因素點,每個因素點是有3個取值; 4因素5水平:有4個因素點,每個因素點是有5個取值
-
-
正交表特性:
-
表中每個列的值出現(xiàn)的次數(shù)是一樣的,保證每個因素的水平值參與實驗幾率是一致的
-
表中任意兩列橫向組成的數(shù)據(jù)對,出現(xiàn)的次數(shù)是一樣的,保證因素和水平的組合參與實驗的概率也是一致的
-
-
典型的應(yīng)用場景:軟件中【設(shè)置模塊】的測試用例
練習(xí):利用正交實驗助手,完成下列需求的實驗生成
5、測試大綱法和Monkey測試
-
測試大綱法
思想:主要用于多個窗口,以及每個窗口之間包含的多種操作,這些窗口操作之間又存在一定的聯(lián)系,為了更清楚窗口與窗口之間的關(guān)系,可以借助于測試大綱法。為了列清楚各種測試條件之間的關(guān)系,把過程轉(zhuǎn)化成大綱的形式來進(jìn)行描述。(弄清楚上一步操作和下一步之間的聯(lián)系,上一個窗口和下一個窗口之間的關(guān)系)
應(yīng)用場景:測試安裝、卸載的功能操作;測試窗口之間的跳轉(zhuǎn)關(guān)系;它也是著眼于需求的一種測試方法:梳理清楚需求之間的關(guān)系
-
Monkey測試:它是一種沒有書面測試用例的測試方法,需要通過一系列的Monkey命令來完成測試,整個測試過程充滿隨機性。它更偏向于測試程序的穩(wěn)定性,進(jìn)行壓力測試的一種手段。
缺點:測試過程往往不真實,會有較多的冗余(重復(fù))的操作,測試的覆蓋率很難達(dá)標(biāo)。
6、測試用例設(shè)計方法綜合選擇策略(重點掌握)
- 針對任何有輸入項數(shù)據(jù)的選擇操作,必須等價類邊界值法。
- 如果程序的功能說明中含有輸入條件的組合情況,則一開始就要考慮因果圖判定表法。
- 對于業(yè)務(wù)流程清晰的系統(tǒng)軟件,可以利用場景法貫穿整個測試流程。
- 對于參數(shù)配置類的軟件功能,可以利用正交實驗法選擇較少的參數(shù)組合達(dá)到最佳的測試效果。
- 利用錯誤推測法,再追加一些測試用例
- 如果用例的設(shè)計沒有達(dá)到測試需求的全面覆蓋,需要再補充足夠多的測試用例
場景法:基本流(正確,沒有任何錯誤場景)+備選流(各種錯誤的場景)
正交實驗法:因素+水平
錯誤推測法:經(jīng)驗+直覺
探索性測試:學(xué)習(xí)和了解軟件特性+測試工作
測試大綱法:安裝,卸載功能測試,窗口與窗口之間跳轉(zhuǎn)
Monkey測試:自動化測試文章來源:http://www.zghlxwxcb.cn/news/detail-695265.html
重點:測試用例設(shè)計方法綜合選擇策略文章來源地址http://www.zghlxwxcb.cn/news/detail-695265.html
到了這里,關(guān)于測試?yán)碚撆c方法----測試流程第三個環(huán)節(jié):設(shè)計測試用例的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!