一四年我在YX公司帶測試團隊,一個用例評審的會議上,一不小心超常發(fā)揮,結(jié)果卡在了一個用例設(shè)計方法上,印象非常深刻,當(dāng)時的業(yè)務(wù)場景是支付方式的選擇和優(yōu)惠方案。
成都創(chuàng)新互聯(lián)公司于2013年開始,先為霍邱等服務(wù)建站,霍邱等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為霍邱企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
在后來的工作中,也曾幾次遇到需要選擇合理的設(shè)計方法來寫用例,不過每次在網(wǎng)上都是搜索了半天,也找不到令人滿意的答案。很多簡單的問題被復(fù)雜化,然后給出的解題思路更是令人百思不得其解。
網(wǎng)絡(luò)資源下,任何一個問題都不缺答案,更多的時候缺的是個讓人一目了然的答案。
測試前準(zhǔn)備
作為一個測試人員,軟件測試的流程首先是要非常熟悉的,何時何地都能脫口而出,避免一切翻車的可能。需要注意的是流程沒有唯一答案,具體由項目決定。所以給出的只是一個還算通用的參考流程。
我們要熟知的測試流程:
總結(jié)一下:在測試流程中,有6個部分,其中3個部分涉及到了用例,可見寫好用例的重要性。
所以,結(jié)合這些年吃過的虧,我來給大家縷縷,如何快速的get到測試用例的設(shè)計方法。
5種常見的測試用例設(shè)計方法
一、等價類劃分
1)概念
某個輸入域的集合,在這個集合中每個輸入條件都是等效的,如果其中一個的輸入不能導(dǎo)致問題發(fā)生,那么集合中其它輸入條件進(jìn)行測試也不太可能發(fā)現(xiàn)錯誤。
關(guān)于等價類劃分的兩個重要概念:
有效等價類:有效等價類是程序規(guī)格說明有意義,合理的輸入數(shù)據(jù)。
比如用正確的用戶名和密碼來登錄系統(tǒng)就是有效等價類。
無效等價類:無效等價類是程序規(guī)格說明無意義,不合理的輸入數(shù)據(jù)。
比如用不存在的用戶名和密碼來登錄系統(tǒng)就是無效的等價類。
2)等價類法設(shè)計測試用例的步驟
為每個輸入劃分等價類,得到等價類表,為每個等價類規(guī)定一個唯一編號
設(shè)計一個測試用例,使其盡可能多的覆蓋所有尚未覆蓋的有效等價類。重復(fù)這一步驟,使得有效等價類均被測試用例所覆蓋設(shè)計一個測試用例,使其只覆蓋一個無效等價類。重復(fù)這一步驟使得所有無效等價類均被覆蓋。
假設(shè)上面的文字你都沒有看懂,那么做個題目就懂啦。
3)案例來了
程序規(guī)定:輸入三個正整數(shù)作為三邊的邊長構(gòu)成三角形。請用等價類方法設(shè)計測試用例分別判斷輸入3個整數(shù)時的三角形為一般三角形、等腰三角形、等邊三角形時情況:
提示:
需求提?。?/p>
1、三條邊需求:整數(shù)/3個數(shù)/非零數(shù)/正數(shù)
2、一般三角形的要求:二邊之和大于第三邊
3、等腰三角形:二二邊相等且滿足二邊之和大于第三邊
4、等邊三角形:三條邊相等
參考答案
答案解析:符合的需求條件的即是有效等價類,比如,等腰三角形,那么要求至少有兩條邊相等,所有有效等價類就包括a=b b=c a=c ,那么不符合條件的就是無效等價類包括a!=b b!=c a!=c
二、邊界值分析
1)概念
邊界值分析方法的理論基礎(chǔ)是假定大多數(shù)的錯誤是發(fā)生在各種輸入條件的邊界上,如果在邊界附近的取值不會導(dǎo)致程序出錯,那么其它的取值導(dǎo)致程序錯誤的可能性也很小。
2)邊界值分析法設(shè)計用例的步驟
分析輸入?yún)?shù)的類型:從測試規(guī)格中分析得到輸入?yún)?shù)類型
等價類劃分(可選):對于輸入等價類劃分方法進(jìn)行等價類的劃分
確定邊界:運用域測試分析方法確定域范圍的邊界(上點、離點與內(nèi)點)
相關(guān)性分析(可選):如果存在多個輸入域,則需要運用因果圖、判定表方法這些輸入域邊界值的組合情況進(jìn)行進(jìn)一步分析
形成測試項:選擇這些上點、離點與內(nèi)點或者這些點的組合形成測試項
3)案例來了
假設(shè)存在以下的測試場景,某個網(wǎng)站的登錄頁面:
1、用戶名:1—20個字符,包括1和20,其他不考慮
2、密碼:6個數(shù)字,其他不考慮
現(xiàn)要求用邊界值分析法測試用戶名和密碼這兩個輸入框。
參考答案
邊界值分析方法如下:
答案解析:密碼這個字段的范圍是閉區(qū)間【1-20】,用邊界值設(shè)計用例,那么去找這兩個數(shù)的左鄰右舍+自己,1則是0和1和2,20則是19,20,21。
三、判定表
1)概念
判定表是分析和表達(dá)多種輸入條件下系統(tǒng)執(zhí)行不同動作的工具,它可以把復(fù)雜的邏輯關(guān)系和多種條件組合的情況表達(dá)得既具體又明確 。
2)判定表法設(shè)計用例的步驟
列出所有的條件樁和動作樁
填入條件樁、條件項
填入動作樁、動作項
化簡,合并相似規(guī)則
將每條規(guī)則轉(zhuǎn)化為用例
3)案例來了
假設(shè)有以下邏輯:
運用判定表設(shè)計用例。
參考答案
答案解析:判定表的解題思路就是先列出所有條件,然后列出每個條件的取值,最后如上圖,一列就是一條用例。
四、正交試驗法
1)概念
正交試驗設(shè)計(Orthogonal experimental design)是研究多因子多水平的又一種設(shè)計方法,它是根據(jù)正交性從全面試驗中挑選出部分有代表性的點進(jìn)行試驗,這些有代表性的點具備了“均勻分散,齊整可比”的特點。
關(guān)于正交試驗表的兩個重要概念:
1、所有參與試驗、影響試驗結(jié)果的條件稱為因子。
2、影響試驗因子的取值或輸入叫做因子的水平。
如何選擇正交表:
1、考慮因子的個數(shù)
2、考慮水平的個數(shù)
3、考慮正交表的行數(shù)
4、取行數(shù)最少的一個
2)案例來了
有如下用戶登錄頁面,三個登錄條件:用戶名、密碼、驗證碼,考慮填寫或不填寫,用正交表設(shè)計測試用例。
參考答案
分析因子數(shù),以及因子水平值:
3因子2狀態(tài)
經(jīng)過組合合并之后的對應(yīng)用例
補充:
答案解析:正交試驗法主要在于選取因子數(shù)和水平值,將兩者結(jié)果列出再合并,工作中用的不多,但是合適的業(yè)務(wù)邏輯下可以選擇。
五、流程分析法
1)概念
流程分析法是將軟件系統(tǒng)的某個流程看成路徑,用路徑分析的方法來設(shè)計測試用例。根據(jù)流程的順序依次進(jìn)行組合,使得流程的各個分支都能走到。
2)流程分析法設(shè)計用例步驟
1、畫出業(yè)務(wù)流程圖
2、設(shè)置功能路徑優(yōu)先級
3、確定測試路徑
4、選取測試數(shù)據(jù)
5、構(gòu)造測試用例
3)案例來了
案例:安裝 QQ,安裝系統(tǒng)之家版 QQ。
參考答案
對應(yīng)的測試用例
答案解析:看起來非常復(fù)雜的流程圖和用例,設(shè)計的核心其實就兩個方向,一個是正常流程,即安裝安裝向?qū)б恢秉c擊【下一步】直到完成。另一個方向則是每個判斷條件選擇【否】的場景,那么這樣的話,就會產(chǎn)生很多條其他分支的用例。
結(jié)尾篇
測試用例設(shè)計方法不止上面提到的5種,但是工作中遇到的業(yè)務(wù)場景基本可以通過上述的方法來得到解決。等價類劃分和邊界分析方法較為簡單,很多時候可以結(jié)合起來一起用。正交實驗表和判定表一般用在需要將多個輸入組合起來測試的情況。流程分析法顧名思義就是存在不同分支流程的時候選用。希望上述的方法能夠幫助到大家。
歡迎加入 51軟件測試大家庭,在這里你將獲得【最新行業(yè)資訊】,【免費測試工具安裝包】,【軟件測試技術(shù)干貨】,【面試求職技巧】... 51與你共同學(xué)習(xí),一起成長!期待你的加入: QQ 群: 755431660