測(cè)試用例的重要性是毋庸置疑的,它是軟件測(cè)試全部過(guò)程的核心,是測(cè)試執(zhí)行環(huán)節(jié)的基本依據(jù)。下面我們來(lái)淺談下測(cè)試用例的分析和設(shè)計(jì)過(guò)程。
一、測(cè)試用例分析階段
測(cè)試用例設(shè)計(jì)的基礎(chǔ)文檔是需求文檔,如果測(cè)試人員能拿到一份完整的準(zhǔn)確的需求文檔,那么對(duì)測(cè)試人員來(lái)說(shuō),工作量可以減輕大半,工作效果會(huì)大幅提高。但是我們?cè)谛枨蠓治鲭A段,即便是在需求評(píng)審之后,我們拿到的需求文檔,仍然是存在一些疑義的或者是分析不透,表達(dá)不清的一些需求文檔。這樣的時(shí)候,測(cè)試人員是否有自己的分析方法,顯得尤為重要。
測(cè)試人員對(duì)付需求文檔,從操作策略上來(lái)說(shuō),可以從以下兩點(diǎn)出發(fā):
(一)、對(duì)于需求規(guī)格全面、完整的需求文檔來(lái)說(shuō),我們可以采取“切割策略”,把需求按一定的粒度進(jìn)行分解,來(lái)編寫測(cè)試用例。
(二)、對(duì)于簡(jiǎn)單不全面、需求規(guī)格含糊的需求文檔,我們可以采取的策略:“聯(lián)想策略”。這點(diǎn)還是主要來(lái)自工作經(jīng)驗(yàn)及對(duì)該行業(yè)的理解,把一些含糊的內(nèi)容補(bǔ)充起來(lái)。
在參與需求文檔閱讀的過(guò)程中,我們還可以采用一些小方法,把需求吃透。例如:
1、在參與需求閱讀的過(guò)程中,我們可以把需求中的一些邊界或者異常的情況列出來(lái),這些往往是以后bug的多發(fā)地帶。
2、對(duì)于需求文檔中的一些隱式缺陷,我們需要補(bǔ)充清楚質(zhì)量屬性,例如一些安全性、性能、UI等的一些質(zhì)量屬性內(nèi)容,我們需要補(bǔ)充清楚。
3、對(duì)需求文檔的閱讀,我們還可以采用一些工具:思維導(dǎo)圖工具及UI界面設(shè)計(jì)工具,把圖給畫出來(lái),有助于我們理解需求,找到測(cè)試點(diǎn)。例如思維導(dǎo)圖工具,通過(guò)名詞+動(dòng)詞的方法,可以把測(cè)試數(shù)據(jù)和操作動(dòng)作列出來(lái),有利于理清測(cè)試的要點(diǎn)。
通過(guò)以上的一些策略和方法,我們大致上可以把需求測(cè)試分析做的比較到位了。
測(cè)試人員對(duì)需求文檔分析后,接下去還需要對(duì)設(shè)計(jì)文檔進(jìn)行分析,大部分的測(cè)試人員,不是太注重開(kāi)發(fā)組的這份設(shè)計(jì)文檔,覺(jué)得與己無(wú)關(guān),其實(shí),理解設(shè)計(jì)文檔,有利于降低我們的測(cè)試規(guī)模,降低勞動(dòng)負(fù)荷。一般來(lái)說(shuō)缺陷會(huì)與內(nèi)部結(jié)構(gòu)映射,如果你了解了代碼的結(jié)構(gòu),一般來(lái)說(shuō),我們都可以找到缺陷出現(xiàn)的真正原因了。這里有一種工具,可以幫助我們進(jìn)行這方面的工作,就是UML的反向工程獲得設(shè)計(jì)模型,該工具網(wǎng)上大家也可以找到。
二、測(cè)試用例設(shè)計(jì)階段
通過(guò)以上對(duì)需求文檔和設(shè)計(jì)文檔的分析,下面我們來(lái)淺談下測(cè)試用例的設(shè)計(jì),測(cè)試用例一般由三部分內(nèi)容組成:步驟、數(shù)據(jù)、標(biāo)準(zhǔn)。步驟一般與需求規(guī)格說(shuō)明書相對(duì)應(yīng),對(duì)于某些共享步驟,可以進(jìn)行參數(shù)化,或借用工具進(jìn)行管理,步驟的描述應(yīng)該無(wú)二義性。測(cè)試標(biāo)準(zhǔn),主要為預(yù)期值與結(jié)果值的對(duì)比方式。
對(duì)于測(cè)試數(shù)據(jù)的設(shè)計(jì),這里我們講解以下幾種方法:
1、最原始的方法:排列組合。通過(guò)排列組合,把所有的數(shù)據(jù)都遍歷過(guò),這樣的窮舉的方法,盡可能的把系統(tǒng)都測(cè)試到位。但數(shù)據(jù)龐大,這樣窮舉的方法,會(huì)讓測(cè)試陷入困境。
2、邊界值和等價(jià)類的方法。通過(guò)邊界值和等價(jià)類劃分,可以大大的縮小測(cè)試范圍,提高了測(cè)試效率。在任何情況下都必須使用邊界值分析方法,經(jīng)驗(yàn)表明用這種方法設(shè)計(jì)出測(cè)試用例發(fā)現(xiàn)程序錯(cuò)誤的能力最強(qiáng)。必要時(shí)用等價(jià)類劃分方法補(bǔ)充一些測(cè)試用例。
3、因果圖表和決策表法。如果程序的功能說(shuō)明中含有輸入條件的組合情況,則一開(kāi)始就可選用因果圖法。因果圖分析法,是為了解決邊界值分析和等價(jià)劃分的一個(gè)弱點(diǎn):未對(duì)輸入條件的組合進(jìn)行分析。而因果圖恰恰有助于用一個(gè)系統(tǒng)的方法選擇出此類高效的測(cè)試用例集,并且可以指出規(guī)格說(shuō)明的不完整性和不明確之處。步驟如下:
1)將規(guī)格說(shuō)明分解為可執(zhí)行的片段;
2)確定規(guī)格說(shuō)明中的因果關(guān)系;
3)分析規(guī)格說(shuō)明的語(yǔ)義內(nèi)容,并將其轉(zhuǎn)換為連接因果關(guān)系的布爾圖,即:
因果圖;
4)給圖加上注解符號(hào),說(shuō)明由于語(yǔ)法或環(huán)境的限制而不能聯(lián)系起來(lái)的“因”和“果”;
5)經(jīng)過(guò)仔細(xì)地跟蹤圖中的狀態(tài)變化情況,將因果圖轉(zhuǎn)換成一個(gè)有限項(xiàng)的判定表;
6)將判定表中的列轉(zhuǎn)換成測(cè)試用例。
4、“猜”技術(shù)。為特殊測(cè)試點(diǎn)準(zhǔn)備測(cè)試數(shù)據(jù)。
看完了上面的測(cè)試用例設(shè)計(jì)方法,我們來(lái)看下測(cè)試用例的設(shè)計(jì)步驟:
1)構(gòu)造根據(jù)設(shè)計(jì)規(guī)格得出的基本功能測(cè)試用例;
2)邊界值測(cè)試用例;
3)狀態(tài)轉(zhuǎn)換測(cè)試用例;
4)錯(cuò)誤猜測(cè)測(cè)試用例;
5)異常測(cè)試用例;
6)性能測(cè)試用例;
7)壓力測(cè)試用例。
以上我主要講解了一些平時(shí)比較常用的測(cè)試用例設(shè)計(jì)方法,如果更細(xì)化,還可以找出更多的測(cè)試用例設(shè)計(jì)方法。其實(shí),這些方法和設(shè)計(jì)步驟通過(guò)我們的加工,都融入到了測(cè)試用例中去了,所以測(cè)試用例是測(cè)試的靈魂,一點(diǎn)都不為過(guò)。有時(shí)可以不需要很完美的測(cè)試用例模板,但是一定要有完美的覆蓋率的測(cè)試用例。