軟件測試用例

1.測試用例的概念和作用

1.1.引言

對一個(gè)測試工程師來說,測試用例的設(shè)計(jì)編寫是一項(xiàng)必須掌握的能力,但有效的設(shè)計(jì)和熟練的編寫測試用例卻是一個(gè)十分復(fù)雜的技術(shù),測試用例編寫者不僅要掌握軟件測試技術(shù)和流程,而且要對整個(gè)軟件不管從業(yè)務(wù),還是對軟件的設(shè)計(jì)、程序模塊的結(jié)構(gòu)、功能規(guī)格說明等都要有透徹的理解。
測試的設(shè)計(jì)方法不是單獨(dú)存在的,具體到每個(gè)測試項(xiàng)目里都有很多種方法,每種類型都有各自的特點(diǎn)。

1.2. 測試用例的定義:

1.2.1.什么是測試用例?

測試用例是執(zhí)行測試的依據(jù),把測試系統(tǒng)的操作步驟用文檔的形式描述出來。
任意的測試用例都含有

用例編號(hào) 所屬模塊 執(zhí)行條件 執(zhí)行條件 操作步驟和數(shù)據(jù) 預(yù)期結(jié)果 實(shí)際結(jié)果 是否通過 測試人 版本 備注
1 郵箱登錄 Windows10操作系統(tǒng),IE11瀏覽器 (1)輸入郵箱地址
(2)輸入用正確戶名“123”,輸入錯(cuò)誤密碼
(3)單擊登錄按鈕查看是否成功
(1)郵箱頁面能正常打開
(2)用戶名和密碼可以被正確輸入
(3)郵箱登錄不成功,提示用戶名和密碼錯(cuò)誤

(1)測試用例是為達(dá)到最佳的測試效果或高效的揭露隱藏的錯(cuò)誤,而精心設(shè)計(jì)的少量測試數(shù)據(jù),包括測試輸入、執(zhí)行條件和預(yù)期的結(jié)果,實(shí)際結(jié)果
(2)測試用例是執(zhí)行的最小實(shí)體。
(3)測試用例是測試工作的指導(dǎo),是軟件測試的必須遵守的準(zhǔn)則,更是軟件測試質(zhì)量穩(wěn)定的根本保障

1.2.2.測試用例的特征:

1、正確性:測試用例最好是要求輸入用戶實(shí)際數(shù)據(jù)已驗(yàn)證系統(tǒng)是否滿足需求規(guī)格說明書的需求,并且測試用例中的測試的應(yīng)保證至少覆蓋需求規(guī)格說明書中的各項(xiàng)功能。
2、完整性:一些基本功能,如有遺漏,那是不可原諒的。
3、準(zhǔn)確:按測試用例輸入實(shí)施測試后,要能根據(jù)測試用例描述的輸出得出正確的結(jié)論,不能出現(xiàn)模糊不清的語言。
4、清晰、簡潔:好的測試用例描述清晰,每一步都應(yīng)有相應(yīng)的作用,有很強(qiáng)的的針對性,不應(yīng)出現(xiàn)一些無用的操作步驟。
5、可維護(hù)性:由于軟件開發(fā)過程中需求變更等原因的影響,常常對測試用例進(jìn)行修改、增加、刪除等,以便測試用符合相應(yīng)測試要求。
6、適應(yīng)性:測試用例應(yīng)該適合特定的測試環(huán)境以及符合整個(gè)團(tuán)隊(duì)的測試水平。
7、可重復(fù)性:要求不同測試者在同樣的測試環(huán)境下使用同樣測試用例都能得出相應(yīng)結(jié)論。
8、可追溯性、可移植性

1.3.編寫測試用例的好處

1.1.3.測試用例的作用:

在開始實(shí)施測試之前設(shè)計(jì)好測試用例,可以避免盲目測試并提高測試效率。
測試用例的使用令軟件測試的實(shí)施重點(diǎn)突出、目的明確。
在軟件版本更新后只需修正少部分的測試用例便可展開測試工作,降低工作強(qiáng)度、縮短項(xiàng)目周期。
檢驗(yàn)軟件是否滿足客戶需求、體現(xiàn)一個(gè)測試人員的工作量、展現(xiàn)測試用例的設(shè)計(jì)思路
功能模塊的通用化和復(fù)用化使軟件易于開發(fā),而相對于功能模塊的測試用例的通用化和復(fù)用化則會(huì)使軟件測試易于開展,并隨著測試用例的不斷精化其效率也不斷攀升。

2.需求分析

2.1.什么是需求?

客戶的需要的東西以及對東西的要求

2.2.需求的種類有什么?

  1. 用戶需求:關(guān)注系統(tǒng)是否滿足用戶習(xí)慣
  2. 行業(yè)業(yè)務(wù)需求(界面提示信息為行業(yè)術(shù)語,處理和操作模式為行業(yè)從業(yè)人員習(xí)慣模式等)
  3. 實(shí)際使用環(huán)境需求(網(wǎng)絡(luò)帶寬,速率,斷電數(shù)據(jù)備份,軟件部署設(shè)置等)
  4. 操作使用需求(類似快捷鍵,緊急關(guān)閉,數(shù)據(jù)恢復(fù)保護(hù),回退機(jī)制,安裝兼容性,語言環(huán)境等)
  5. 用戶需求引發(fā)的測試需求(按軟件測試質(zhì)量模型進(jìn)行劃分)
  6. 功能需求:關(guān)注系統(tǒng)是否滿足功能要求

3.測試用例的設(shè)計(jì)方法和編寫

3.1.如何設(shè)計(jì)測試用例?

對各個(gè)功能模塊進(jìn)行測試點(diǎn)分析提取測試點(diǎn)再對測試點(diǎn)進(jìn)行用例編寫
比如對PC端QQ賬號(hào)的登錄模塊,提取測試點(diǎn)就有:


image.png

①正常登陸 ②賬號(hào)為空時(shí)點(diǎn)擊登錄 ③密碼為空時(shí)點(diǎn)擊登錄 ④賬號(hào)密碼都為空時(shí)點(diǎn)擊 登錄 ⑤密碼錯(cuò)誤時(shí)點(diǎn)擊登錄 ⑥找回密碼功能是否有效 ⑦記住密碼功能是否有效 ⑧ 自動(dòng)登錄功能是否有效9 多個(gè)qq號(hào)登錄10.二維碼掃描登錄

3.2.編寫測試用例該注意什么?

  • 根據(jù)產(chǎn)品規(guī)格,測試基本功能;
  • 考慮設(shè)計(jì)一般用戶(非專業(yè)人員)的使用方案;
  • 考慮設(shè)計(jì)稀有或特殊的使用方案;
  • 與系統(tǒng)其他組成部分的配合(如FAX和上網(wǎng)可能要用到MODEM,?測試中考慮對設(shè)- 備的共享);
  • 考慮特殊情況(如內(nèi)存和硬件的沖突等);
  • 設(shè)計(jì)極端情況(如內(nèi)存泄漏、破壞性測試等);
  • 好的測試用例集能花費(fèi)最小的代價(jià)(人力、物力、財(cái)力、時(shí)間)做最好的測試。

3.3.測試用例的4個(gè)特性

  • 代表性:能夠代表并覆蓋各種合理的和不合理、合法的和不合法的、邊界的和越界的以及極限的輸入數(shù)據(jù)、操作等。
  • 針對性:對程序中的可能存在的錯(cuò)誤有針對性地測試
  • 可判定性:測試執(zhí)行結(jié)果的正確性是可判定的,每一個(gè)測試用例都應(yīng)有相應(yīng)的期望結(jié)果
  • 可重現(xiàn)性:對同樣的測試用例,系統(tǒng)的執(zhí)行結(jié)果應(yīng)當(dāng)是相同的。
    第一個(gè)數(shù)字 和 第二個(gè)數(shù)字都為 0-10 之間的數(shù) 計(jì)算結(jié)果
    ? + ? = ?

1-10 1 -10 正向測試用例
反向

3.4.測試用例通常包括以下幾個(gè)組成元素:

測試用例編號(hào) 測試用例名稱 測試用例設(shè)計(jì)者 軟件版本號(hào) 測試目的
參考信息 測試環(huán)境 輸入數(shù)據(jù) 操作步驟 預(yù)期結(jié)果 測試結(jié)果 測試功能模塊

3.5.測試用例示例

image.png

image.png

筆試題: 你用到的測試方法/測試策略有哪些?
等價(jià)類劃分 邊界值 因果圖 場景法 正交表

4.編寫測試用例的基本方法

4.1.等價(jià)類劃分法

1.1.4.概念

等價(jià)類劃分是把所有可能輸入的數(shù)據(jù)分為若干個(gè)區(qū)域,然后從每個(gè)區(qū)域中取少量有代表性的數(shù)據(jù)進(jìn)行測試即可。
等價(jià)類 :何為等價(jià)類,某個(gè)輸入域的集合,在這個(gè)集合中每個(gè)輸入條件都是等效的。
一般可分為有效等價(jià)類和無效等價(jià)類

比如:在一個(gè)系統(tǒng)中,填寫一個(gè)多少歲的未成年人數(shù)學(xué)考了多少分(假設(shè)成年人年齡為x,0<x<=18,數(shù)學(xué)成績?yōu)閥:0<=y<=100
那么年齡按照等價(jià)類劃分可分為x<0,0<x<=18,x>18,有效等價(jià)類是0<x<=18,無效等價(jià)類是x<0,x>18
數(shù)學(xué)成績按照等價(jià)類劃分可分為y<0,0<=y<=100,y>100,有效等價(jià)類是0<=y<=100,無效等價(jià)類是y<0,y>100

1.1.5.示例

計(jì)算兩個(gè)1~100之間整數(shù)的和。
如果要進(jìn)行完全測試,一共要設(shè)計(jì)多少個(gè)測試用例呢?
加數(shù)1有1~100共計(jì)100個(gè)取值,加數(shù)2也有1~100共計(jì)100個(gè)取值,所以他們之間的組合就有100*100=10000種組合可能,但這只是測試了正常范圍內(nèi)的取值。如果用戶輸入的數(shù)據(jù)不在1~100之間呢,窮舉測試肯定不可能的。由此引入了等價(jià)類劃分思想。
等價(jià)類劃分為:
有效等價(jià)類:指符合《需求規(guī)格說明書》,輸入合理的數(shù)據(jù)集合
無效等價(jià)類:指不符合《需求規(guī)格說明書》,輸入不合理的數(shù)據(jù)集合


image.png

我們將輸入域分成了一個(gè)有效等價(jià)類(1~100)和兩個(gè)無效等價(jià)類(<1和>100),并為每一個(gè)等價(jià)類進(jìn)行編號(hào),然后我們就可以從每一個(gè)等價(jià)類中選取一個(gè)代表性的數(shù)據(jù)來測試,設(shè)計(jì)如下表所示的測試用例


image.png

在任意文本輸入框中可以填寫的 字符類型 中文 英文 特殊符號(hào) 空格 數(shù)字
1.1.6.練習(xí)案例:
image.png

劃分等價(jià)類并編號(hào),下表為等價(jià)類劃分的結(jié)果


image.png

4.2.邊界值法

定義:邊界值分析是取稍高于或稍低于邊界的一些數(shù)據(jù)進(jìn)行測試。
原因:程序開發(fā)循環(huán)體時(shí)的取數(shù)可能會(huì)因?yàn)?lt;,<=搞錯(cuò)。
比如下面代碼:

//有效等價(jià)劃分    -1   0    100  101  
for(int i = 0;i <100; i ++) {   
  int j = i+1;
  System.out.println("循環(huán)第“+j+"次")//循環(huán)地做某件事情
}

這里的程序是循環(huán)了100次,所以會(huì)做100次;
如果程序員不小心,把i <100寫成i <= 100,則會(huì)溢出,這時(shí)候邊界值檢查是一個(gè)很好的測試方法。
比如:在一個(gè)系統(tǒng)中,填寫一個(gè)多少歲的成年人數(shù)學(xué)考了多少分(假設(shè)成年人年齡為x,0<x<=18,數(shù)學(xué)成績?yōu)閥:0<=y<=100
根據(jù)上面的等價(jià)類劃分法我們可知,年齡的有效等價(jià)類是0<x<=18,所以邊界值就是0,1,18,19
數(shù)學(xué)成績的,有效等價(jià)類是0<=y<=100,所以邊界值就是-1,0,100,101

對數(shù)據(jù)進(jìn)行軟件測試,就是在檢查用戶輸入的信息、返回的結(jié)果以及中間計(jì)算結(jié)果是否正確。即使最簡單的程序要處理的數(shù)據(jù)量也可能極大,使這些數(shù)據(jù)得以測試的技巧是,根據(jù)一些關(guān)鍵的原則進(jìn)行等價(jià)類的劃分,以合理減少測試用例,這些關(guān)鍵的原則是:邊界條件,次邊界條件、空值和無效數(shù)據(jù)。

1.1.7.確定邊界值的方法()
  • 確定邊界情況(輸入或輸出等價(jià)類的邊界)
  • 選取正好等于、剛剛大于或剛剛小于邊界值作為測試數(shù)據(jù)
    輸入要求是1 ~ 100之間的整數(shù),因此自然產(chǎn)生了1和100兩個(gè)邊界,我們在設(shè)計(jì)測試用例的時(shí),要重點(diǎn)考慮這兩個(gè)邊界問題。
    image.png

    注明:邊界值不是從每個(gè)等價(jià)類中挑一個(gè)作為代表,而是把每個(gè)等價(jià)類的邊界都進(jìn)行測試。

4.3. 因果圖法

1.1.8.概念

因果圖法比較適合輸入條件比較多的情況,測試所有的輸入條件的排列組合。所謂的原因就是輸入,所謂的結(jié)果就是輸出。

1.1.9. 因果圖基本圖形符號(hào)

恒等:若原因出現(xiàn),則結(jié)果出現(xiàn);若原因不出現(xiàn),則結(jié)果不出現(xiàn)。
非(~):若原因出現(xiàn),則結(jié)果不出現(xiàn);若原因不出現(xiàn),則結(jié)果出現(xiàn)。
或(∨):若幾個(gè)原因中有一個(gè)出現(xiàn),則結(jié)果出現(xiàn);若幾個(gè)原因都不出現(xiàn),則結(jié)果不出現(xiàn)。
與(∧):若幾個(gè)原因都出現(xiàn),結(jié)果才出現(xiàn);若其中有一個(gè)原因不出現(xiàn),則結(jié)果不出現(xiàn)。


image.png
1.1.10.因果圖的約束符號(hào)

E(互斥):表示兩個(gè)原因不會(huì)同時(shí)成立,兩個(gè)中最多有一個(gè)可能成立
I(包含):表示三個(gè)原因中至少有一個(gè)必須成立
O(惟一):表示兩個(gè)原因中必須有一個(gè),且僅有一個(gè)成立
R(要求):表示兩個(gè)原因,a出現(xiàn)時(shí),b也必須出現(xiàn),a出現(xiàn)時(shí),b不可能不出現(xiàn)
M(屏蔽):兩個(gè)結(jié)果,a為1時(shí),b必須是0,當(dāng)a為0時(shí),b值不定


image.png
1.1.11.因果圖測試用例

例如:有一個(gè)處理單價(jià)為2.5元的盒裝飲料的自動(dòng)售貨機(jī)軟件。若投入2.5元硬幣,按“可樂”、“啤酒”、或“奶茶”按鈕,相應(yīng)的飲料就送出來。若投入的是3元硬幣,在送出飲料的同時(shí)退還5角硬幣。

分析這一段說明,我們可列出原因和結(jié)果
原因(輸入):
投入2.5元硬幣;
投入3元;
按“可樂”按鈕;
按“啤酒”按鈕;
按“奶茶”按鈕。
中間狀態(tài): ① 已投幣;②已按鈕
結(jié)果(輸出):
退還5角硬幣;
送出“可樂”飲料;
送出“啤酒”飲料;
送出“奶茶”飲料;


image.png

判定表法


image.png

image.png

4.4.場景法

4.4.1. 場景法基本原理

原理:

  • 現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的。測試時(shí),可以比較生動(dòng)地描繪出事件觸發(fā)時(shí)的情景,有利于測試設(shè)計(jì)者設(shè)計(jì)測試用例,同時(shí)使測試用例更容易理解和執(zhí)行。

  • 基本流:軟件功能按照正確的事件流實(shí)現(xiàn)的一條正確的流程。

  • 備選流:除了基本流之外的各支流,包含多種不容情況。


    image.png

    如圖所示,圖中經(jīng)過用例的每條路徑都用基本流和備選流來表示,直黑線表示基本流,是經(jīng)過用例的最簡單的路徑。備選流用不同的色彩表示,一個(gè)備選流可能從基本流開始,在某個(gè)特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和3);也可能起源于另一個(gè)備選流(如備選流2),或者終止用例而不再重新加入到某個(gè)流(如備選流2和4)。

  • 場景模板
    遵循上圖中每個(gè)經(jīng)過用例的可能路徑,可以確定不同的用例場景。從基本流開始,再將基本流和備選流結(jié)合起來,可以確定以下用例場景:
    場景 1 基本流
    場景 2 基本流 備選流 1
    場景 3 基本流 備選流 1 備選流 2
    場景 4 基本流 備選流 3
    場景 5 基本流 備選流 3 備選流 1
    場景 6 基本流 備選流 3 備選流 1 備選流 2
    場景 7 基本流 備選流 4
    場景 8 基本流 備選流 3 備選流 4
    注:為方便起見,場景 5、6 和 8 只描述了備選流 3 指示的循環(huán)執(zhí)行一次的情況。

  • 注意

  1. 場景中必須有基本流
  2. 場景中必須有內(nèi)容從用例開始,到用例結(jié)束。
4.4.2. 銀行案例ATM

個(gè)人標(biāo)識(shí)號(hào) (PIN=personal identification number ),用于保護(hù)智能卡免受誤用的秘密標(biāo)識(shí)代碼。PIN 與密碼類似,只有卡的所有者才知道該 PIN。只有擁有該智能卡并知道 PIN 的人才能使用該智能卡


流.png
image.png

第一次測試中,根據(jù)測試計(jì)劃,我們需要核實(shí)提款用例已經(jīng)正確地實(shí)施。此時(shí)尚未實(shí)施整個(gè)用例,只實(shí)施了下面的事件流:
基本流-提取預(yù)設(shè)金額(100 元、200元、500元、1000元)
備選流2 - ATM 內(nèi)沒有現(xiàn)金
備選流3 - ATM 內(nèi)現(xiàn)金不足
備選流4 - PIN 有誤
備選流5 - 帳戶不存在/帳戶類型有誤
備選流6 - 帳面金額不足

image.png

對于這7個(gè)場景中的每一個(gè)場景都需要確定測試用例。可以采用矩陣或決策表來確定和管理測試用例。
從確定執(zhí)行用例場景所需的數(shù)據(jù)元素入手構(gòu)建矩陣。然后,對于每個(gè)場景,至少要確定包含執(zhí)行場景所需的適當(dāng)條件的測試用例。
下面顯示了一種通用格式,其中各行代表各個(gè)測試用例,而各列則代表測試用例的信息。
本示例中,對于每個(gè)測試用例,存在一個(gè)測試用例ID、條件(或說明)、測試用例中涉及的所有數(shù)據(jù)元素(作為輸入或已經(jīng)存在于數(shù)據(jù)庫中)以及預(yù)期結(jié)果。
image.png

4.4.3. 設(shè)計(jì)用例步驟
  1. 根據(jù)說明,描述出程序的基本流和各項(xiàng)備選流
  2. 根據(jù)基本流和各項(xiàng)備選流生成不同的場景
  3. 對每一個(gè)場景生成響應(yīng)的測試用例
  4. 對生成的所有測試用例重新復(fù)審,去掉多余的測試用例
  5. 測試用例確定后,對每一個(gè)測試用例確定測試數(shù)據(jù)值
    注意:
  6. 場景法使用與解決業(yè)務(wù)流程清晰的系統(tǒng)或功能。
  7. 每一個(gè)場景,都是一個(gè)測試用例。

4.5.錯(cuò)誤推測法

錯(cuò)誤猜測法是測試經(jīng)驗(yàn)豐富的人喜歡使用的一種測試用例設(shè)計(jì)方法。
一般這種方法是基于經(jīng)驗(yàn)和直覺推測程序中可能發(fā)送的各種錯(cuò)誤,有針對性地設(shè)計(jì)。只能作為一種補(bǔ)充。

例如,測試手機(jī)終端的通話功能,可以設(shè)計(jì)各種通話失敗的情況來補(bǔ)充測試用 例:

  1. 無SIM 卡插入時(shí)進(jìn)行呼出(非緊急呼叫)
  2. 插入已欠費(fèi)SIM卡進(jìn)行呼出
  3. 射頻器件損壞或無信號(hào)區(qū)域插入有效SIM卡呼出
  4. 網(wǎng)絡(luò)正常,插入有效SIM卡,呼出無效號(hào)碼(如1、888、333333、不輸入任何號(hào)碼等)
  5. 網(wǎng)絡(luò)正常,插入有效SIM卡,使用“快速撥號(hào)”功能呼出設(shè)置無效號(hào)碼的數(shù)字

技巧:最重要的是要思考和分析測試對象的各個(gè)方面,多參考以前發(fā)現(xiàn)的bug的相關(guān)數(shù)據(jù),總結(jié)的經(jīng)驗(yàn),個(gè)人多考慮異常的情況、反面的情況、特殊的輸入,以一個(gè)攻擊者的態(tài)度對待程序,就能設(shè)計(jì)出比較完善的測試用例來。

4.6.正交表法

  1. 概述
  • 日本人提出
  • 使用工具:正交表
  • 正交實(shí)驗(yàn)法就是利用排列整齊的表 -正交表來對試驗(yàn)進(jìn)行整體設(shè)計(jì)、綜合比較、統(tǒng)計(jì)分析,實(shí)現(xiàn)通過少數(shù)的實(shí)驗(yàn)次數(shù)找到較好的生產(chǎn)條件,以達(dá)到最高生產(chǎn)工藝效果。
  • 這種試驗(yàn)設(shè)計(jì)法是從大量的試驗(yàn)點(diǎn)中挑選適量的具有代表性的點(diǎn),利用已經(jīng)造好的表格—正交表來安排試驗(yàn)并進(jìn)行數(shù)據(jù)分析的方法。
  • 正交表能夠在因素變化范圍內(nèi)均衡抽樣,使每次試驗(yàn)都具有較強(qiáng)的代表性,由于正交表具備均衡分散的特點(diǎn),保證了全面實(shí)驗(yàn)的某些要求,這些試驗(yàn)往往能夠較好或更好的達(dá)到實(shí)驗(yàn)的目的。
  • 正交實(shí)驗(yàn)設(shè)計(jì)包括兩部分內(nèi)容:第一,是怎樣安排實(shí)驗(yàn);第二,是怎樣分析實(shí)驗(yàn)結(jié)果。
  1. 應(yīng)用場景
    在一個(gè)界面中有多個(gè)控件,每個(gè)控件有多個(gè)取值,控件之間可以相互組合,不可能(也沒有必要)為每一種組合編寫一條用例,如何使用最少最優(yōu)的組合進(jìn)行測試。——正交排列法

  2. 判定表
    因果圖也是考慮控件組合,但是組合數(shù)量較少(一般不會(huì)超過20中)
    公式:Ln(mk)
    k是表的列數(shù),表示控件的個(gè)數(shù)(因數(shù)個(gè)數(shù))
    m是每個(gè)控件的取值個(gè)數(shù)(因數(shù)水平)
    n是表的行數(shù),也就是需要測試組合的次數(shù)
    正交表查詢地址:https://www.york.ac.uk/depts/maths/tables/orthogonal.htm
    正交排列法:http://support.sas.com/techsup/technote/ts723_Designs.txt

    image.png

    image.png

  3. 使用正交設(shè)計(jì)助手
    (1)下載解壓正交設(shè)計(jì)助手
    (2)文件新建工程
    (3)實(shí)驗(yàn)新建實(shí)驗(yàn)
    ①實(shí)驗(yàn)說明

    實(shí)驗(yàn)說明.png

    ②選擇正交表
    選擇正交表.png

    ③因素與水平
    因素與水平.png

    ④確定
    結(jié)果.png

  • 正交表測試用例設(shè)計(jì)方法的特點(diǎn)是什么?
    1、用最少的實(shí)驗(yàn)覆蓋最多的操作,測試用例設(shè)計(jì)很少,效率高,但是很復(fù)雜;
    2、對于基本的驗(yàn)證功能,以及二次集成引起的缺陷,一般都能找出來;但是更深的缺陷,更復(fù)雜的缺陷,還是無能為力 的;
    3、體的環(huán)境下,正交表一般都很難做的。大多數(shù),只在系統(tǒng)測試的時(shí)候使用此方法。

5. 測試用例的評(píng)審和變更

(1)變更背景
測試用例并非一成不變。如果軟件修改之后發(fā)生變化,或者需求發(fā)生變更,那么測試用例便不再滿足當(dāng)前版本軟件的測試需求,由此需要進(jìn)行修改和變更操作。
(2)測試用例評(píng)審
首先要清楚評(píng)審的定義,是測試組內(nèi)部的評(píng)審,還是項(xiàng)目組內(nèi)部的評(píng)審。評(píng)審的定義不同,內(nèi)容也不會(huì)相同。

  • 如果是測試組內(nèi)部的評(píng)審,應(yīng)該著重于:
  1. 測試用例本身的描述是否清晰,是否存在二義性;
  2. 是否考慮到測試用例的執(zhí)行效率.往往測試用例中步驟不斷重復(fù)執(zhí)行,驗(yàn)證點(diǎn)卻不同,而且測試設(shè)計(jì)的冗余性,都造成了效率的低下;
  3. 是否針對需求跟蹤矩陣,覆蓋了所有的軟件需求;
  4. 是否完全遵守了軟件需求的規(guī)定。這并不一定的,因?yàn)榧词乖賴?yán)格的評(píng)審,也會(huì)出現(xiàn)錯(cuò)誤,應(yīng)具體情況具體對待。
  • 如果是項(xiàng)目組內(nèi)部的評(píng)審,也就需要評(píng)審委員會(huì)來做了,角度不同,評(píng)審的標(biāo)準(zhǔn)也不同。比如收集客戶需求的人員注重你的業(yè)務(wù)邏輯是否正確,分析軟件需求規(guī)格的人注重你的用例是否跟規(guī)格要求一致,開發(fā)負(fù)責(zé)人會(huì)注重你的用例中對程序的要求是否合理。

測試用例的評(píng)審能夠使用例的結(jié)構(gòu)更清晰,覆蓋的用戶場景更全面對于測試工程師來說也是一個(gè)快速提高用例設(shè)計(jì)能力的過程。
1、需要評(píng)審的原因
測試用例是軟件測試的準(zhǔn)則,但它并不是一經(jīng)編制完成就成為準(zhǔn)則。由于用例開發(fā)人員的設(shè)計(jì)經(jīng)驗(yàn)和對需求理解的深度各不相同,所以用例的質(zhì)量難免會(huì)有不同程度的差異。

2、進(jìn)行評(píng)審的時(shí)機(jī)
一般會(huì)有兩個(gè)時(shí)間點(diǎn)。第一,是在用例的初步設(shè)計(jì)完成之后進(jìn)行評(píng)審第二是在整個(gè)詳細(xì)用例全部完成之后進(jìn)行二次評(píng)審。如果項(xiàng)目時(shí)間比較緊張,盡可能保證對用例設(shè)計(jì)進(jìn)行評(píng)審,提前發(fā)現(xiàn)其中的不足之處。
3、參與評(píng)審人員
這里會(huì)分為多個(gè)級(jí)別進(jìn)行評(píng)審。
1)部門評(píng)審,測試部門全體成員參與的評(píng)審。
2)公司評(píng)審,這里包括了項(xiàng)目經(jīng)理、需求分析人員、架構(gòu)設(shè)計(jì)人員、開發(fā)人員和測試人員。
3)客戶評(píng)審,包括了客戶方的開發(fā)人員和測試人員。這種情況在外包公司比較常見。

4、評(píng)審內(nèi)容
評(píng)審的內(nèi)容有以下幾個(gè)方面
1)用例設(shè)計(jì)的結(jié)構(gòu)安排是否清晰、合理,是否利于高效對需求進(jìn)行覆蓋。
2)優(yōu)先極安排是否合理。
3)是否覆蓋測試需求上的所有功能點(diǎn)。
4)用例是否具有很好可執(zhí)行性。例如用例的前提條件、執(zhí)行步驟、輸入數(shù)據(jù)和期待結(jié)果是否清晰、正確期待結(jié)果是否有明顯的驗(yàn)證方法。
5)是否已經(jīng)刪除了冗余的用例。
6)是否包含充分的負(fù)面測試用例。充分的定義,如果在這里使用2&8法則,那就是4倍于正面用例的數(shù)量,畢竟一個(gè)健壯的軟件,其中80%的代碼都是在"保護(hù)"20%的功能實(shí)現(xiàn)。
7)是否從用戶層面來設(shè)計(jì)用戶使用場景和使用流程的測試用例。
8)是否簡潔,復(fù)用性強(qiáng)。例如,可將重復(fù)度高的步驟或過程抽取出來定義為一些可復(fù)用標(biāo)準(zhǔn)步驟。

個(gè)人認(rèn)為,一個(gè)"健康"的測試用例至少要通過前5個(gè)標(biāo)準(zhǔn)。

5、評(píng)審的方式
1)召開評(píng)審會(huì)議。與會(huì)者在設(shè)計(jì)人員講解之后給出意見和建議,同時(shí)進(jìn)行詳細(xì)的評(píng)審記錄。
2)通用郵件與相關(guān)人員溝通
3)通用IM工具直接與相關(guān)人員交流
方式只是手段,得到其它人員對于用例的反饋信息才是目的。
無論采用那種方式,都應(yīng)該在溝通之前把用例設(shè)計(jì)的相關(guān)文檔發(fā)送給對方進(jìn)行前期的學(xué)習(xí)和了解,以節(jié)省溝通成本。

6、評(píng)審結(jié)束標(biāo)準(zhǔn)
在評(píng)審活動(dòng)中會(huì)收集到用例的反饋信息,在此基礎(chǔ)上進(jìn)行用例更新,直到通過評(píng)審。

6. 測試用例基本思路

QQ郵箱登錄模塊

QQ郵箱登錄.png

(1)登錄模塊的需求文檔
賬號(hào):由3~18位英文字符、數(shù)字、點(diǎn)、減號(hào)、下劃線組成
密碼:由6-18位,不能為空,至少包含英文、數(shù)字、符號(hào)中的兩種
(2)基本功能測試點(diǎn)分析
根據(jù)需求圖看到QQ郵箱登錄界面主要有賬號(hào)的密碼組成,同樣可以使用正交表分析法來設(shè)計(jì)。

用戶名 賬號(hào)
正確 正確
正確 錯(cuò)誤
錯(cuò)誤 正確
錯(cuò)誤 錯(cuò)誤
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,983評(píng)論 6 537
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,772評(píng)論 3 422
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,947評(píng)論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,201評(píng)論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,960評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,350評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,406評(píng)論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,549評(píng)論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,104評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,914評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,089評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,647評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,340評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,753評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,007評(píng)論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,834評(píng)論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,106評(píng)論 2 375

推薦閱讀更多精彩內(nèi)容

  • 資料來源:軟件構(gòu)造PPT 軟件測試與測試優(yōu)先 PART Ⅰ 測試相關(guān)知識(shí)點(diǎn) Q:為什么要測試? 測試能夠發(fā)現(xiàn)程序中...
    icey_J閱讀 966評(píng)論 0 1
  • 關(guān)鍵詞:等價(jià)類劃分法 邊界值分析法 因果圖法 判定表驅(qū)動(dòng)分析法 場景法 一、等價(jià)類劃分法 (1...
    Jeff_9021閱讀 1,803評(píng)論 0 2
  • 寫好測試用例的關(guān)鍵 /寫好用例要關(guān)注的維度 1.覆蓋用戶的需求; 2.從用戶使用場景出發(fā),考慮用戶的各種正常和異常...
    南方小鎮(zhèn)_閱讀 942評(píng)論 0 0
  • 久違的晴天,家長會(huì)。 家長大會(huì)開好到教室時(shí),離放學(xué)已經(jīng)沒多少時(shí)間了。班主任說已經(jīng)安排了三個(gè)家長分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,544評(píng)論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會(huì),身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,594評(píng)論 0 11