软件测试用例篇(2)
功能測(cè)試+界面測(cè)試+兼容性測(cè)試+安全測(cè)試+易用性測(cè)試+性能測(cè)試
針對(duì)有需求的案例來(lái)設(shè)計(jì)測(cè)試用例:郵箱注冊(cè),部分測(cè)試用例
https://zay1xofb7z6.feishu.cn/mindnotes/bmncnKD5Ak6GSZl3PRlWDgF9z3g#mindmap
一)等價(jià)類:
場(chǎng)景需求:姓名長(zhǎng)度是6-200位,那么如何進(jìn)行設(shè)計(jì)測(cè)試用例?
對(duì)于軟件來(lái)說(shuō),開(kāi)發(fā)人員實(shí)現(xiàn)需求里面的要求,也要避免實(shí)現(xiàn)需求里面沒(méi)有要求的,不符合需求要求的你實(shí)現(xiàn)了,那么就是一個(gè)BUG
1)劃分有效等價(jià)類和無(wú)效等價(jià)類
有效等價(jià)類:6-200
無(wú)效等價(jià)類:(0-5)&(200~+OO)
無(wú)效等價(jià)類更考驗(yàn)同學(xué)們的一個(gè)發(fā)散性思維
2)根據(jù)等價(jià)類來(lái)編寫(xiě)測(cè)試用例:
練習(xí):針對(duì)需求密碼是6-20位的數(shù)字來(lái)設(shè)計(jì)無(wú)效等價(jià)類
長(zhǎng)度:針對(duì)于長(zhǎng)度設(shè)計(jì)無(wú)效等價(jià)類,數(shù)字長(zhǎng)度大于6小于20
無(wú)效等價(jià)類:
1)只包含數(shù)字位數(shù)小于6或者是位數(shù)大于20
2)不僅僅位數(shù)小于6或者位數(shù)大于20,不只是包含數(shù)字,但是在正確范圍之外又出現(xiàn)數(shù)字的其他符號(hào)
2)雖然位數(shù)大于6或者是位數(shù)小于20,但是不僅僅包含數(shù)字還含有其他符號(hào),也就是在正確范圍內(nèi)有出現(xiàn)數(shù)字的其他符號(hào);
有效等價(jià)類:對(duì)于程序的規(guī)格說(shuō)明書(shū)是合理的,有意義的輸入數(shù)據(jù)組成的集合,利用等價(jià)類驗(yàn)證程序是否實(shí)現(xiàn)了規(guī)格說(shuō)明中所規(guī)定的功能和性能;?
無(wú)效等價(jià)類:根據(jù)需求說(shuō)明書(shū),不滿足需求的集合;
1)對(duì)于我們上面說(shuō)的if語(yǔ)句,有效等價(jià)類就是a>10的數(shù)據(jù),無(wú)效等價(jià)類就是a<=10的數(shù)據(jù)
2)例如我想要去商店買(mǎi)水果,有效等價(jià)類是蘋(píng)果,桃子和梨,無(wú)效等價(jià)類是飲料,米
if(a>10) {printf("a大于10"); }b=a;printf("b等于a"); } 這時(shí)把a(bǔ)>10的數(shù)據(jù)歸到一個(gè)等價(jià)類中 把所有小于10的數(shù)據(jù)歸到一個(gè)等價(jià)類中 例如拿1和15舉例子輸入用戶名(必填項(xiàng)):字符類型A-Z,不區(qū)分大小寫(xiě),長(zhǎng)度是6-15位任何長(zhǎng)度(6和15就是邊界)
1)有效等價(jià)類:A-Z,a-z,大小寫(xiě)混合,大于等于6位,小于等于15位;
2)無(wú)效等價(jià)類:漢字,特殊符號(hào)#,?(),!,數(shù)字,空格,字母和前面符號(hào)的混合,小于6位,大于15位;
二)邊界值法:
2.1)定義:邊界值是對(duì)等價(jià)類的補(bǔ)充,邊界值分析法就是對(duì)輸入或者輸出的邊界值進(jìn)行測(cè)試的一種黑盒的測(cè)試方法,通常邊界值分析法是對(duì)等價(jià)類劃分法的補(bǔ)充,這種情況下其測(cè)試用例來(lái)自于等價(jià)類的邊界;
2.2)特點(diǎn):針對(duì)我們的輸入輸出的邊界進(jìn)行測(cè)試用例的設(shè)計(jì),因?yàn)檫吔缡且环N特別出現(xiàn)錯(cuò)誤的地方,是一種黑盒測(cè)試方法;
2.3)需求:活動(dòng)截止日期是7.14,變量是datetime;
if(datetime<7.15 00.00.00)
if(datetime<=7.14 23.59.59)
2.4)我們的邊界值法就可以這么寫(xiě),這就是邊界值的重要性;
2.5)1的邊界值是0和2,-1的邊界值就是-2和0
時(shí)間:7月14號(hào)00:00:00 23:59:58,7月15日00:00:00 0:0:0
1)for循環(huán)(int i=0;i<arr1.length();i++),因?yàn)橥鶗?huì)出現(xiàn)問(wèn)題,買(mǎi)一個(gè)小于3000元的智能手機(jī),3000就是一個(gè)邊界點(diǎn);郵件小于24小時(shí)有效,24小時(shí)就是一個(gè)邊界點(diǎn),我們可以對(duì)23小時(shí)59分進(jìn)行測(cè)試,和24小時(shí)01分開(kāi)始測(cè)試;
2)還有6-15位,那么就要對(duì)5,6 ,7和14位,15位,16位邊界點(diǎn)進(jìn)行測(cè)試;
3)設(shè)計(jì)測(cè)試用例的時(shí)候,會(huì)把等價(jià)類和邊界值結(jié)合在一起用于進(jìn)行測(cè)試用例的設(shè)計(jì);
三)判定表:
我認(rèn)為因果圖法畫(huà)判定表很多余,而且因果圖實(shí)際上在設(shè)計(jì)測(cè)試用例的時(shí)候并沒(méi)有多大意義
第一步因?yàn)樵谕ㄟ^(guò)判定表設(shè)計(jì)測(cè)試用例的時(shí)候,前提也是要找出輸入條件和輸出條件之間的關(guān)系
第二步就是根據(jù)輸入條件和輸出條件找出它們之間的一個(gè)對(duì)應(yīng)關(guān)系,因果圖也是找這樣的一個(gè)輸入和輸出之間的關(guān)系,前提是畫(huà)因果圖,再將因果圖轉(zhuǎn)化成判定表,多此一舉;
1)定義:邏輯圖,當(dāng)輸入有多個(gè),并且不同的輸入的組合對(duì)應(yīng)著不同的輸出結(jié)果,可以用因果圖法來(lái)分析這個(gè)輸入和輸出之間的邏輯關(guān)系,來(lái)設(shè)計(jì)測(cè)試用例,有效地防止漏測(cè);
使用場(chǎng)景:需要進(jìn)行考慮輸入之間的組合關(guān)系,不同的組合關(guān)系對(duì)應(yīng)的輸出結(jié)果不同;
輸入有多個(gè),不同的輸入組合有不同的輸出,為了防止漏測(cè),就要用因果圖來(lái)設(shè)計(jì)測(cè)試用例
2)需求:淘寶618活動(dòng),訂單已經(jīng)提交,訂單總金額大于300元或者訂單有紅包,則認(rèn)為該訂單屬于有優(yōu)惠的訂單,否則認(rèn)為此訂單沒(méi)有優(yōu)惠的訂單
3)判定表設(shè)計(jì)測(cè)試用例的步驟:
1)確認(rèn)輸入條件和輸出條件
2)找到輸入條件和輸出條件之間的關(guān)系
3)畫(huà)判定表
4)根據(jù)判定表來(lái)編寫(xiě)測(cè)試用例
一)確認(rèn)輸入輸出條件
輸入條件:
1)是否提交訂單?輸入:提交訂單,沒(méi)有提交訂單;
2)訂單金額是否大于300?輸入:金額大于300元或者小于等于300元
3)是否有紅包?輸入:訂單有紅包,訂單無(wú)紅包
輸出條件:
輸出(訂單類型):有優(yōu)惠,沒(méi)有優(yōu)惠
二)確認(rèn)輸入輸出條件之間的關(guān)系
A:提交訂單,B:沒(méi)有提交訂單
C:金額大于300元,D:金額小于300元
E:訂單有紅包,F:訂單沒(méi)有紅包
因?yàn)樗械那闆r都要包含A和B,根據(jù)排列組合,劃分除了以下幾種情況:
ADE,ADF,ACE,ACF,BCE,BCF,BDE,BDF,AC,AD,AE,AF
訂單已提交,沒(méi)有紅包,訂單大于300,有優(yōu)惠
訂單已提交,有紅包,金額大于300,有優(yōu)惠
訂單已提交,有紅包,訂單小于300,有優(yōu)惠
訂單已提交,沒(méi)紅包,訂單沒(méi)有大于300,沒(méi)有優(yōu)惠
訂單未提交,有紅包,訂單大于300,沒(méi)有優(yōu)惠
訂單未提交,無(wú)優(yōu)惠;
紅包和金額組成了四種情況:
1)訂單沒(méi)有提交,金額大于300,有紅包,沒(méi)有優(yōu)惠
2)訂單沒(méi)有提交,金額大于300,沒(méi)有紅包,沒(méi)有優(yōu)惠
3)訂單沒(méi)有進(jìn)行提交,金額小于300,有紅包,沒(méi)有優(yōu)惠
4)訂單沒(méi)有提交,金額小于300,沒(méi)有紅包沒(méi)有優(yōu)惠
三)畫(huà)判定表:畫(huà)判定表,使用飛書(shū)新建表格
四)根據(jù)判定表來(lái)編寫(xiě)測(cè)試用例
進(jìn)行組合情況:
四)正交表
定義:針對(duì)輸入條件進(jìn)行排列組合,研究多水平,多因素的一種測(cè)試用例的設(shè)計(jì)方法
因素?cái)?shù):輸入的條件的個(gè)數(shù)
水平數(shù):輸入的條件對(duì)應(yīng)的取值,不是輸出結(jié)果
多因素:輸入類型的種類,比如說(shuō)訂單已提交,有紅包,金額大于300 多水平:對(duì)于每一種輸入的取值,因素的取值,例如訂單已經(jīng)提交,訂單沒(méi)有進(jìn)行提交,金額大于300,金額小于300,有紅包,沒(méi)有紅包正交表的性質(zhì):想讓我們?cè)O(shè)計(jì)正交表非常難,嗚嗚嗚,但是有一個(gè)專門(mén)生成正交表的工具
1)每一列中,不同的數(shù)字出現(xiàn)的次數(shù)相等,每一列數(shù)字出現(xiàn)的次數(shù)是相等的,例如在兩水平正交表中,任何一列都有數(shù)碼"1"與"2",且任何一列中它們出現(xiàn)的次數(shù)是相等的,如在三水平正交表中,任何一列都有"1"、"2"、"3",且在任一列的出現(xiàn)數(shù)均相等
2)任意兩列的數(shù)字的組合次數(shù)是相同的,假設(shè)第一列和第三列進(jìn)行組合,第一列中的第一行和第三列第一行組合成了ac,又發(fā)現(xiàn)第一列的第四行和第三列的第四行有組成了ac,這里的組合是存在先后順序的,從左向右看,這樣子ac組合就出現(xiàn)了兩次;那么假設(shè)說(shuō)如果第一列的第二行和第三列的第二行組成的字母組合是bc,那么必定第一列的第N行和第三列的第N行的組成序列是bc,也一定出現(xiàn)兩次;
?正交表設(shè)計(jì)測(cè)試用例的方法:
根據(jù)正交表設(shè)計(jì)測(cè)試用例的步驟:
1)??找出因素?cái)?shù)和水平數(shù)
2)確定每一個(gè)因素的水平
3)根據(jù)因素?cái)?shù)和水平數(shù)確定正交標(biāo)的行和列
4)根據(jù)正交表的性質(zhì)去填充正交表里面的數(shù)據(jù)
5)根據(jù)正交表的每一行設(shè)計(jì)測(cè)試用例,正交表里面的填寫(xiě)的值都是水平數(shù)
6)補(bǔ)充正交表里面沒(méi)有的,但是你認(rèn)為比較關(guān)鍵的測(cè)試用例
例子:平臺(tái)支持郵箱注冊(cè)功能?
例如說(shuō)郵箱注冊(cè),在這種情況下只考慮填寫(xiě)和不填寫(xiě)兩種情況
填寫(xiě)姓名,郵箱,密碼,確認(rèn)密碼,驗(yàn)證碼
一)找出因素書(shū)和水平數(shù)
因素:姓名,郵箱,密碼,確認(rèn)密碼,驗(yàn)證碼
水平:填寫(xiě),不填寫(xiě)
針對(duì)所有的因素,只有相同的兩種取值,就是填寫(xiě)和不填寫(xiě)
二)確定行和列
行=(水平數(shù)-1)*因素?cái)?shù)+1;
列=因素?cái)?shù)
因素?cái)?shù):5
水平數(shù):2
列=因素?cái)?shù)=5,行=(水平數(shù)-1)*因素?cái)?shù)+1=6
為了驗(yàn)證注冊(cè)的這5個(gè)必填項(xiàng)分別在填寫(xiě)和不填寫(xiě)各種情況下的表現(xiàn),只要這里面有不填寫(xiě)的項(xiàng),就都會(huì)注冊(cè)失敗
三)畫(huà)正交表:
四)根據(jù)正交表編寫(xiě)測(cè)試用例
根據(jù)這個(gè)正交表此時(shí)就可以寫(xiě)測(cè)試用例了,測(cè)試用例為等等等
1)姓名輸入,郵箱不輸入,密碼輸入,確認(rèn)密碼輸入,驗(yàn)證碼不輸入,注冊(cè)失敗
2)姓名輸入,郵箱輸入,密碼不輸入,密碼不輸入,驗(yàn)證碼不輸入,注冊(cè)失敗
五)補(bǔ)充測(cè)試用例
除此之外還要考慮姓名,郵箱,密碼,確認(rèn)密碼,驗(yàn)證碼全部輸入;
姓名,密碼,郵箱,確認(rèn)密碼,驗(yàn)證碼全部不進(jìn)行輸入;
推薦第二種方案:工具設(shè)計(jì)正交表
1)找到因素?cái)?shù)和水平數(shù)
2)使用allparis工具來(lái)生成正交表
3)根據(jù)正交表來(lái)填寫(xiě)測(cè)試用例
4)補(bǔ)充測(cè)試用例
一)找到因素?cái)?shù)和水平數(shù)
因素?cái)?shù):姓名,電子郵箱,密碼,確認(rèn)密碼,驗(yàn)證碼
水平數(shù):填寫(xiě)和不填寫(xiě)
二)使用allpairs工具生成正交表,不再使用計(jì)算行和列的方式
2.1)下載pairs壓縮包進(jìn)行解壓縮,解壓縮生成正常的文件夾之后,打開(kāi)文件看到了allpairs.exe文件
2.2)在飛書(shū)里面或者是excel表格里面列出所有的因素?cái)?shù)和水平數(shù)
?2.3)在這個(gè)文件夾目錄下面新創(chuàng)建一個(gè)文本文檔txt,把在excel表格中的因素?cái)?shù)和水平數(shù)進(jìn)行復(fù)制粘貼
?
2.4)直接點(diǎn)擊ctrl+s保存,將文件保存
2.5)打開(kāi)控制臺(tái),直接進(jìn)行運(yùn)行
2.5.1)先切換到D盤(pán)
2.5.2)切換到pairs目錄
2.5.3)執(zhí)行exe文件,命令里面指明源文件和最終要生成的文件
?注意:使用allpairs生成的正交表和實(shí)際的正交表有出路,但是仍然是不會(huì)影響到我們使用allpairs來(lái)設(shè)計(jì)測(cè)試用例,也就是說(shuō)會(huì)有遺漏的測(cè)試用例;
三)根據(jù)正交表編寫(xiě)測(cè)試用例
總結(jié):如何使用allpairs工具生成正交表?
1)把因素?cái)?shù)和水平數(shù)寫(xiě)入到excel表格中直接進(jìn)行復(fù)制
2)找到allpairs文件夾路徑,新建文本將因素?cái)?shù)和水平數(shù)粘貼到文本中
3)打開(kāi)cmd,cd到allpairs文件夾路徑底下,找到allpairs.exe,在cmd上執(zhí)行命令,找到allpairs.exe源文件>目標(biāo)文件,目標(biāo)文件就是我們生成的正交表
設(shè)計(jì)測(cè)試用例的方法:
5)場(chǎng)景設(shè)計(jì)法:
很多軟件不同的場(chǎng)景,是基于不同的事件來(lái)進(jìn)行觸發(fā)的,不同事件的觸發(fā),導(dǎo)致場(chǎng)景走向不同的事件流,我們可以把不同的功能點(diǎn)串起來(lái)當(dāng)成一個(gè)場(chǎng)景,不同的功能點(diǎn)有著不同的輸出,不同的輸出導(dǎo)致不同的測(cè)試場(chǎng)景
主要分為基本事件流和多個(gè)備用事件流
總結(jié):找出場(chǎng)景中的每一個(gè)功能點(diǎn),根據(jù)每一個(gè)功能點(diǎn)的正常的和異常的情況去設(shè)計(jì)測(cè)試用例
以ATM機(jī)取款為例:
插卡----->選擇語(yǔ)言---->輸入密碼----->選擇取款業(yè)務(wù)----->輸入取款金額------->出鈔------>吐卡
1)插卡
1.1)卡插反了,提示請(qǐng)重新插入卡
1.2)卡插錯(cuò)了,插入一些飯卡,會(huì)員卡,公交卡,其他無(wú)法識(shí)別的銀行卡
1.3)卡無(wú)效,卡的磁片消磁,損壞,提示該銀行卡無(wú)效,注銷(xiāo)卡;
1.4)卡號(hào)凍結(jié),賬戶鎖死
1.5)斷電斷網(wǎng)
1.6)一張卡也不插
2)選擇語(yǔ)言
選擇英語(yǔ)不能顯示是中文,選擇中文不能顯示英語(yǔ)
3)輸入密碼
密碼輸入正確
密碼輸入錯(cuò)誤
1)密碼輸入共有三次機(jī)會(huì),密碼第一次輸入錯(cuò)誤,第二次輸入正確,可以取錢(qián)
2)密碼前兩次輸入錯(cuò)誤,第三次輸入正確,可以取錢(qián)
3)三次都輸入錯(cuò)誤,吞卡/賬戶鎖定
4)密碼是否加密
5)輸入框是否支持不同字符輸入
6)密碼輸入框是否支持刪除
7)什么密碼也不輸入
4)選擇取款業(yè)務(wù)
1)充值服務(wù)
2)存款服務(wù)
3)轉(zhuǎn)賬服務(wù)
5)取款金額
輸入小于取款錢(qián)數(shù),輸入等于取款錢(qián)數(shù),輸入大于取款錢(qián)數(shù)
5.1)輸入錢(qián)數(shù)小于等于銀行卡總金額,輸入錢(qián)數(shù)大于銀行卡金額(系統(tǒng)提示)
5.2)輸入的不足整百,不是整百的倍數(shù),選擇超過(guò)5W的金額,選擇剛好是5W的金額,選擇小于5W的金額
5.3)超過(guò)每日取款限額
5.4)超過(guò)每日取款最大次數(shù)
5.4)ATM機(jī)沒(méi)錢(qián)(輸入余額小于銀行卡余額)
5.5)取款時(shí),確認(rèn)取款錢(qián)數(shù)后,ATM機(jī)會(huì)吐出相應(yīng)的錢(qián)數(shù)
5.6)比如說(shuō)長(zhǎng)時(shí)間不取吞出來(lái)的錢(qián),ATM機(jī)會(huì)自動(dòng)把吐出來(lái)的錢(qián)收回到ATM機(jī)里面
5.7)不輸入直接按下取錢(qián)按鈕
5.8)長(zhǎng)時(shí)間不操作看看是否超時(shí)
6)等待出鈔
6.1)機(jī)器計(jì)算故障:機(jī)器故障導(dǎo)致不出鈔,少出鈔,多出鈔票
6.2)機(jī)器停電,ATM機(jī)斷電,斷網(wǎng),出現(xiàn)故障
6.3)當(dāng)用戶的所有操作都超時(shí),就會(huì)出現(xiàn)吞卡,這是一種安全機(jī)制;
7)吐卡
7.1)忘記取卡,肯定要吞卡,防止卡丟了,這是一種保護(hù)機(jī)制
7.2)正常吐卡
7.3)不吐卡
編寫(xiě)測(cè)試用例:基本事件流+異常事件流
卡成功插入進(jìn)ATM機(jī),選擇合適的語(yǔ)言,密碼輸入正確,輸入小于銀行卡余額的錢(qián)數(shù),取錢(qián)成功,退卡
6)錯(cuò)誤猜測(cè)法:這是根據(jù)測(cè)試人員的直覺(jué),知識(shí),經(jīng)驗(yàn),判斷軟件的哪一塊有問(wèn)題,找哪一個(gè)功能模塊有問(wèn)題,專門(mén)針對(duì)性的設(shè)計(jì)測(cè)試用例
驗(yàn)證碼大小寫(xiě)是否進(jìn)行區(qū)分?把輸入的搜索信息的前后空格忽略
依賴于測(cè)試人員的個(gè)人工作經(jīng)驗(yàn)和積累
測(cè)試人員可以用其他設(shè)計(jì)測(cè)試用例的方法設(shè)計(jì)需求的測(cè)試用例,用錯(cuò)誤猜測(cè)法作為一種補(bǔ)充的方式,這個(gè)方法最后再用,一旦有遺漏的測(cè)試面,線上就會(huì)出現(xiàn)問(wèn)題
總結(jié)
以上是生活随笔為你收集整理的软件测试用例篇(2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【软件测试用例篇】
- 下一篇: 如何改善IT项目团队资源利用,避免超负荷