测试用例设计怎么做?怎么设计一个好的测试用例?
一、測試用例的定義
測試用例(Test Case),是為某個(gè)特殊目標(biāo)而編制的一組測試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便測試某個(gè)程序路徑或核實(shí)是否滿足某個(gè)特定需求。
二、為什么要寫測試用例
1、 理清測試思路
有的系統(tǒng)本來就是一個(gè)大而復(fù)雜的項(xiàng)目,因此需要把項(xiàng)目功能細(xì)分,根據(jù)每一個(gè)功能通過編寫用例的方式來整理測試系統(tǒng)的思路,避免遺漏掉要測試的功能點(diǎn)。
2、 明確測試任務(wù)
編寫完用例后,可以明確自己需要執(zhí)行的用例總數(shù),以便預(yù)估測試工作量。并且可以很清楚的知道實(shí)際測試執(zhí)行的進(jìn)度,還很容易統(tǒng)計(jì)和跟蹤我們的剩余工作量和回歸工作量。
3、 規(guī)范測試行為
每個(gè)人對于功能和開發(fā)原理的理解都是不同的,同一條案例,每個(gè)人的理解程度和擴(kuò)展都是不一樣的。對于沒有測試經(jīng)驗(yàn)的新人來講,更是需要詳細(xì)明確的用例來規(guī)范,以減少遺漏。
三、如何編寫用例
1、 測試用例的來源
a) 分析需求文檔
需求文檔是編寫測試用例的第一依據(jù),需求分析的目的一般是:
l 了解需求的背景;
l 分析需求的合理性;
l 明確需求的范圍;
l 挖掘隱含需求;
b) 了解開發(fā)原理
l 確定開發(fā)的實(shí)現(xiàn)框架;
l 明確輸入輸出代碼規(guī)則;
l 減少測試方向偏差;
2、 測試用例的要素
a) 測試環(huán)境
測試的系統(tǒng)是什么?硬件軟件的要求是什么?
b) 測試數(shù)據(jù)
測試執(zhí)行的輸入值
c) 測試步驟
提供測試執(zhí)行過程的步驟。一般控制在三個(gè)步驟完成。否則需要考慮用例是否需要拆分,因?yàn)槊織l用例對應(yīng)的測試目的應(yīng)該是具有唯一性的。
d) 預(yù)期結(jié)果
預(yù)期結(jié)果根據(jù)軟件需求中的輸出得出。那么實(shí)際測試過程中,實(shí)際測試結(jié)果如果與預(yù)期結(jié)果不符,則就測試不通過;反之則測試通過。
e) 用例標(biāo)題
用例標(biāo)題是對測試用例主旨的描述,既要言簡意賅,也要能夠清楚表達(dá)測試用例的目的
f) 用例編號
定義測試用例編號,用來標(biāo)示每個(gè)用例的唯一性,進(jìn)行測試用例的跟蹤和維護(hù)。
g) 用例級別
一般分為四個(gè)等級,P0、P1、P2、P3。
3、 用例設(shè)計(jì)方法
結(jié)合一個(gè)需求來講講不同方法的應(yīng)用:
a) 等價(jià)類劃分
將輸入值分為有效等價(jià)類和無效等價(jià)類。如果輸入規(guī)定了輸入?yún)^(qū)間,可劃分出一個(gè)有效等價(jià)類,兩個(gè)無效等價(jià)類;
b) 邊界值
任何測試場景下都可以使用邊界值法做設(shè)計(jì),輸入類型可以數(shù)值、字符等,要測試的邊界包括上點(diǎn)、下點(diǎn)、離點(diǎn)。
c) 錯(cuò)誤推測法
錯(cuò)誤推測法,即猜測可能和常出現(xiàn)的錯(cuò)誤,來提前制定用例,規(guī)避風(fēng)險(xiǎn)。錯(cuò)誤推測法很受設(shè)計(jì)人員的測試經(jīng)驗(yàn)影響,測試經(jīng)驗(yàn)不同,設(shè)計(jì)出來的測試用例區(qū)別會很大。
d) 因果圖法
羅列出所有的輸入和輸出,將輸入和輸出整理出因果圖和依賴關(guān)系,根據(jù)每一個(gè)依賴做設(shè)計(jì)。因果圖方法考慮輸入的組合,特別適用于多個(gè)輸入條件相關(guān)有關(guān)聯(lián)又相互約束的情況。
e) 判定表驅(qū)動法
判定表適合于解決多個(gè)邏輯條件的組合,將各種邏輯的組合羅列出來,避免遺漏。列出每個(gè)對應(yīng)條件所有可能情況下的取值,不需要考慮條件和順序,再列出結(jié)果動作項(xiàng),對每個(gè)條件進(jìn)行結(jié)果判定。最后可以適當(dāng)?shù)倪M(jìn)行規(guī)則簡化和合并。
f) 正交法
當(dāng)輸入條件很多時(shí),因果圖等設(shè)計(jì)方法設(shè)計(jì)出來的用例數(shù)往往多的驚人,用正交法可有效減少用例數(shù)。正交法的核心思想是從大量測試數(shù)據(jù)中選取有代表性的點(diǎn)來測試,從而減少測試用例數(shù)。
g) 場景法
畫出程序流程圖,再把流程圖轉(zhuǎn)換成控制流圖,根據(jù)控制流圖設(shè)計(jì)出場景,再根據(jù)場景設(shè)計(jì)測試用例。
結(jié)合這樣一個(gè)需求:
判定表:
四、如何提升用例編寫能力
1、 從大往小抓起測試框架先行
極力推薦思維導(dǎo)圖工具,快速的梳理清晰要測試的模塊、測試點(diǎn)、以及結(jié)構(gòu)關(guān)系,讓自己先對要測試的內(nèi)容有個(gè)整體的框架和印象,腦圖也能夠快速的讓開發(fā)、接手的測試同學(xué)快速理解和看出大方向上的偏差和遺漏。
另外細(xì)節(jié)的地方,推薦幾個(gè)圖形工具結(jié)合用,比如流程圖、魚骨圖和N-S 圖,詳情見另一篇文章『軟件開發(fā)流程常用圖』
2、 多緯度的思考和覆蓋
從界面、功能、性能、兼容、異常等角度思考,盡可能的覆蓋更全更廣。
3、 熟悉被測的業(yè)務(wù)和系統(tǒng)
任何系統(tǒng)都有大的業(yè)務(wù)背景,比如測試金融 APP,要了解金融業(yè)務(wù),基金、理財(cái)產(chǎn)品的業(yè)務(wù)流程和邏輯,要了解什么是結(jié)算、賬戶、和支付幾個(gè)系統(tǒng)的差異以及作用。才能更準(zhǔn)確的把握好測試重點(diǎn)寫好用例。
任何系統(tǒng)在使用過程中,都有一個(gè)熟悉的過程,對系統(tǒng)越熟悉,越容易發(fā)現(xiàn)系統(tǒng)的特點(diǎn),以及容易出現(xiàn)錯(cuò)誤和異常的地方。
4、 站在用戶角度分析
站在客戶的角度分析:客戶需要什么,客戶想要什么,客戶不想要什么,也就是客戶的使用場景。這樣有利于我們更好的挖掘和思考隱含的需求。甚至可以拉上幾個(gè)同事來體驗(yàn)下產(chǎn)品,看看他們的操作行為和順序是怎樣的。
5、 重視用例評審
重視測試評審和評審意見,把經(jīng)常見到的用例設(shè)計(jì)的誤區(qū)和一些好的用例設(shè)計(jì),還可以多看看他人的測試思路和用例,查漏補(bǔ)缺。
總結(jié)
以上是生活随笔為你收集整理的测试用例设计怎么做?怎么设计一个好的测试用例?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 购物车怎么测试?
- 下一篇: 来电通java版_终于有人把Java程序