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