測(cè)試計(jì)劃和測(cè)試用例

測(cè)試計(jì)劃和測(cè)試用例

1.測(cè)試計(jì)劃及缺陷管理

1.1.測(cè)試計(jì)劃

測(cè)試計(jì)劃是在測(cè)試設(shè)計(jì)階段,在需求規(guī)格說明書的基礎(chǔ)上制定的文檔。

測(cè)試計(jì)劃包括測(cè)試資源、測(cè)試過程策劃、評(píng)價(jià)方法以及測(cè)試進(jìn)度安排等,是整個(gè)測(cè)試項(xiàng)目實(shí)施的依據(jù)。

1.2.BUG生命周期

1.3.BUG分類

1.1.1.按照嚴(yán)重程度分:

一般分為5個(gè)等級(jí):

系統(tǒng)崩潰,嚴(yán)重,一般,次要,建議

1.1.2.按優(yōu)先級(jí)分:

修正優(yōu)先級(jí):高,中,低

1.1.3.按照測(cè)試種類分:

邏輯功能類,性能類,界面類,易用性類,兼容性類

1.1.4.按照功能模塊分:

1.1.5.按照解決方案分

1.1.6.按照Bug生命周期分

新建,確認(rèn),解決,關(guān)閉,重新打開

1.4.缺陷報(bào)告

1.1.7.缺陷報(bào)告注意事項(xiàng)

確保重現(xiàn)bug

要用最少并且必要的步驟描述bug

簡(jiǎn)潔準(zhǔn)確完整

一個(gè)bug一個(gè)報(bào)告

1.5.Bug的處理流程

1.1.8.最簡(jiǎn)單的流程

1.1.9.Bug重新打開

有些bug是可以重新打開,死而復(fù)生的,所以有些公司流程是

1.1.10.判斷是否是bug

如果測(cè)試人員認(rèn)為是bug,而開發(fā)人員認(rèn)為不是bug,那么到底是不是需要進(jìn)行商議,如果是的話,就進(jìn)行解決,不是的話直接關(guān)閉。

1.1.11.推遲處理bug

有些bug優(yōu)先級(jí)較低,可以延遲修復(fù),或者干脆推遲到下個(gè)版本進(jìn)行修復(fù)

1.1.12.微軟bug流程案例

2.測(cè)試用例的概念和作用

如何以最少的人力、資源投入,在最短的時(shí)間內(nèi)完成測(cè)試,發(fā)現(xiàn)軟件系統(tǒng)的缺陷,保證軟件的優(yōu)良品質(zhì),則是軟件公司探索和追求的目標(biāo)。

測(cè)試用例是測(cè)試工作的指導(dǎo),是軟件測(cè)試的必須遵守的準(zhǔn)則,更是軟件測(cè)試質(zhì)量穩(wěn)定的根本保障。

對(duì)一個(gè)測(cè)試工程師來說,測(cè)試用例的設(shè)計(jì)編寫是一項(xiàng)必須掌握的能力,但有效的設(shè)計(jì)和熟練的編寫測(cè)試用例卻是一個(gè)十分復(fù)雜的技術(shù),測(cè)試用例編寫者不僅要掌握軟件測(cè)試技術(shù)和流程,而且要對(duì)整個(gè)軟件不管從業(yè)務(wù),還是對(duì)軟件的設(shè)計(jì)、程序模塊的結(jié)構(gòu)、功能規(guī)格說明等都要有透徹的理解。

測(cè)試的設(shè)計(jì)方法不是單獨(dú)存在的,具體到每個(gè)測(cè)試項(xiàng)目里都有很多種方法,每種類型都有各自的特點(diǎn)。

1.1.1.測(cè)試用例的定義:

(1)測(cè)試用例是為達(dá)到最佳的測(cè)試效果或高效的揭露隱藏的錯(cuò)誤而精心設(shè)計(jì)的少量測(cè)試數(shù)據(jù),包括測(cè)試輸入、執(zhí)行條件和預(yù)期的結(jié)果。

(2)測(cè)試用例是執(zhí)行的最小實(shí)體。

測(cè)試用例的特征:

(1)最有可能抓住錯(cuò)誤的;

(2)不是重復(fù)的、多余的;

(3)一組相似測(cè)試用例中最有效的;

(4)既不是太簡(jiǎn)單,也不是太復(fù)雜。

測(cè)試用例的步驟一般不超過7步。

2.1.編寫測(cè)試用例的好處:

在開始實(shí)施測(cè)試之前設(shè)計(jì)好測(cè)試用例,可以避免盲目測(cè)試并提高測(cè)試效率。

測(cè)試用例的使用令軟件測(cè)試的實(shí)施重點(diǎn)突出、目的明確。在軟件版本更新后只需修正少部分的測(cè)試用例便可展開測(cè)試工作,降低工作強(qiáng)度、縮短項(xiàng)目周期。

功能模塊的通用化和復(fù)用化使軟件易于開發(fā),而相對(duì)于功能模塊的測(cè)試用例的通用化和復(fù)用化則會(huì)使軟件測(cè)試易于開展,并隨著測(cè)試用例的不斷精化其效率也不斷攀升。

2.2.測(cè)試用例的代表性

? ? 能夠代表并覆蓋各種合理的和不合理的、合法的和非法的、邊界的和越界的以及極限的輸入數(shù)據(jù)、操作和環(huán)境設(shè)置等。

測(cè)試結(jié)果的可判定性

? ? 即測(cè)試執(zhí)行結(jié)果的正確性是可判定的,每一個(gè)測(cè)試用例都應(yīng)有相應(yīng)的期望結(jié)果。

測(cè)試結(jié)果的可再現(xiàn)性

即對(duì)同樣的測(cè)試用例,系統(tǒng)的執(zhí)行結(jié)果應(yīng)當(dāng)是相同的。

3.設(shè)計(jì)測(cè)試用例

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

根據(jù)產(chǎn)品規(guī)格,測(cè)試基本功能;

考慮設(shè)計(jì)一般用戶(非專業(yè)人員)的使用方案;

考慮設(shè)計(jì)稀有或特殊的使用方案;

與系統(tǒng)其他組成部分的配合(如FAX和上網(wǎng)可能要用到MODEM,測(cè)試中考慮對(duì)設(shè)備的共享);

考慮特殊情況(如內(nèi)存和硬件的沖突等);

設(shè)計(jì)極端情況(如內(nèi)存泄漏、破壞性測(cè)試等);

好的測(cè)試用例,能花費(fèi)最小的代價(jià)(人力、物力、財(cái)力、時(shí)間)做最好的測(cè)試。

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

代表性:能夠代表并覆蓋各種合理的和不合理、合法的和不合法的、邊界的和越界的以及極限的輸入數(shù)據(jù)、操作等。

針對(duì)性:對(duì)程序中的可能存在的錯(cuò)誤有針對(duì)性地測(cè)試

可判定性:測(cè)試執(zhí)行結(jié)果的正確性是可判定的,每一個(gè)測(cè)試用例都應(yīng)有相應(yīng)的期望結(jié)果

可重現(xiàn)性:對(duì)同樣的測(cè)試用例,系統(tǒng)的執(zhí)行結(jié)果應(yīng)當(dāng)是相同的。

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

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

3.4.測(cè)試用例示例

4.編寫測(cè)試用例的基本方法

功能測(cè)試,測(cè)試用例設(shè)計(jì)方法

等價(jià)類劃分法、邊界值法、場(chǎng)景法、因果圖法、判定表法、錯(cuò)誤推測(cè)法

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

1.1.13.概念

( 所謂等價(jià)類,是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分為若干子集,然后從每一個(gè)子集中,選取少數(shù)具有代表性的數(shù)據(jù)作為測(cè)試用例。等價(jià)類分為有效等價(jià)類和無效等價(jià)類。有效等價(jià)類是對(duì)程序有效的輸入,無效等價(jià)類是其他任何可能的輸入。有效等價(jià)類和無效等價(jià)類是用等價(jià)類劃分法設(shè)計(jì)測(cè)試用例時(shí)必須的,在測(cè)試程序時(shí),程序既能接受正確的輸入,對(duì)無效的輸入應(yīng)該做出相應(yīng)判斷。)

等價(jià)類劃分是指分步驟地把海量(無限)的測(cè)試用例減得很小,但過程同樣有效。

等價(jià)類 :何為等價(jià)類,某個(gè)輸入域的集合,在這個(gè)集合中每個(gè)輸入條件都是等效的,如果其中一個(gè)的輸入不能導(dǎo)致問題發(fā)生,那么集合中其它輸入條件進(jìn)行測(cè)試也不可能發(fā)現(xiàn)錯(cuò)誤。

在尋找等價(jià)劃分時(shí),考慮把軟件具有相似輸入、相似輸出、相似操作的分在一組。這些組就是等價(jià)劃分。

1.1.14.示例

計(jì)算兩個(gè)1~100之間整數(shù)的和。

? ? 如果要進(jìn)行完全測(cè)試,一共要設(shè)計(jì)多少個(gè)測(cè)試用例呢?

? ? 加數(shù)1有1~100共計(jì)100個(gè)取值,加數(shù)2也有1~100共計(jì)100個(gè)取值,所以他們之間的組合就有100*100=10000種組合可能,但這只是測(cè)試了正常范圍內(nèi)的取值。如果用戶輸入的數(shù)據(jù)不在1~100之間呢,窮舉測(cè)試肯定不可能的。由此引入了等價(jià)類劃分思想。

等價(jià)類劃分為:

有效等價(jià)類:指符合《需求規(guī)格說明書》,輸入合理的數(shù)據(jù)集合

無效等價(jià)類:指不符合《需求規(guī)格說明書》,輸入不合理的數(shù)據(jù)集合

針對(duì)從上面的例子進(jìn)行等價(jià)類劃分

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

到這里我們的工作似乎結(jié)束了,還需要設(shè)計(jì)其他測(cè)試用例嗎?剛剛輸入的數(shù)據(jù)都是整數(shù),如果輸入小數(shù),甚至字母怎么辦?

這說明剛才的等價(jià)類還不完善,我們只考慮了輸入數(shù)據(jù)的范圍,沒有考慮輸入數(shù)據(jù)的類型(我們認(rèn)為只輸入數(shù)據(jù),可是最終用戶輸入什么都有可能)。綜合考慮輸入數(shù)據(jù)的類型和范圍劃分等價(jià)類,如下圖所示:

1.1.15.等價(jià)類方法總結(jié)

等價(jià)類劃分的步驟

先考慮輸入數(shù)據(jù)的數(shù)據(jù)類型(合法和非法的)

再考慮數(shù)據(jù)范圍(合法類型中的合法區(qū)間和非法區(qū)間)

畫出示意圖,區(qū)分等價(jià)類

為每一個(gè)等價(jià)類編號(hào)

從一個(gè)等價(jià)類中選擇一個(gè)測(cè)試數(shù)據(jù)構(gòu)造測(cè)試用例

確定等價(jià)類的方法

在輸入條件規(guī)定了取值范圍或值的個(gè)數(shù)的情況下,則可以確立一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。

在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可以確立一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。

在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。

在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對(duì)每一個(gè)輸入值分別處理的情況下,可確立n個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。

在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)。

1.1.16.練習(xí)案例:

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

設(shè)計(jì)測(cè)試用例,以覆蓋所有等價(jià)類

4.2.邊界值法

1.1.17.邊界值法

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

程序的很多錯(cuò)誤發(fā)生在輸入或輸出范圍的邊界上,因此針對(duì)各種邊界情況設(shè)置測(cè)試用例,可以發(fā)現(xiàn)不少程序缺陷。

1.1.18.設(shè)計(jì)方法:

確定邊界情況(輸入或輸出等價(jià)類的邊界)

選取正好等于、剛剛大于或剛剛小于邊界值作為測(cè)試數(shù)據(jù)

1.1.19.確定邊界值的方法

如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù)。

如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù)、最小個(gè)數(shù)、比最小個(gè)數(shù)少一、比最大個(gè)數(shù)多一的數(shù)作為測(cè)試數(shù)據(jù)。

如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元素作為測(cè)試用例。

如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測(cè)試用例。

我們還以等價(jià)類中講的例子來講解邊界值的思想。

輸入要求是1 ~ 100之間的整數(shù),因此自然產(chǎn)生了1和100兩個(gè)邊界,我們?cè)谠O(shè)計(jì)測(cè)試用例的時(shí),要重點(diǎn)考慮這兩個(gè)邊界問題。

上面討論的邊界條件最容易找到的。它們?cè)诋a(chǎn)品說明書中有定義,或者在使用軟件的過程中明顯。而有些邊界在軟件內(nèi)部,最終用戶看不到,但是軟件測(cè)試員仍有必要進(jìn)行檢查。這樣的邊界稱為次邊界條件。

2的冪。計(jì)算機(jī)和軟件的基礎(chǔ)是二進(jìn)制數(shù)—用位(bit)來表示0和1,一個(gè)字節(jié)(byte)由8位組成,一個(gè)字(word)由四個(gè)字節(jié)組成,等等。

次邊界條件

1.1.20.默認(rèn)、空白、空值、零值和無

另一種看起來很明顯的軟件缺陷來源是當(dāng)軟件要求輸入時(shí)—比如在文本框—不是沒有輸入正確的信息,而是根本沒有輸入任何內(nèi)容,可能單單按了Enter鍵。這種情況在產(chǎn)品說明書中常常忽視,程序員也經(jīng)常遺忘,但是在實(shí)際使用中卻時(shí)有發(fā)生。

好的軟件會(huì)處理這種情況。它通常將輸入內(nèi)容默認(rèn)為合法劃分中的某個(gè)合理值,或者返回錯(cuò)誤提示信息。

因?yàn)檫@些值在軟件中通常進(jìn)行不同處理,所以不要把它們與合法情況和非法情況混在一起,而要建立單獨(dú)的等價(jià)劃分。

1.1.21.非法、錯(cuò)誤、不正確和垃圾數(shù)據(jù)

非法、錯(cuò)誤、不正確和垃圾數(shù)據(jù)是很有意思的。如果軟件要求輸入數(shù)字就輸入字母。如果軟件只接受正數(shù)就輸入負(fù)數(shù)。如果軟件對(duì)日期敏感,就看他在公元3000年是否能正常工作。假如有“肥胖的手指”,同時(shí)按下多個(gè)鍵。

此類測(cè)試沒有實(shí)際的規(guī)則,只有設(shè)法破壞軟件。要發(fā)揮創(chuàng)造力,要走偏門。在此門中需找樂趣吧。

1.1.22.次邊界條件

4.3.場(chǎng)景法

通過運(yùn)用場(chǎng)景來對(duì)系統(tǒng)的功能點(diǎn)或業(yè)務(wù)流程的描述,從而提高測(cè)試效果。場(chǎng)景法一般包含基本流和備用流,從一個(gè)流程開始,通過描述經(jīng)過的路徑來確定的過程,經(jīng)過遍歷所有的基本流和備用流來完成整個(gè)場(chǎng)景。

1.1.23.測(cè)試用例設(shè)計(jì)的思想

現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的,事件觸發(fā)時(shí)的情景便形成了場(chǎng)景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設(shè)計(jì)方面的思想也可以引入到軟件測(cè)試中,可以比較生動(dòng)地描繪出事件觸發(fā)時(shí)的情景,有利于測(cè)試設(shè)計(jì)者設(shè)計(jì)測(cè)試用例,同時(shí)使測(cè)試用例更容易理解和執(zhí)行。

用例場(chǎng)景是通過描述流經(jīng)用例的路徑來確定的過程,這個(gè)流經(jīng)過程要從用例開始到結(jié)束遍歷其中所有基本流和備選流。

遵循上圖中每個(gè)經(jīng)過用例的可能路徑,可以確定不同的用例場(chǎng)景。從基本流開始,再將基本流和備選流結(jié)合起來,可以確定以下用例場(chǎng)景:

? 場(chǎng)景 1? 基本流

? 場(chǎng)景 2? 基本流 備選流 1

? 場(chǎng)景 3? 基本流 備選流 1 備選流 2

? 場(chǎng)景 4? 基本流 備選流 3

? 場(chǎng)景 5? 基本流 備選流 3 備選流 1

? 場(chǎng)景 6? 基本流 備選流 3 備選流 1 備選流 2

? 場(chǎng)景 7? 基本流 備選流 4

? 場(chǎng)景 8? 基本流 備選流 3 備選流 4

? 注:為方便起見,場(chǎng)景 5、6 和 8 只描述了備選流 3 指示的循環(huán)執(zhí)行一次的情況。

1.1.24.銀行案例ATM:

1.1.25.案例分析:

備選流1 - 銀行卡無效

? ? 在基本流步驟2 中-驗(yàn)證銀行卡,如果卡是無效的,則卡被退回,同時(shí)會(huì)通知相關(guān)消息。

備選流2 - ATM 內(nèi)沒有現(xiàn)金

? ? 在基本流步驟5 中- ATM 選項(xiàng),選項(xiàng)將無法使用。如果ATM 內(nèi)沒有現(xiàn)金,則“提款”功能不顯示。

備選流3 - ATM 內(nèi)現(xiàn)金不足

? 在基本流步驟6 中-輸入金額,如果ATM 機(jī)內(nèi)金額少于請(qǐng)求提取的金額,則將顯示一則適當(dāng)?shù)南?,并且在步驟6 -輸入金額處重新加入基本流。

備選流4 - PIN 有誤

? ? 在基本流步驟4 中-驗(yàn)證帳戶和PIN,客戶有三次機(jī)會(huì)輸入PIN 。如果PIN 輸入有誤,ATM 將顯示適當(dāng)?shù)南?;如果還存在輸入機(jī)會(huì), 則此事件流在步驟3 - 輸入PIN 處重新加入基本流。如果最后一次嘗試輸入的PIN 碼仍然錯(cuò)誤,則該卡將被ATM 機(jī)保留同時(shí)ATM 返回到準(zhǔn)備就緒狀態(tài),本用例終止。

備選流5 - 帳戶不存在

? ? 在基本流步驟4 中-驗(yàn)證帳戶和PIN,如果銀行系統(tǒng)返回的代碼表明找不到該帳戶或禁止從該帳戶中提款,則ATM 顯示適當(dāng)?shù)南⒉⑶以诓襟E10 – 退回銀行卡處重新加入基本流。

備選流6 - 帳面金額不足

在基本流步驟7 -授權(quán)中,銀行系統(tǒng)返回代碼表明帳戶余額少于在基本流步驟6 - 輸入金額內(nèi)輸入的金額,則ATM 顯示適當(dāng)?shù)南⒉⑶以诓襟E6 - 輸入金額處重新加入基本流。

備選流7 - 達(dá)到每日最大的提款金額

? ? ? 在基本流步驟7- 授權(quán)中,銀行系統(tǒng)返回的代碼表明包括本提款請(qǐng)求在內(nèi),客戶已經(jīng)或?qū)⒊^在24 小時(shí)內(nèi)允許提取的最多金額,則ATM 顯示適當(dāng)?shù)南⒉⒃诓襟E6 - 輸入金額上重新加入基本流。

備選流 x - 記錄錯(cuò)誤

如果在基本流步驟9 -收據(jù)中,記錄無法更新,則ATM 進(jìn)入“安全模式”, 在此模式下所有功能都將暫停使用。同時(shí)向銀行系統(tǒng)發(fā)送一條適當(dāng)?shù)木瘓?bào)信息表明ATM 已經(jīng)暫停工作。

備選流 y - 退出

客戶可隨時(shí)決定終止交易(退出)。交易終止,銀行卡隨之退出。

備選流 z - “翹起”

ATM 包含大量的傳感器,用以監(jiān)控各種功能,如電源檢測(cè)器、不同的門和出入口處的測(cè)壓器以及動(dòng)作檢測(cè)器等。在任一時(shí)刻,如果某個(gè)傳感器被激活,則警報(bào)信號(hào)將發(fā)送給警方而且ATM 進(jìn)入“安全模式”, 在此模式下所有功能都暫停使用,直到采取適當(dāng)?shù)闹貑?重新初始化的措施。

第一次測(cè)試中,根據(jù)測(cè)試計(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 - 帳面金額不足?

對(duì)于這7個(gè)場(chǎng)景中的每一個(gè)場(chǎng)景都需要確定測(cè)試用例??梢圆捎镁仃嚮驔Q策表來確定和管理測(cè)試用例。

從確定執(zhí)行用例場(chǎng)景所需的數(shù)據(jù)元素入手構(gòu)建矩陣。然后,對(duì)于每個(gè)場(chǎng)景,至少要確定包含執(zhí)行場(chǎng)景所需的適當(dāng)條件的測(cè)試用例。

下面顯示了一種通用格式,其中各行代表各個(gè)測(cè)試用例,而各列則代表測(cè)試用例的信息。

本示例中,對(duì)于每個(gè)測(cè)試用例,存在一個(gè)測(cè)試用例ID、條件(或說明)、測(cè)試用例中涉及的所有數(shù)據(jù)元素(作為輸入或已經(jīng)存在于數(shù)據(jù)庫(kù)中)以及預(yù)期結(jié)果。

以上測(cè)試用例只是在本次迭代中需要用來驗(yàn)證提款用例的一部分測(cè)試用例。需要的其他測(cè)試用例包括:

場(chǎng)景 6 - 帳戶不存在/帳戶類型有誤:未找到帳戶或帳戶不可用

場(chǎng)景 6 - 帳戶不存在/帳戶類型有誤:禁止從該帳戶中提款

場(chǎng)景 7 - 帳戶余額不足:請(qǐng)求的金額超出帳面金額


在將來的測(cè)試中,當(dāng)實(shí)施其他事件流時(shí),在下列情況下將需要測(cè)試用例:

無效卡(所持卡為掛失卡、被盜卡、非承兌銀行發(fā)卡、磁條損壞等)。

無法讀卡(讀卡機(jī)堵塞、脫機(jī)或出現(xiàn)故障)。

帳戶已消戶、凍結(jié)或由于其他方面原因而無法使用。

ATM 內(nèi)的現(xiàn)金不足或不能提供所請(qǐng)求的金額(與 CW3 不同,在 CW3 中只是一種幣值不足,而不是所有幣值都不足)。

無法聯(lián)系銀行系統(tǒng)以獲得認(rèn)可。

銀行網(wǎng)絡(luò)離線或交易過程中斷電。

4.4.因果圖法

1.1.26.概念:

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

利用因果圖導(dǎo)出測(cè)試用例需要經(jīng)過以下幾個(gè)步驟:

分析程度規(guī)格說明的描述中,哪些是原因,哪些是結(jié)果.原因常常是輸入條件或輸出條件的等價(jià)類,而結(jié)果是輸出條件

分析程度規(guī)格說明的描述中語(yǔ)義內(nèi)容,并將其表示成連接各個(gè)原因與各個(gè)結(jié)果的”因果圖”

標(biāo)明約束條件。由于語(yǔ)法或環(huán)境的限制,有些原因和結(jié)果的組合情況是不可能出現(xiàn)的。

把因果圖轉(zhuǎn)換成判定表。

為判定表中的每一列表示的情況設(shè)計(jì)測(cè)試用例

1.1.27.因果圖基本圖形符號(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)。

1.1.28.因果圖的約束符號(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值不定

1.1.29.因果圖測(cè)試用例

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

分析這一段說明,我們可列出原因和結(jié)果

原因(輸入):

投入2.5元硬幣;

投入3元;

按“可樂”按鈕;

按“啤酒”按鈕;

按“奶茶”按鈕。

中間狀態(tài):? ① 已投幣;②已按鈕

結(jié)果(輸出):

退還5角硬幣;

送出“可樂”飲料;

送出“啤酒”飲料;

送出“奶茶”飲料;

4.5.判定表法

判定表是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況的工具,因此,往往分析的都是多個(gè)條件的組合。

1.1.30.判定表的優(yōu)點(diǎn):

能夠?qū)?fù)雜的問題按照各種可能的情況全部列舉出來,簡(jiǎn)明并避免遺漏。因此,利用判定表能夠設(shè)計(jì)出完整的測(cè)試用例集合。在一些數(shù)據(jù)處理問題當(dāng)中,某些操作的實(shí)施依賴于多個(gè)邏輯條件的組合,即:針對(duì)不同邏輯條件的組合值,分別執(zhí)行不同的操作。判定表很適合于處理這類問題。

4.6.錯(cuò)誤推測(cè)法

1.1.31.基本思想

在測(cè)試程序時(shí),根據(jù)經(jīng)驗(yàn)或直覺推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫檢查這些錯(cuò)誤的測(cè)試用例。

錯(cuò)誤推測(cè)方法的基本思想: 列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)他們選擇測(cè)試用例. 例如, 在單元測(cè)試時(shí)曾列出的許多在模塊中常見的錯(cuò)誤. 以前產(chǎn)品測(cè)試中曾經(jīng)發(fā)現(xiàn)的錯(cuò)誤等, 這些就是經(jīng)驗(yàn)的總結(jié)。還有, 輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況。輸入表格為空格或輸入表格只有一行. 這些都是容易發(fā)生錯(cuò)誤的情況??蛇x擇這些情況下的例子作為測(cè)試用例.

總之,就是進(jìn)行錯(cuò)誤的操作。

1.1.32.測(cè)試示例

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

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ù)字

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

測(cè)試用例并非一成不變。如果軟件修改之后發(fā)生變化,或者需求發(fā)生變更,那么測(cè)試用例便不再滿足當(dāng)前版本軟件的測(cè)試需求,由此需要進(jìn)行修改和變更操作。

首先要清楚內(nèi)部評(píng)審的定義,是測(cè)試組內(nèi)部的評(píng)審,還是項(xiàng)目組內(nèi)部的評(píng)審。評(píng)審的定義不同,內(nèi)容也不會(huì)相同。

如果是測(cè)試組內(nèi)部的評(píng)審,應(yīng)該著重于:

1.測(cè)試用例本身的描述是否清晰,是否存在二義性;

2.是否考慮到測(cè)試用例的執(zhí)行效率.往往測(cè)試用例中步驟不斷重復(fù)執(zhí)行,驗(yàn)證點(diǎn)卻不同,而且測(cè)試設(shè)計(jì)的冗余性,都造成了效率的低下;

3.是否針對(duì)需求跟蹤矩陣,覆蓋了所有的軟件需求;

4.是否完全遵守了軟件需求的規(guī)定。這并不一定的,因?yàn)榧词乖賴?yán)格的評(píng)審,也會(huì)出現(xiàn)錯(cuò)誤,應(yīng)具體情況具體對(duì)待。

如果是項(xiàng)目組內(nèi)部的評(píng)審,也就需要評(píng)審委員會(huì)來做了,角度不同,評(píng)審的標(biāo)準(zhǔn)也不同。比如收集客戶需求的人員注重你的業(yè)務(wù)邏輯是否正確,分析軟件需求規(guī)格的人注重你的用例是否跟規(guī)格要求一致,開發(fā)負(fù)責(zé)人會(huì)注重你的用例中對(duì)程序的要求是否合理。

測(cè)試用例的評(píng)審能夠使用例的結(jié)構(gòu)更清晰,覆蓋的用戶場(chǎng)景更全面對(duì)于測(cè)試工程師來說也是一個(gè)快速提高用例設(shè)計(jì)能力的過程。

1、需要評(píng)審的原因

測(cè)試用例是軟件測(cè)試的準(zhǔn)則,但它并不是一經(jīng)編制完成就成為準(zhǔn)則。由于用例開發(fā)人員的設(shè)計(jì)經(jīng)驗(yàn)和對(duì)需求理解的深度各不相同,所以用例的質(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í)間比較緊張,盡可能保證對(duì)用例設(shè)計(jì)進(jìn)行評(píng)審,提前發(fā)現(xiàn)其中的不足之處。

3、參與評(píng)審人員

這里會(huì)分為多個(gè)級(jí)別進(jìn)行評(píng)審。

1)部門評(píng)審,測(cè)試部門全體成員參與的評(píng)審。

2)公司評(píng)審,這里包括了項(xiàng)目經(jīng)理、需求分析人員、架構(gòu)設(shè)計(jì)人員、開發(fā)人員和測(cè)試人員。

3)客戶評(píng)審,包括了客戶方的開發(fā)人員和測(cè)試人員。這種情況在外包公司比較常見。

4、評(píng)審內(nèi)容

評(píng)審的內(nèi)容有以下幾個(gè)方面

1)用例設(shè)計(jì)的結(jié)構(gòu)安排是否清晰、合理,是否利于高效對(duì)需求進(jìn)行覆蓋。

2)優(yōu)先極安排是否合理。

3)是否覆蓋測(cè)試需求上的所有功能點(diǎn)。

4)用例是否具有很好可執(zhí)行性。例如用例的前提條件、執(zhí)行步驟、輸入數(shù)據(jù)和期待結(jié)果是否清晰、正確期待結(jié)果是否有明顯的驗(yàn)證方法。

5)是否已經(jīng)刪除了冗余的用例。

6)是否包含充分的負(fù)面測(cè)試用例。充分的定義,如果在這里使用2&8法則,那就是4倍于正面用例的數(shù)量,畢竟一個(gè)健壯的軟件,其中80%的代碼都是在"保護(hù)"20%的功能實(shí)現(xiàn)。

7)是否從用戶層面來設(shè)計(jì)用戶使用場(chǎng)景和使用流程的測(cè)試用例。

8)是否簡(jiǎn)潔,復(fù)用性強(qiáng)。例如,可將重復(fù)度高的步驟或過程抽取出來定義為一些可復(fù)用標(biāo)準(zhǔn)步驟。

個(gè)人認(rèn)為,一個(gè)"健康"的測(cè)試用例至少要通過前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)人員交流

方式只是手段,得到其它人員對(duì)于用例的反饋信息才是目的。

無論采用那種方式,都應(yīng)該在溝通之前把用例設(shè)計(jì)的相關(guān)文檔發(fā)送給對(duì)方進(jìn)行前期的學(xué)習(xí)和了解,以節(jié)省溝通成本。

6、評(píng)審結(jié)束標(biāo)準(zhǔn)

在評(píng)審活動(dòng)中會(huì)收集到用例的反饋信息,在此基礎(chǔ)上進(jìn)行用例更新,直到通過評(píng)審。

6.測(cè)試報(bào)告

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容