軟件測(cè)試設(shè)計(jì)
在早期的軟件測(cè)試過程中瞧筛,我們測(cè)試時(shí)對(duì)需求規(guī)格進(jìn)行分析残腌,分析之后就開始直接寫用例谐腰,我們把這個(gè)過程叫測(cè)試設(shè)計(jì)胁黑。其實(shí)現(xiàn)在很多國(guó)內(nèi)公司都還是根據(jù)需求直接寫用例的,這個(gè)方法過于簡(jiǎn)單,以致于出現(xiàn)設(shè)計(jì)出來的用例并不能發(fā)現(xiàn)太多問題十饥。這說明一個(gè)問題,我們以前的測(cè)試設(shè)計(jì)方法其實(shí)很難全面地覆蓋到我們的需求祖乳,所以在本章中逗堵,我們將介紹一個(gè)專業(yè)的測(cè)試設(shè)計(jì)模型。
一眷昆、MFQ 測(cè)試設(shè)計(jì)模型概述
早期的測(cè)試設(shè)計(jì)過程是直接根據(jù)測(cè)試需求或規(guī)格來設(shè)計(jì)用例蜒秤,這種方法存在很多局限性,本章我們討論的是一種新的亚斋,或者說更全面的測(cè)試設(shè)計(jì)方法∽髅模現(xiàn)在在很多測(cè)試更完善的企業(yè)(如華為),他們提出了新的測(cè)試設(shè)計(jì)過程:需求/規(guī)格→測(cè)試分析→測(cè)試設(shè)計(jì)→用例設(shè)計(jì)帅刊,將測(cè)試設(shè)計(jì)劃分為4個(gè)階段纸泡,然后通過模型的方法來控制測(cè)試設(shè)計(jì)的整個(gè)過程,當(dāng)然事實(shí)也證明基于模型的測(cè)試對(duì)幫助提高和改進(jìn)測(cè)試設(shè)計(jì)質(zhì)量是有很大的幫助赖瞒。通過模型可以描述系統(tǒng)如何工作女揭,可以通過表格形式、流程圖或其他圖表來表示栏饮。
本節(jié)主要介紹華為公司在使用的一種設(shè)計(jì)模型——MFQ 模型吧兔,如圖7-1 所示。
MFQ 模型將測(cè)試設(shè)計(jì)分為4 個(gè)步驟袍嬉,第一步是為測(cè)試對(duì)象建模;第二步是設(shè)計(jì)基礎(chǔ)測(cè)試用例來覆蓋模型;第三步是確定測(cè)試數(shù)據(jù);第四步是非正式測(cè)試內(nèi)容境蔼。詳細(xì)的測(cè)試設(shè)計(jì)步驟在接下來的章節(jié)中會(huì)詳細(xì)介紹。
當(dāng)然之所以使用模型的方法來分析測(cè)試設(shè)計(jì)伺通,主要是因?yàn)闇y(cè)試模型可以幫助我們更全面地覆蓋需求箍土,MFQ 模型可以更好地幫助解決以下問題:
通過建模可以更熟悉被測(cè)試對(duì)象泵殴,同時(shí)也可以讓測(cè)試對(duì)象變得更清晰涮帘。
通過分析,并且在分析過程中測(cè)試分析工程師不斷地與需求工程師笑诅、開發(fā)工程師交流调缨,這樣可以發(fā)現(xiàn)一些潛在的問題,提前預(yù)防一些缺陷的出現(xiàn)吆你。
通過模型可以更好地了解我們是如何分析被測(cè)試對(duì)象的弦叶,這樣可以提高測(cè)試評(píng)審的效率。
通過模型的展現(xiàn)妇多,在設(shè)計(jì)用例時(shí)可以更好地去覆蓋被測(cè)試對(duì)象伤哺。
二、建模
MFQ 測(cè)試設(shè)計(jì)模型中,第一個(gè)步驟是建模立莉,也是整個(gè)模型中最重要的一個(gè)步驟绢彤,建模的過程其實(shí)就是測(cè)試分析的過程。建模主要有兩部分內(nèi)容:一是建模的維度;二是PRDCS 建模方法蜓耻。
1茫舶、建模的維度
建模是一個(gè)很重要的步驟,也是測(cè)試分析的過程刹淌,所以如果要建一個(gè)好的模型就必須對(duì)被測(cè)試對(duì)象很熟悉饶氏,通常可以從以下幾個(gè)方面來收集被測(cè)試對(duì)象的信息:
需求規(guī)格說明書有勾。
系統(tǒng)架構(gòu)設(shè)計(jì)說明書疹启。
系統(tǒng)概要設(shè)計(jì)說明書。
系統(tǒng)詳細(xì)設(shè)計(jì)說明書蔼卡。
行業(yè)知識(shí)喊崖。
對(duì)被測(cè)試對(duì)象充分了解后,就可以選擇一個(gè)合適的模型來描述被測(cè)試對(duì)象菲宴。描述被測(cè)試對(duì)象的方法也有很多贷祈,常見的有等價(jià)類劃分、邊界值喝峦、判定表势誊、因果圖、狀態(tài)遷移谣蠢、場(chǎng)景分析法等粟耻。從MFQ 模型中可以看出,建模一般從三個(gè)維度進(jìn)行:M(Mode)單個(gè)功能眉踱、F(Function)功能與功能之間的關(guān)聯(lián)挤忙、Q(Quality)質(zhì)量特性。
(1)M-Mode
M-Mode based single Function Test A&D 是指基于單個(gè)功能的測(cè)試設(shè)計(jì)谈喳,這個(gè)建模方法主要是針對(duì)單一功能進(jìn)行建模的册烈,如163 郵箱注冊(cè)功能,如圖7-2 所示婿禽。
假設(shè)我們要對(duì)郵箱地址這個(gè)文本框進(jìn)行測(cè)試赏僧,這個(gè)字段的要求是:6~18 個(gè)字符,可使用字母扭倾、數(shù)字淀零、下劃線,需以字母開頭膛壹。通常對(duì)于這類文本框驾中,我們使用等價(jià)類劃分的方法唉堪,那么建模的時(shí)候就需要將這些功能的有效和無效等價(jià)類寫出來。
關(guān)于如何更好地針對(duì)單一功能進(jìn)行建模肩民,其通常會(huì)使用到PRDCS 的模型唠亚,7.2.2 小節(jié)中會(huì)詳細(xì)介紹。這個(gè)163 郵箱注冊(cè)的功能在介紹PRDCS 模型時(shí)將會(huì)詳細(xì)補(bǔ)充此改。
(2)F-Function
F-Function Interaction Test A&D 是指單個(gè)功能與單個(gè)功能之間的交互關(guān)系趾撵,F(xiàn)-Function(功能與功能間的關(guān)聯(lián))建模通常按以下步驟進(jìn)行:
第一步:列出所有要測(cè)試功能有關(guān)的遺留功能。通常功能與功能之間的關(guān)系是“交互”或“修改”共啃。“交互”是指遺留功能和被測(cè)試功能在處理某些事時(shí)暂题,兩者之間有數(shù)據(jù)調(diào)用;“修改”是指遺留功能因?yàn)樾略龅谋粶y(cè)試功能而需要進(jìn)行修改移剪。
第二步:列出與被測(cè)試功能相關(guān)的新功能。一般從兩個(gè)維度來劃分:一是時(shí)間關(guān)系;二是空間關(guān)系薪者。時(shí)間關(guān)系是指兩個(gè)功能之間運(yùn)行時(shí)間的先后關(guān)系纵苛,如某個(gè)功能先運(yùn)行另外一個(gè)功能后運(yùn)行,或者說兩個(gè)功能是同時(shí)運(yùn)行的;空間關(guān)系是指兩個(gè)功能是使用了相同資源言津,如內(nèi)存攻人、定時(shí)器等。
第三步:將測(cè)試功能放在第一行悬槽,將遺留功能和其他新功能放在第一列怀吻。
第四步:在交叉的單元格中將有關(guān)系的功能之間標(biāo)注“×”。
單個(gè)功能與單個(gè)功能之間的交互關(guān)系見表7-1初婆。
(3)Q-Quality
Quality 表示質(zhì)量性蓬坡,除了從那兩個(gè)維度建模之外,還應(yīng)該考慮其他質(zhì)量屬性的維度磅叛,質(zhì)量屬性維度建模的步驟如下:
第一步:選擇和定義要測(cè)試的產(chǎn)品的相關(guān)功能質(zhì)量屬性屑咳,當(dāng)然這個(gè)前提是需要對(duì)質(zhì)量模型很熟悉。
第二步:將質(zhì)量屬性寫在第一行弊琴,將測(cè)試的新功能寫在第一列兆龙。
第三步:將功能和需要測(cè)試的質(zhì)量屬性所交互的單元格畫上“×”。
度量屬性與功能關(guān)系見表7-2敲董。
2紫皇、PRDCS 建模方法
上面介紹了M、F 和Q 三個(gè)維度的測(cè)試分析和測(cè)試設(shè)計(jì)臣缀,F(xiàn) 和Q 其實(shí)是相對(duì)簡(jiǎn)單的是一種表格模型坝橡,只要對(duì)系統(tǒng)足夠熟悉就沒有問題,但是M 這個(gè)維度是相對(duì)比較難的精置。雖然可能每次分析的測(cè)試對(duì)象不同计寇,但測(cè)試設(shè)計(jì)的技術(shù)都是大同小異的,所以通常對(duì)M 部分的測(cè)試設(shè)計(jì)進(jìn)行總結(jié),得到一個(gè)新的模型PRDCS 模型番宁。PRDCS 模型如圖7-3 的示元莫。
(1)P
P是指Process 流程,如果被測(cè)試對(duì)象的設(shè)計(jì)規(guī)范中存在與“流程”相關(guān)的特性蝶押,那么可以使用P-Process 方法來建模踱蠢。
流程通常包括以下特性:
一個(gè)業(yè)務(wù)有很多個(gè)步驟完成,步驟之間有明顯的順序關(guān)系棋电。
涉及超過一個(gè)角色或觸發(fā)條件茎截。
如購票系統(tǒng)就是典型的使用流程分析法進(jìn)行設(shè)計(jì)的,如圖7-4 所示赶盔。
(2)R
R 是指Rules企锌,如果在測(cè)試對(duì)象設(shè)計(jì)規(guī)格中存在“參數(shù)或規(guī)格”含義的特性,那么可以使用R-Rules 來建模于未。
規(guī)則通常包括以下特性:
設(shè)計(jì)規(guī)格中包括很多參數(shù)撕攒。
設(shè)計(jì)規(guī)格中包含很多規(guī)則,每條規(guī)格由不同的變量和不同的值組成烘浦。
參數(shù)的數(shù)量是有限抖坪,可以較容易的識(shí)別參數(shù)間的邏輯關(guān)系。
如掃雷程序測(cè)試設(shè)計(jì)闷叉,見表7-3擦俐。
A1 表示標(biāo)識(shí)問號(hào)方塊;
A2 表示方塊標(biāo)識(shí)紅旗;
A3 表示方塊初始狀態(tài);
A4 表示標(biāo)識(shí)數(shù)字X 且周圍已標(biāo)記正確了X 個(gè)雷;
A5 表示標(biāo)識(shí)數(shù)字且周圍沒標(biāo)X 個(gè)雷;
A6 表示標(biāo)識(shí)數(shù)字且周圍標(biāo)雷錯(cuò)誤;
B1 表示單擊左鍵;
B2 表示單擊右鍵;
B3 表示雙擊左右鍵。
(3)D
D 是指Data片习,如果在測(cè)試對(duì)象設(shè)計(jì)規(guī)格中存在“數(shù)據(jù)”的特性捌肴,那么可以使用D-Data 來建模。
數(shù)據(jù)通常包括以下特性:
每個(gè)數(shù)據(jù)有它特殊的范圍值藕咏。
數(shù)據(jù)之間沒有明顯的邏輯關(guān)系状知。
不同的數(shù)據(jù)可能存在限制。
涉及的數(shù)據(jù)總數(shù)是有限的孽查。
如注冊(cè)163 郵箱時(shí)饥悴,有一個(gè)郵箱地址字段,要求是這樣的:6~18 個(gè)字符盲再,可使用字母西设、數(shù)字、下劃線答朋,需以字母開頭贷揽。如表7-4 所示。
(4)C
C是指Combination梦碗,如果在測(cè)試對(duì)象設(shè)計(jì)規(guī)格中數(shù)據(jù)很多禽绪,每類數(shù)據(jù)還可能有多種取值蓖救,這些取值在不同的取值情況下結(jié)果可能都不一樣,對(duì)于這類情況可以使用C-Combination 來建模印屁。
組合通常包括以下特性:
參數(shù)很多或者說數(shù)據(jù)很多循捺。
每個(gè)參數(shù)可能有很多種取值。
參數(shù)之間存在一些邏輯關(guān)系雄人。
如以下查詢的例子从橘,見表7-5。
根據(jù)因子設(shè)計(jì)的用例見表7-6础钠。
(5)S
S是指Status恰力,如果在測(cè)試對(duì)象設(shè)計(jì)規(guī)格中存在“狀態(tài)”特性,如從某一狀態(tài)到某一狀態(tài)旗吁,對(duì)于這類情況可以使用S-Status 來建模牺勾。
狀態(tài)通常包括以下特性:
測(cè)試對(duì)象的行為變化基于它內(nèi)部的狀態(tài)。
確定的事件觸發(fā)測(cè)試對(duì)象的狀態(tài)阵漏。
常見的狀態(tài)圖如圖7-5 所示。