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