《計(jì)算機(jī)論文:基于因果圖分析法軟件測(cè)試用例的設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算機(jī)論文:基于因果圖分析法軟件測(cè)試用例的設(shè)計(jì)(10頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、計(jì)算機(jī)論文:基于因果圖分析法軟件測(cè)試用例的設(shè)計(jì)
摘要:軟件測(cè)試是發(fā)現(xiàn)軟件缺陷和提高軟件質(zhì)量的重要手段。在系統(tǒng)功能測(cè)試過程中,對(duì)于輸入條件組合的復(fù)雜情況,因果圖分析法是行之有效的測(cè)試用例設(shè)計(jì)方案。以注冊(cè)問題為例,對(duì)用戶輸入條件、系統(tǒng)預(yù)期輸出及其兩者的關(guān)系進(jìn)行了深入分析,并完成了因果圖模型的創(chuàng)建,為后續(xù)完備、準(zhǔn)確的生成判定表和設(shè)計(jì)測(cè)試用例提供了有力的依據(jù)。
關(guān)鍵詞:軟件測(cè)試; 黑盒測(cè)試; 因果圖分析;
軟件測(cè)試是軟件開發(fā)過程中的重要組成環(huán)節(jié),是發(fā)現(xiàn)軟件缺陷和提高軟件質(zhì)量的重要舉措。其中,在系統(tǒng)功能測(cè)試過程中,通常以用戶需求為側(cè)重點(diǎn)完成對(duì)
2、系統(tǒng)功能的確認(rèn)和驗(yàn)證,因此需采用黑盒測(cè)試技術(shù)完成測(cè)試用例的設(shè)計(jì)任務(wù)。
等價(jià)類劃分法和邊界值分析法是應(yīng)用最為普遍的黑盒測(cè)試方法,分別可以實(shí)現(xiàn)“合理分類、精心挑選”,兩者雙劍合璧,可以達(dá)到較好的測(cè)試效果。但是這兩種方法通常只適用于輸入條件相互獨(dú)立的情況,如果輸入條件之間存在聯(lián)系,則很難描述,即使描述出來,其測(cè)試效果也難以保障。
因果圖分析法給出了行之有效的解決方案,該方法可以通過簡(jiǎn)單、直觀的圖形化符號(hào),完整準(zhǔn)確的確定輸入條件組合和輸出結(jié)果之間的邏輯關(guān)系,進(jìn)而依據(jù)一定的規(guī)則推導(dǎo)并設(shè)計(jì)出判定表和測(cè)試用例,從而實(shí)現(xiàn)對(duì)輸入條件組合等復(fù)雜情況的完備
3、測(cè)試。
本文以某系統(tǒng)的注冊(cè)問題為例,展示因果圖分析法的一般過程和設(shè)計(jì)要點(diǎn)。
1 測(cè)試需求描述
注冊(cè)問題的測(cè)試需求描述如下:
(1)用戶名為必填項(xiàng);
(2)密碼長(zhǎng)度大于4位小于8位,可以由純字母、純數(shù)字或者字母加數(shù)字組成;
(3)確認(rèn)密碼必須與密碼完全一致。
系統(tǒng)依次判斷,如果輸入均有效,則給出“注冊(cè)成功”的提示。如果輸入有誤,則系統(tǒng)分別給出“請(qǐng)輸入用戶名”、“密碼輸入有誤”和“確認(rèn)密碼輸
4、入有誤”的錯(cuò)誤提示信息。
從上述需求描述可以看出,注冊(cè)問題中的多個(gè)輸入條件組合能夠產(chǎn)生不同的輸出結(jié)果,并且輸入條件間存在依賴關(guān)系,并非完全獨(dú)立,因此根據(jù)應(yīng)用場(chǎng)景,需選擇因果圖分析法和判定表驅(qū)動(dòng)法完成測(cè)試用例的設(shè)計(jì)。
2 確定原因和結(jié)果
2.1 分析需求描述
因果圖中的原因是指輸入條件的有效等價(jià)類,即用戶對(duì)該系統(tǒng)能夠輸入或者執(zhí)行的操作所需滿足的一般規(guī)則。
(1)如果輸入條件為簡(jiǎn)單條件,比如用戶名為必填項(xiàng),則選擇其有效等價(jià)類“用戶名填寫”作為原因即可
5、。
(2)如果輸入條件為復(fù)合條件,則為了確保測(cè)試的充分性,必須將輸入條件拆分為簡(jiǎn)單條件,比如密碼長(zhǎng)度大于4位小于8位,則拆分為兩個(gè)原因,即“密碼長(zhǎng)度大于4位”和“密碼長(zhǎng)度小于8位”。
因果圖中的結(jié)果是預(yù)期輸出或者輸出的有效等價(jià)類,即系統(tǒng)對(duì)用戶輸入所能產(chǎn)生的所有響應(yīng),一般為界面的切換、系統(tǒng)的錯(cuò)誤提示等。結(jié)果的分析相對(duì)較為簡(jiǎn)單,大部分情況可以從測(cè)試需求中直接獲取,比如給出“密碼輸入有誤”的錯(cuò)誤提示。只有當(dāng)預(yù)期輸出為海量數(shù)據(jù)時(shí),才需要從系統(tǒng)給出的所有響應(yīng)中提取共性,分析預(yù)期輸出的有效等價(jià)類。
2.2 原因的拆分
6、
由于因果圖最擅長(zhǎng)處理輸入條件和預(yù)期輸出均為邏輯值的情況,因此提供的原因和結(jié)果間的關(guān)系是傳統(tǒng)意義上的邏輯關(guān)系。
原因和結(jié)果間一對(duì)一的關(guān)系只包括兩種情況,即恒等和非,所有輸入情況的分析是“非真即假”的。也就是說,對(duì)于一個(gè)輸入條件只能劃分出一個(gè)符合輸入條件的有效等價(jià)類和一個(gè)違反輸入條件的無效等價(jià)類。顯然這種處理方法對(duì)于復(fù)合條件而言是欠妥當(dāng)?shù)模热巛斎霔l件為密碼長(zhǎng)度大于4位小于8位,取非后表示為“密碼長(zhǎng)度小于等于4位或者大于等于8位”,在判定表中通過0值表示,最后階段也只能選取“小于等于4位”或者“大于等于8位”中的一種情況來設(shè)計(jì)測(cè)試用例,
7、顯然該測(cè)試方案出現(xiàn)了關(guān)鍵信息的遺漏,無法保證測(cè)試的完備性。
而將復(fù)合條件拆分后,每個(gè)原因都被描述為簡(jiǎn)單條件,大部分情況下是一個(gè)關(guān)系表達(dá)式,采用“非真即假”的設(shè)計(jì)方案,不存在上述遺漏現(xiàn)象,可以保證測(cè)試的完備性。
針對(duì)此類問題,等價(jià)類劃分法的處理更為靈活一些。該方法不會(huì)假定輸入條件為邏輯值,有效等價(jià)類和無效等價(jià)類之間也不是“非真即假”的關(guān)系,會(huì)根據(jù)不同的應(yīng)用場(chǎng)景選擇不同的等價(jià)類設(shè)計(jì)方案,即使不做拆分,測(cè)試的完備性也能得到保證。
2.3 列出原因和結(jié)果
由于因果圖分析法和判定表驅(qū)動(dòng)
8、法最擅長(zhǎng)處理邏輯值的情況,因此在分析問題時(shí),應(yīng)盡可能將原因和結(jié)果描述為條件表達(dá)式或邏輯表達(dá)式的形式。
通過分析,注冊(cè)問題的原因描述如下:
C1-用戶名填寫;C2-密碼長(zhǎng)度大于4位;C3-密碼長(zhǎng)度小于8位;C4-密碼由純字母組成;C5-密碼由純數(shù)字組成;C6-密碼由字母和數(shù)字組成;C7-確認(rèn)密碼與密碼完全一致。
注冊(cè)問題的結(jié)果描述如下:
E1-請(qǐng)輸入用戶名;E2-密碼輸入有誤;E3-確認(rèn)密碼輸入有誤;E4-注冊(cè)成功。
3 繪制因果圖
9、
3.1 確定原因和結(jié)果間的邏輯關(guān)系
在完成對(duì)原因和結(jié)果的標(biāo)識(shí)與描述后,需深入分析軟件規(guī)格說明中的語義,找出原因與結(jié)果之間、原因與原因之間對(duì)應(yīng)的關(guān)系,并根據(jù)這些關(guān)系畫出因果圖[1]。
(1)因果圖分析法分析問題的一般方式為,從每個(gè)結(jié)果入手,分析其如何產(chǎn)生,即結(jié)果與原因間存在怎樣的關(guān)系;
(2)如果結(jié)果間沒有遞進(jìn)關(guān)系,通常選擇從最簡(jiǎn)單的結(jié)果開始分析,也可隨意選擇分析順序;如果結(jié)果間存在遞進(jìn)、嵌套等依賴關(guān)系,則必須按照一定的輸入順序進(jìn)行分析。
注冊(cè)問題中系統(tǒng)依次對(duì)用
10、戶輸入進(jìn)行判斷,一旦用戶名輸入無效,則密碼和確認(rèn)密碼沒有機(jī)會(huì)得到驗(yàn)證,因此需按順序進(jìn)行分析,并在因果圖繪制過程中,將用戶名輸入有效作為密碼和確認(rèn)密碼驗(yàn)證的基礎(chǔ)要求和前提條件。
3.2 中間結(jié)果的確定
中間結(jié)果的確定通常是因果圖繪制的一大難點(diǎn),對(duì)于一個(gè)描述明確的測(cè)試需求而言,通常原因和結(jié)果是確定的,而中間結(jié)果則相對(duì)較為模糊,需要花費(fèi)大量時(shí)間進(jìn)行深入分析。
通常情況下,如果在分析原因和結(jié)果的過程中,為了保證測(cè)試的充分性,將一個(gè)復(fù)合輸入條件拆分成了多個(gè)簡(jiǎn)單條件,則繪制因果圖時(shí),需反其道而行之,通過增加中間結(jié)果將
11、其合并起來,為后續(xù)分析的順利進(jìn)行做好準(zhǔn)備工作。
比如對(duì)于原因“密碼長(zhǎng)度大于4位”和“密碼長(zhǎng)度小于8位”,需創(chuàng)建一個(gè)中間結(jié)果“密碼長(zhǎng)度有效”,通過與關(guān)系將兩者合并起來。對(duì)于原因“密碼由純字母組成”、“密碼由純數(shù)字組成”和“密碼由字母和數(shù)字組成”,需創(chuàng)建一個(gè)中間結(jié)果“密碼字符類型有效”,通過或關(guān)系將三者合并起來。
除此之外,以下情況也可創(chuàng)建中間結(jié)果:
(1)多個(gè)輸入條件間存在更為緊密的依賴關(guān)系,考慮增加中間結(jié)果;
(2)一個(gè)結(jié)果與多個(gè)原因間存在關(guān)系,但并非純粹的與/或關(guān)系,需要增
12、加中間結(jié)果;
(3)多個(gè)輸入條件間存在遞進(jìn)關(guān)系,或者某個(gè)輸出以某個(gè)輸入作為前提條件,必須增加中間結(jié)果。
因果圖繪制過程中,原因和結(jié)果必須是完備的,而中間結(jié)果的確定并無唯一的標(biāo)準(zhǔn)答案:
(1)為了后續(xù)分析的順利進(jìn)行,以及減少不必要的交叉線,可以適當(dāng)增加中間結(jié)果,甚至允許出現(xiàn)多層嵌套的中間結(jié)果;
(2)如果去除中間結(jié)果后,繪制出的因果圖無任何歧義或錯(cuò)誤,整張圖美觀、易于閱讀,且與測(cè)試需求描述完全一致,則中間結(jié)果可有可無。
3.3 確定約束
13、
在因果圖分析過程中,不僅要考慮輸入和輸出之間的邏輯關(guān)系,還需考慮輸入因素之間或輸出結(jié)果之間的互相制約及依賴關(guān)系。由于語法或環(huán)境的限制,有些原因和結(jié)果的組合情況是不合理或不存在的,因此繪制因果圖的最后一步需分析這種特殊情況,并通過標(biāo)準(zhǔn)的符號(hào)標(biāo)明約束條件。
輸入條件的約束主要包括以下三類[2]:
(1)E(Exclusive)互斥關(guān)系:表示多個(gè)輸入條件至多有一個(gè)成立。
(2)I(Inclusive)包含關(guān)系:表示多個(gè)輸入條件至少有一個(gè)成立。
(3)O(Only One)唯一關(guān)系:表示多個(gè)輸入條件有且只有一個(gè)成立。
對(duì)于“密碼由純字母組成”、“密碼由純數(shù)字組成”和“密碼由字母和數(shù)字組成”三個(gè)與密碼字符類型有關(guān)的原因而言,不可能有兩個(gè)或以上的條件同時(shí)成立。但從用戶輸入角度出發(fā),若三者同時(shí)不成立,則表示密碼包括非字母非數(shù)字符號(hào),為密碼不合法的情況,因此三個(gè)原因間應(yīng)建立互斥約束。