第三章-黑盒測試_第1頁
第三章-黑盒測試_第2頁
第三章-黑盒測試_第3頁
第三章-黑盒測試_第4頁
第三章-黑盒測試_第5頁
已閱讀5頁,還剩111頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

軟件測試技術(shù)

第3章黑盒測試第3章測試用例設(shè)計技術(shù)對于黑盒測試的基本認識等價類劃分法邊界值分析法判定表驅(qū)動法因果圖法正交實驗法場景法錯誤推測法黑盒測試應(yīng)用策略黑盒測試與白盒測試的優(yōu)缺點與對比2/1163.1對于黑盒測試的基本認識定義:從用戶的角度去驗證軟件功能,重點關(guān)注的是用戶的需求,通過程序界面和接口的外部操作實現(xiàn)端到端的測試。分類:黑盒測試一般可分為功能測試和非功能測試兩大類。3/116黑盒測試主要檢測如下一些錯誤:軟件功能不滿足需求或者有遺漏。人機交互界面錯誤。數(shù)據(jù)庫訪問錯誤以及不能保持外部信息完整性錯誤。軟件性能、安全性、可靠性和兼容性等非功能特性不滿足需求。程序初始化和終止錯誤。4/116黑盒測試的優(yōu)點:黑盒測試與軟件具體實現(xiàn)無關(guān),因此黑盒測試用例在程序具體實現(xiàn)方法變化后仍可使用。軟件具體實現(xiàn)與黑盒測試用例設(shè)計可以同步進行,因此能夠節(jié)約軟件項目總體開發(fā)時間。5/116

3.2等價類劃分法3.2.1等價類劃分思想 3.2.2等價類劃分的規(guī)則 3.2.3測試用例設(shè)計步驟與實例6/1163.2.1等價類劃分思想 基本思想:如何將輸入數(shù)據(jù)集合劃分為多個適當(dāng)?shù)臄?shù)據(jù)子集合(即等價類),使得每個等價類中選取的數(shù)據(jù)可以代表該類中的其它數(shù)據(jù)。優(yōu)點:通過等價類劃分法,我們可以將不能窮舉的輸入數(shù)據(jù)合理劃分為有限個數(shù)的等價類,然后在每個等價類中選取少量數(shù)據(jù)來代替對于這一類其它數(shù)據(jù)的測試。7/116劃分的基礎(chǔ):在分析需求規(guī)格說明的基礎(chǔ)上劃分等價類,不需要考慮程序的內(nèi)部結(jié)構(gòu)。將所有可能的輸入數(shù)據(jù)劃分為若干個互不相交的子集。也就是說,所有等價類的并集即是整個輸入域,各等價類數(shù)據(jù)之間互不相交。每個等價類中的各個輸入數(shù)據(jù)對于揭示程序錯誤都是等效的,如果用等價類中的一個數(shù)據(jù)進行測試不能發(fā)現(xiàn)程序錯誤,那么用該等價類中的其它數(shù)據(jù)進行測試也不可能發(fā)現(xiàn)程序錯誤。8/116整數(shù)相加程序的等價類劃分例子:對兩個整型數(shù)據(jù)相加的程序,可以將其輸入域劃分為如表3-1所示的9個等價類,用9個測試用例代表了眾多輸入數(shù)據(jù)組合情況。表3-1整數(shù)相加程序的等價類劃分等價類編號加數(shù)1加數(shù)2測試用例1正整數(shù)正整數(shù)4+62正整數(shù)零5+03正整數(shù)負整數(shù)6+(-7)4零正整數(shù)0+85零零0+06零負整數(shù)0+(-9)7負整數(shù)正整數(shù)(-2)+(-5)8負整數(shù)零(-7)+09負整數(shù)負整數(shù)(-6)+(-10)9/116“有效等價類”和“無效等價類”“有效等價類”是指對于程序的規(guī)格說明來說是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合,利用有效等價類可以檢驗程序是否實現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能要求。“無效等價類”與有效等價類相反,是指對程序的規(guī)格說明來說是無意義、不合理的輸入數(shù)據(jù)構(gòu)成的集合,利用無效等價類可以檢驗程序是否具有容錯性和較高的可靠性。10/1163.2.2等價類劃分的規(guī)則 (1)按輸入?yún)^(qū)間劃分如果規(guī)格說明規(guī)定了輸入數(shù)據(jù)的取值范圍或者是規(guī)定了取值數(shù)量的情況下,可以確定一個有效等價類和兩個無效等價類。第一種情況,在確定了取值范圍的情況下,例如統(tǒng)計學(xué)生成績的程序規(guī)定學(xué)生成績范圍是0≤成績≤100,其等價類的劃分如圖3-1所示。圖3-1按輸入?yún)^(qū)間劃分等價類11/1163.2.2等價類劃分的規(guī)則 (2)按數(shù)值集合劃分(3)按離散數(shù)值劃分(4)按限制條件或規(guī)則劃分(5)按布爾量取值劃分(6)細分等價類12/1163.2.2測試用例設(shè)計步驟與實例 步驟:(1)按照表3-2所示建立等價類表,列舉出所有劃分的有效等價類和無效等價類。表3-2等價類表(2)給每一個等價類規(guī)定一個唯一的編號。(3)設(shè)計一個有效等價類測試用例,使其盡可能多的覆蓋尚未覆蓋的有效等價類。重復(fù)這一步驟,直到所有的有效等價類都被測試用例所覆蓋。(4)設(shè)計一個無效等價類測試用例,使其只覆蓋一個無效等價類。重復(fù)這一步驟,直到所有的無效等價類都被測試用例所覆蓋。輸入條件有效等價類無效等價類………………13/1163.2.2測試用例設(shè)計步驟與實例 實例:三角形問題可以按照表3-3所示建立等價類表,列舉出所有的有效等價類和無效等價類,并且給每一個等價類規(guī)定一個唯一的編號。表3-3三角形問題的等價類表輸入條件有效等價類無效等價類是否為一般三角形A>0(1)B>0(2)C>0(3)A+B>C(4)B+C>A(5)A+C>B(6)A≤0(7)B≤0(8)C≤0(9)A+B≤C(10)B+C≤A(11)A+C≤B(12)14/1163.2.2測試用例設(shè)計步驟與實例 實例:三角形問題表3-3續(xù)表輸入條件有效等價類無效等價類是否為等腰三角形A=B(13)B=C(14)A=C(15)A≠BandB≠CandA≠C(16)是否為等邊三角形A=BandB=CandA=C(17)A≠B(18)B≠C(19)A≠C(20)15/1163.2.2測試用例設(shè)計步驟與實例 實例:三角形問題表3-4三角形問題的等價類測試用例用例編號A,B,C覆蓋等價類編號輸出14,5,81~6一般三角形26,6,81~6,13等腰三角形37,5,51~6,1445,6,51~6,1556,6,61~6,17等邊三角形60,4,57不能構(gòu)成一個三角形75,-3,7883,4,0993,5,810108,3,411115,9,412126,7,81~6,16非等腰三角形135,6,61~6,14,18非等邊三角形145,6,51~6,15,19156,6,71~6,13,2016/1163.2.2測試用例設(shè)計步驟與實例 實例:我國的固定電話號碼一般由“地區(qū)碼+電話號碼”組成,主要的編碼規(guī)則如下:(1)地區(qū)碼是以0開頭的3位或者4位數(shù)字,區(qū)內(nèi)通話時可以為空白。(2)電話號碼是以非0和非1開頭的7位或者8位數(shù)字。一個應(yīng)用程序接受符合上述規(guī)則的電話號碼,需要設(shè)計等價類測試用例對其進行測試。該問題的等價類劃分如表3-5所示,相應(yīng)的測試用例如表3-6所示。17/1163.2.2測試用例設(shè)計步驟與實例 表3-5電話號碼問題的等價類表輸入條件有效等價類無效等價類地區(qū)碼空白(1)以0開頭的3位地區(qū)碼(2)以0開頭的4位地區(qū)碼(3)以非0開頭的3位數(shù)字(4)以非0開頭的4位數(shù)字(5)以0開頭小于3位的數(shù)字(6)以0開頭大于4位的數(shù)字(7)以0開頭含有非數(shù)字字符(8)電話號碼以非0和非1開頭的7位號碼(9)以非0和非1開頭的8位號碼(10)以0開頭的7位或8位數(shù)字(11)以1開頭的7位或8位數(shù)字(12)以非0和非1開頭小于7位的數(shù)字(13)以非0和非1開頭大于8位的數(shù)字(14)以非0和非1開頭含有非數(shù)字字符(15)18/1163.2.2測試用例設(shè)計步驟與實例 表3-6電話號碼問題的等價類測試用例用例編號輸入數(shù)據(jù)覆蓋等價類編號輸出地區(qū)碼電話號碼1空白856793721,10有效2025734652162,10有效30571674299353,10有效4074583415683,9有效5973587294114無效6361274215535無效701374589346無效80527484653717無效902hc765389248無效100100475832511無效110516185643912無效1402185462313無效15035169767645314無效160298721cd6715無效19/1163.2.2測試用例設(shè)計步驟與實例 等價類劃分需要經(jīng)過以下兩個思維過程:(1)分類。將輸入域根據(jù)相同特性或類似功能進行分類。(2)抽象。在各個等價類中抽象出相同特性,然后用數(shù)據(jù)實例來表征這個特性。等價類劃分法的優(yōu)缺點:優(yōu)點:是用相對較少的測試用例就能夠進行比較完整的輸入數(shù)據(jù)覆蓋,解決了不能窮舉測試的問題。缺點:是需要花費很多時間去定義規(guī)格說明中一般不會給出的無效測試用例預(yù)期輸出。另外,等價類劃分法缺乏對特殊測試用例的考慮,并且經(jīng)常需要深入的系統(tǒng)知識才能劃分出合適的等價類。20/116

3.3邊界值分析法3.3.1邊界值選取原則 3.3.2兩類邊界值選取方法 3.3.3邊界值分析法示例 3.3.4邊界值分析法的特點 21/116

3.3.1邊界值選取原則

邊界值是使等價類的每個邊界都要作為測試條件,在邊界處選取正好等于、剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù)。此外,邊界值分析法不僅需要考慮輸入條件邊界,還要考慮輸出域邊界的情況。一個程序中常見的邊界情況有以下幾種:循環(huán)結(jié)構(gòu)中第0次、第一次和最后一次循環(huán)。數(shù)組的第一個和最后一個下標(biāo)元素。變量類型所允許的最大和最小值。一個鏈表的頭尾結(jié)點。用戶名和密碼等可接受字符個數(shù)的最大值和最小值。報表的第一行、第一列、最后一行和最后一列。22/116

3.3.1邊界值選取原則根據(jù)邊界值分析法選擇測試用例的原則:如果輸入條件規(guī)定了取值的范圍,那么測試用例輸入數(shù)據(jù)應(yīng)選取所規(guī)定范圍的邊界值以及剛剛超過范圍邊界的值。如果輸入條件規(guī)定了值的個數(shù),那么測試用例選擇最大個數(shù)、最小個數(shù)、比最大個數(shù)多1個和比最小個數(shù)少1個的數(shù)據(jù)等作為測試數(shù)據(jù)。根據(jù)規(guī)格說明的每一個輸出條件,分別使用以上兩個規(guī)則。如果輸入域和輸出域是順序表或順序文件等有序集合,那么選取集合的第一個和最后一個元素作為測試用例。對于程序的內(nèi)部數(shù)據(jù)結(jié)構(gòu),選擇其邊界值作為測試用例。分析規(guī)格說明并找出其它可能的邊界條件。23/1163.3.2兩類邊界值選取方法測試用例的數(shù)據(jù)選取一般有如下兩種方法:五點法、七點法。圖3-2兩類邊界值數(shù)據(jù)選取方法24/1163.3.2兩類邊界值選取方法(1)一般邊界值分析假設(shè)一個被測程序具有兩個輸入變量X1和X2,規(guī)定a≤X1≤b,c≤X2≤d。在采用一般邊界值分析方法時,其測試用例的數(shù)據(jù)選取按照如圖3-2(a)所示進行,共產(chǎn)生如表3-7所示的9個測試用例。表3-7兩變量一般邊界值分析測試用例

除了上下邊界處的4個取值外,每個變量可以共用一個各變量取值均為正常值的測試用例。那么,一般邊界值分析測試用例的數(shù)量為4N+1個。編號123456789X1aa+normalb-bnormalnormalnormalnormalX2normalnormalnormalnormalnormalcc+d-d25/1163.3.2兩類邊界值選取方法(2)健壯性邊界值分析相比于一般邊界值分析,健壯性邊界值分析需要為每個變量額外考慮略超過最大值max+和略小于最小值min-兩種情況。因此對于兩個變量的情況,其邊界值按照如圖3-2(b)所示,對于含有N個變量的程序,健壯性邊界值分析測試用例的數(shù)量為6N+1個。健壯性測試的意義在于測試例外情況下程序如何處理。例如,輸入緩沖區(qū)溢出如何處理,電梯的負荷超過最大值時是否能夠報警并拒絕啟動運行等。對強類型語言(如C語言)進行健壯性測試比較困難,超過變量取值范圍的值都會產(chǎn)生異常。26/1163.3.3邊界值分析法示例

一個函數(shù)包含3個輸入變量,分別為Year、Month和Day,其輸出是輸入日期后一天的日期。例如,輸入是2018年3月11日,則函數(shù)輸出為2018年3月12日。要求3個輸入變量均為正整數(shù)值,并且1900≤Year≤2050,1≤Month≤12,1≤Day≤31。

采用一般邊界值分析法設(shè)計測試用例,因為問題中共有3個變量,所以測試用例數(shù)量為4N+1=4×3+1=13個。測試用例如表3-8所示。27/1163.3.3邊界值分析法示例

表3-8日期函數(shù)一般邊界值分析法測試用例用例編號YearMonthDay預(yù)期輸出123451900190120182049205088888666661900年8月7日1901年8月7日2018年8月7日2049年8月7日2050年8月7日6789201820182018201812111266662018年1月7日2018年2月7日2018年11月7日2018年12月7日10111213201820182018201888881230312018年8月2日2018年8月3日2018年8月31日2018年9月1日28/1163.3.4邊界值分析法的特點由于邊界值分析法假設(shè)變量是完全獨立的,不考慮它們之間的依賴關(guān)系,因此只是針對各個變量的邊界范圍導(dǎo)出了變量的極限值,沒用分析函數(shù)的具體性質(zhì),也沒有考慮變量的語義含義。另外,采用邊界值分析法測試布爾型變量和邏輯變量的意義不大,因為其取值僅有True和False兩種情況。29/116

3.4判定表驅(qū)動法3.4.1判定表的構(gòu)造與化簡 3.4.2判定表驅(qū)動法應(yīng)用實例 3.4.3適用范圍及優(yōu)缺點 30/1163.3.1

判定表的構(gòu)造與化簡判定表能夠?qū)?fù)雜的邏輯關(guān)系和多種條件組合的情況直觀和清晰地表達出來,因此便于程序開發(fā)人員理解設(shè)計要求,同時便于對設(shè)計結(jié)果進行檢查。一個判定表由如圖3-3所示的4個部分構(gòu)成:(1)條件樁:列出了問題所包含的所有條件。一般情況下,條件的排列順序無關(guān)緊要。(2)動作樁:列出了問題規(guī)定可能采取的操作。對這些操作的排列順序一般沒有什么要求。(3)條件項:條件樁中的每個條件可以取真值或假值,條件項給出了這些條件取值的多種組合情況。(4)動作項:列出了在各種條件取值情況下應(yīng)當(dāng)采取的相應(yīng)動作。31/1163.3.1

判定表的構(gòu)造與化簡

圖3-3判定表的構(gòu)成判定表的構(gòu)造目的是為了表達和獲取規(guī)則,規(guī)則是任何條件組合的特定取值及其應(yīng)當(dāng)執(zhí)行的操作。在一個判定表中,貫穿條件項和動作項的一列就是一條規(guī)則。一個判定表中給出了多少條件組合情況,相應(yīng)的也就有多少條規(guī)則,即條件項和動作項有多少列。對于包含n個條件的判定表來講,因為每個條件有真假兩種取值情況,因此判定表有2n個規(guī)則。32/1163.3.1

判定表的構(gòu)造與化簡

一個判定表的構(gòu)造過程包含如下5個步驟:(1)列出所有的條件樁和動作樁。(2)根據(jù)條件樁中條件的個數(shù)確定規(guī)則的個數(shù)。(3)根據(jù)條件組合,填入條件取值,形成每一個條件項。(4)填入對應(yīng)的動作項,得到初始判定表。(5)化簡初始判定表,合并相似規(guī)則。33/1163.3.1

判定表的構(gòu)造與化簡

構(gòu)造實例:假設(shè)一個程序的規(guī)格說明要求:“對于各科成績均高于85分并且是優(yōu)秀畢業(yè)生的人員,或者是總成績大于450分的人員,應(yīng)當(dāng)優(yōu)先錄取,其它情況進行正常處理”。從規(guī)格說明可知,條件樁由“各科成績均高于85分”、“優(yōu)秀畢業(yè)生”和“總成績大于450分”3個條件構(gòu)成,動作樁由“優(yōu)先錄取”和“正常處理”兩種動作構(gòu)成。因為有3個條件,所以有23=8個規(guī)則。根據(jù)8種條件取值組合情況,可以得到如表3-9所示的初始判定表。34/1163.3.1

判定表的構(gòu)造與化簡

表3-9初始判定表12345678條件各科成績均高于85分YYYYNNNN優(yōu)秀畢業(yè)生YYNNYYNN總成績大于450分YNYNYNYN動作優(yōu)先錄取√√√

正常處理

√35/1163.3.1

判定表的構(gòu)造與化簡

表3-10化簡后的判定表1,2345,76,8條件各科成績均高于85分YYYNN優(yōu)秀畢業(yè)生YNN――總成績大于450分―YNYN動作優(yōu)先錄取√√

正常處理

√36/1163.3.1

判定表的構(gòu)造與化簡

化簡:通過合并相似規(guī)則,減少規(guī)則總體數(shù)量。

如果一個判定表中的兩條或多條規(guī)則具有相同的動作,并且它們的條件項非常相似,那么可以考慮將這些規(guī)則合并為一條規(guī)則。圖3-4判定表規(guī)則的合并37/1163.3.1

判定表的構(gòu)造與化簡

如圖3-4(a)所示,兩條規(guī)則的動作項相同,條件項中前兩項條件的取值相同,只有第3項條件的取值不同。這種情況下,無論第3項條件取任何值,都會執(zhí)行相同的動作。因此,可以將兩條規(guī)則合并為一條,用特定符號“―”表示動作與該項條件取值無關(guān)。與圖3-4(a)類似,在圖3-4(b)中,無關(guān)條件項“―”可以包含其它條件項取值,具有相同動作的規(guī)則還可以進一步合并。38/1163.4.2判定表驅(qū)動法應(yīng)用實例

一個函數(shù)根據(jù)A、B和C三條邊的輸入值判斷是否能夠構(gòu)成一個三角形,如果能夠構(gòu)成三角形,進而判斷是等腰三角形還是等邊三角形。A、B和C均為正整數(shù)。根據(jù)問題描述可以構(gòu)造如表3-11所示的判定表,判定表中共有8條規(guī)則,根據(jù)每一條規(guī)則所對應(yīng)的條件取值,選取相應(yīng)的測試輸入數(shù)據(jù),就可以設(shè)計出8條判定表驅(qū)動法測試用例。39/1163.4.2判定表驅(qū)動法應(yīng)用實例

表3-11判斷三角形類型問題的判定表序號12345678條件A+B>CNYYYYYYYA+C>B―NYYYYYYB+C>A――NYYYYYA=B―――YYNNNA=C―――YNYNNB=C――――――YN動作非三角形√√√

不等邊三角形

√等腰三角形

√√√√

等邊三角形

40/1163.4.2判定表驅(qū)動法應(yīng)用實例

在應(yīng)用判定表驅(qū)動法設(shè)計測試用例時,還需要注意默許規(guī)則和默許操作的問題。下面我們通過一個實例來說明該問題。如果一個軟件的規(guī)格說明如下:(1)當(dāng)條件1和條件2滿足,并且條件3和條件4不滿足,或者當(dāng)條件1、3和條件4滿足時,要執(zhí)行操作1。(2)在任意一個條件都不滿足時,要執(zhí)行操作2。(3)當(dāng)條件1不滿足,而條件4被滿足時,要執(zhí)行操作3。41/1163.4.2判定表驅(qū)動法應(yīng)用實例

根據(jù)說明,可以構(gòu)造如表3-12所示的判定表。規(guī)格說明中共有4個條件,判定表只列出了16個規(guī)則中與規(guī)格描述直接相關(guān)的4個規(guī)則。程序在實際執(zhí)行時,當(dāng)遇到除上述4條規(guī)則以外的其它規(guī)則時,需要執(zhí)行一個默許的操作,不需要時,可以忽略這些規(guī)則。但是用判定表驅(qū)動法設(shè)計測試用例時,就必須列出這些默許規(guī)則,如表3-13所示。42/1163.4.2判定表驅(qū)動法應(yīng)用實例

表3-12根據(jù)規(guī)格說明得到的判定表

規(guī)則1規(guī)則2規(guī)則3規(guī)則4條件1YYNN條件2Y―N―條件3NYN―條件4NYNY操作1√√

操作2

操作3

√43/1163.4.2判定表驅(qū)動法應(yīng)用實例

表3-13默許的操作

規(guī)則5規(guī)則6規(guī)則7規(guī)則8條件1―NYY條件2―YYN條件3YNNN條件4NNY―默許操作√√√√44/1163.4.3適用范圍及優(yōu)缺點

優(yōu)點:(1)能將規(guī)格說明中各種復(fù)雜邏輯組合情況一一列舉出來,直觀并且易于理解,便于檢查并且能夠避免功能遺漏。(2)每個測試用例可以覆蓋多種輸入情況,有利于提高測試效率。(3)考慮了輸入條件間的約束關(guān)系,因此避免了無效測試用例,特高了測試有效性。(4)能夠很方便地給出每個測試用例的預(yù)期輸出。45/1163.4.3適用范圍及優(yōu)缺點

缺點:(1)不能表達重復(fù)執(zhí)行的動作,例如循環(huán)語句的執(zhí)行。(2)當(dāng)被測特性較多時,判定表的規(guī)模會很龐大。(3)不能有效地確認某些輸入組合是否必須測試,會造成一定的用例冗余。46/1163.4.3適用范圍及優(yōu)缺點

適合采用判定表驅(qū)動法設(shè)計測試用例的條件如下:(1)規(guī)格說明以判定表形式給出,或者很容易轉(zhuǎn)換成判定表。(2)條件和規(guī)則的排列順序不會影響執(zhí)行哪些操作。(3)每當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗別的操作。(4)如果某一規(guī)則得到滿足要執(zhí)行多個操作,這些操作的執(zhí)行順序無關(guān)緊要。

上述必要條件使得操作的執(zhí)行完全依賴于條件的組合。對于不滿足上述條件的判定表,也可以采用判定表驅(qū)動法設(shè)計測試用例,但是需要增加其它的測試用例作為補充。47/116

3.5因果圖法3.5.1因果圖法的原理 3.5.2因果圖法應(yīng)用實例 48/1163.5.1因果圖法的原理

如果程序輸入條件和動作之間的邏輯關(guān)系是明確的,可以直接使用判定表驅(qū)動法。但是如果條件和動作關(guān)系不明確,則應(yīng)當(dāng)先使用因果圖法。所謂“因”,指的就是程序的輸入條件;所謂果,指的就是程序的輸出條件。優(yōu)點:因果圖法借助圖形,能夠直觀地分析和表達輸入的各種組合關(guān)系、約束關(guān)系以及每種組合條件下的輸出結(jié)果。采用因果圖法,不僅可以發(fā)現(xiàn)輸入和輸出中的錯誤,而且能夠發(fā)現(xiàn)規(guī)格說明中存在的不完整性和二義性問題。49/1163.5.1因果圖法的原理不足:程序輸入與輸出之間的因果關(guān)系有時難以從規(guī)格說明中直接得到。當(dāng)輸入條件很多時,測試用例的數(shù)量會很大,會造成測試工作量大和用例不便于維護的問題,需要根據(jù)實際情況盡量精簡輸入條件的個數(shù)。

因果圖是一種形式化的圖形語言,通過圖形記號將自然語言規(guī)格說明轉(zhuǎn)變成形式化語言規(guī)格說明,能夠嚴格地表達程序輸入和輸出邏輯關(guān)系。50/1163.5.1因果圖法的原理(1)因果圖的表達形式圖3-5因果圖的基本圖形符號圖3-5給出了用于表示規(guī)格說明中4種基本因果關(guān)系的圖形符號,描述了輸入條件之間的邏輯關(guān)系。每一種邏輯符號分為左右結(jié)點,以直線相連。左結(jié)點Ci表示原因(輸入狀態(tài)),右結(jié)點Ei表示結(jié)果(輸出狀態(tài))。原因和結(jié)果結(jié)點都可以取布爾值0或1,0表示條件不成立或狀態(tài)不出現(xiàn),1表示條件成立或狀態(tài)出現(xiàn)。51/1163.5.1因果圖法的原理4種基本因果邏輯關(guān)系的含義分別為:恒等:如果原因出現(xiàn),則結(jié)果出現(xiàn);如果原因不出現(xiàn),則結(jié)果也不出現(xiàn)。非(~):如果原因出現(xiàn),則結(jié)果不出現(xiàn);如果原因不出現(xiàn),則結(jié)果出現(xiàn)。或(∨):如果幾個原因中有一個出現(xiàn),則結(jié)果出現(xiàn);如果幾個原因都不出現(xiàn),則結(jié)果不出現(xiàn)。與(∧):如果幾個原因都出現(xiàn),那么結(jié)果才會出現(xiàn);如果幾個原因中有一個不出現(xiàn),那么結(jié)果就不會出現(xiàn)。

在實際問題中,輸入條件之間、輸出條件之間往往存在著某些依賴關(guān)系,我們稱之為約束。因果圖在基本圖形符號的基礎(chǔ)上,采用一些特定的符號來表示這些約束。52/1163.5.1因果圖法的原理圖3-6因果圖的約束符號

圖3-6(a)到圖3-6(d)分別給出了4種輸入條件之間的約束關(guān)系,圖3-6(e)是一種輸出條件之間的約束關(guān)系,它們的含義分別如下:53/1163.5.1因果圖法的原理E(互斥):表示C1和C2兩個原因不會同時成立,兩個原因中最多有一個可能成立。I(包含):表示C1、C2和C3三個原因中至少有一個必須成立。O(唯一):表示C1和C2兩個原因中必須有一個,且僅有一個成立。R(要求):表示當(dāng)C1出現(xiàn)時,C2也必須出現(xiàn),即C1是1時,C2也必須是1。M(強制):表示當(dāng)結(jié)果E1是1時,結(jié)果E2必須是0。54/1163.5.1因果圖法的原理(2)利用因果圖法設(shè)計測試用例的步驟分析軟件的規(guī)格說明,確定哪些是原因(即輸入條件或輸入條件的等價類),哪些是結(jié)果(即輸出條件),給每一個原因和結(jié)果賦予一個標(biāo)識符。分析軟件規(guī)格說明中的語義信息,確定原因與結(jié)果之間、原因與原因之間對應(yīng)的邏輯關(guān)系,然后根據(jù)這些關(guān)系畫出因果圖。在因果圖上標(biāo)明約束。由于語法或環(huán)境的限制,有些原因和結(jié)果的組合情況是不可能出現(xiàn)的。為了表明這些特性情況,在因果圖上通過標(biāo)準(zhǔn)的符號標(biāo)明約束條件。55/1163.5.1因果圖法的原理將因果圖轉(zhuǎn)化為判定表。根據(jù)判定表的每一項規(guī)則設(shè)計測試用例。因果圖法的分析結(jié)果就是判定表,之后設(shè)計測試用例的方法和判定表驅(qū)動法是一致的。因此可知,因果圖法更適合規(guī)格說明中輸入輸出邏輯復(fù)雜和描述不清晰的情況。對于簡單清晰的條件組合與邏輯關(guān)系,可直接使用判定表驅(qū)動法。56/1163.5.2因果圖法應(yīng)用實例

一個軟件規(guī)格說明要求如下:第一列字符必須是A或B,第二列字符必須是一個數(shù)字,在此情況下進行文件的修改。但是如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。原因:1第一列字符是A;2第一列字符是B;3第二列字符是一個數(shù)字。結(jié)果:21修改文件;22給出信息L;23給出信息M。圖3-7因果圖57/1163.5.2因果圖法應(yīng)用實例

根據(jù)分析出的原因和結(jié)果可以繪制出如圖3-7所示的因果圖。圖中,11是中間原因。因為原因1和原因2不可能同時為1,即第一個字符不可能既是A又是B,因此在因果圖示上對它們施加E約束。由圖3-7的因果圖,可以得到表3-14所示的判定表。

表3-14判定表

12345678原因111110000211001100310101010中間原因11

111100結(jié)果22

00001121

10100023

010101測試用例

A2AKB2BDF4UR

A6A#B7B?S9W!58/1163.5.2因果圖法應(yīng)用實例

因果圖法應(yīng)用實例:

有一個旅館住宿系統(tǒng)可以為游客辦理住宿交費、房間選擇和房間管理任務(wù),其軟件規(guī)格說明要求如下:當(dāng)游客支付預(yù)期入住天數(shù)內(nèi)所有房款或者僅支付住宿押金后,可以選擇“單人間”、“標(biāo)準(zhǔn)間”或“三人間”,然后相應(yīng)類型的房間被開啟。如果游客僅支付押金,則在開啟房間的同時,系統(tǒng)提示房款支付不足。作為示例,這里對實際需求進行了簡化,忽略了房間的狀態(tài),即系統(tǒng)默認各類房間資源始終保持充足的狀態(tài)。59/1163.5.2因果圖法應(yīng)用實例

原因:1-支付全款,2-支付押金,3-選擇單人間,4-選擇標(biāo)準(zhǔn)間,5-選擇三人間。中間原因:11-已支付房款,12-已選擇房間。結(jié)果:21-提示房款支付不足,22-打開某單人間,23-打開某標(biāo)準(zhǔn)間,24-打開某三人間。60/1163.5.2因果圖法應(yīng)用實例

根據(jù)原因和結(jié)果,可以得到圖3-8所示的因果圖。

圖3-8旅館住宿系統(tǒng)因果圖61/1163.5.2因果圖法應(yīng)用實例

表3-15旅館住宿系統(tǒng)判定表1234567891011原因1支付全款111100000002支付押金000011110003選擇單人間100010001004選擇標(biāo)準(zhǔn)間010001000105選擇三人間00100010001中間原因11已支付房款1111111100012已選擇房間11101110111結(jié)果21提示房款支付不足0000111000022打開某單人間1000100000023打開某標(biāo)準(zhǔn)間0100010000024打開某三人間0010001000062/116

3.6正交實驗法3.6.1正交實驗法設(shè)計基本原理 3.6.2正交表及其選擇方法 3.6.3正交實驗法設(shè)計步驟與實例 63/1163.6.1正交實驗法設(shè)計基本原理

正交實驗法又稱為正交實驗設(shè)計法,是根據(jù)伽瓦羅(Galois)理論,研究與處理多因素實驗的一種科學(xué)方法。正交實驗法利用已有的規(guī)格化的“正交表”,從大量的實驗點中挑選出適量的、有代表性的點,合理地安排實驗,用較少的實驗次數(shù),取得較為準(zhǔn)確和可靠的實驗結(jié)果。64/1163.6.1正交實驗法設(shè)計基本原理

一個說明正交實驗法的基本原理的例子。

為了提高某化工產(chǎn)品的轉(zhuǎn)化率,選擇3個影響轉(zhuǎn)化率的因素進行條件試驗:反應(yīng)溫度(A)、反應(yīng)時間(B)、用堿量(C)。分別確定3個試驗因素的取值范圍如下:A:80-90℃B:90-150分鐘C:5-7%試驗的目的是為了確定因素A、B、C對轉(zhuǎn)化率有什么影響,從而確定最適當(dāng)?shù)纳a(chǎn)條件,即溫度、時間和用堿量各為多少才能取得最好的轉(zhuǎn)化率。65/1163.6.1正交實驗法設(shè)計基本原理實驗設(shè)計過程如下:在正交實驗法中,將影響實驗結(jié)果的條件因素稱為因子(Factors),而把各個因子的取值作為狀態(tài),狀態(tài)數(shù)稱為水平數(shù)(Levels)。設(shè)計正交實驗時,需要確定:實驗中有哪些因子,因子數(shù)是多少?每個因子有哪些取值,其水平數(shù)是多少?在上面的例子中,對A、B、C這3個實驗因子各取3個水平值,分別為:A:Al=80℃,A2=85℃,A3=90℃B:Bl=90分,B2=120分,B3=150分C:Cl=5%,C2=6%,C3=7%在正交試驗設(shè)計中,因子的水平值可以是定量的,也可以是定性的。定量因子各水平值之間的距離可以相等,也可以不相等。66/1163.6.1正交實驗法設(shè)計基本原理

對于上面的例子,可以有全面實驗法、簡單對比法和正交實驗法3種實驗方法。圖3-9三種實驗設(shè)計方法的對比67/1163.6.1正交實驗法設(shè)計基本原理(1)全面實驗法

全面實驗法就是將所有因子的水平進行完全組合,對每一種組合情況一一進行實驗。上面的例子是一個3因子3水平的實驗,需要完成33=27次實驗。直觀地來看,這27個實驗點對應(yīng)的是如圖3-9(a)所示的立方體的27個點。全面實驗的優(yōu)點是實驗的全面性,對因子和實驗結(jié)果的關(guān)系反映得非常清楚,缺點是要求的實驗次數(shù)太多。對于m個因子n個水平的實驗,總的實驗次數(shù)為nm。當(dāng)因子數(shù)量和各因子水平數(shù)都很多時,實驗量過大以致無法實現(xiàn)。68/1163.6.1正交實驗法設(shè)計基本原理(2)簡單對比法簡單對比法又稱為孤立因素法。實驗中,只變化一個因素而固定其余因素,然后逐步得到好的組合方案。例如對于上面的例子,首先將因子B和C固定于B1和C1,只變化因子A,得到如下3個實驗點:A1B1C1、A2B1C1、A3B1C1假設(shè)上述3個實驗中A3B1C1的結(jié)果最好,即產(chǎn)品的轉(zhuǎn)化率最高,則接下來固定因子A于A3,因子C仍然固定于C1,只變化因子B,得到如下3個實驗點:A3B1C1(重復(fù)實驗點)、A3B2C1、A3B3C169/1163.6.1正交實驗法設(shè)計基本原理(2)簡單對比法上述實驗點中,A3B1C1已經(jīng)實驗過,因此只需要完成其它兩個實驗點。假設(shè)上述實驗中,A3B2C1的結(jié)果最好,則接下來固定因子A于A3,固定因子B于B2,只變化因子C,得到如下3個實驗點:A3B2C1(重復(fù)實驗點)、A3B2C2、A3B2C3如果上述實驗中,A3B2C2的結(jié)果最好,則認為這種因素取值組合具有最好的轉(zhuǎn)化率。上面的簡單對比法實驗方案在試驗點不重復(fù)時,只用如圖3-9(b)所示的7個試驗點。在實驗不重復(fù),各因子水平數(shù)相同時,簡單對比法的實驗次數(shù)為:水平數(shù)+(因子數(shù)-1)×(水平數(shù)-1)70/1163.6.1正交實驗法設(shè)計基本原理(2)簡單對比法例如6因子5水平的實驗,在不重復(fù)時,只需要5+(6-1)×(5-1)=25次實驗就可以了,如果用完全實驗法,則需要56=15625次實驗。簡單對比法一般也可以取得一定的實驗效果,其最大的優(yōu)點是實驗次數(shù)很少。但是這種方法的缺點是實驗點的分布不夠均勻,往往在一個很大的范圍內(nèi)沒有選點,說明實驗的代表性不是很好,因此不能客觀地反映全部實驗點的情況,最終選擇出的組合情況不一定是所有組合中最好的,很可能存在較大的偏差。先固定哪個因素,后變化哪個因素,都會影響實驗結(jié)果。71/1163.6.1正交實驗法設(shè)計基本原理(3)正交實驗法正交實驗兼顧了上面兩種方法的優(yōu)點,同時又克服了它們的缺點。通過選擇一個合適的正交表L9(34),可以安排如表3-17所示的9次實驗,這9個實驗點如圖3-9(c)所示。正交表L9(34)如表3-16所示,其中,L代表正交表,4是因子數(shù),即正交表的列數(shù),3是因子的水平數(shù),9是實驗的次數(shù),即正交表的行數(shù)。72/1163.6.1正交實驗法設(shè)計基本原理表3-16正交表L9(34)

表3-17正交實驗方案

列號行號ABC

實驗號水平組合實驗因子1234溫度(℃)時間(分)加堿量(%)111111A1B1C180905212222A1B2C2801206313333A1B3C3801507421234A2B1C285906522315A2B2C3851207623126A2B3C1851505731327A3B1C390907832138A3B2C1901205933219A3B3C290150673/1163.6.1正交實驗法設(shè)計基本原理

從圖3-9(c)可以明顯看出,9個實驗點均勻分布在立方體的各個部分,任何一個水平面或者垂直面都有3個點且僅有3個點,而且任何一條線上只有一個點。因此,正交實驗?zāi)軌蚍从橙鎸嶒灥那闆r,在一定的意義上代表了全面實驗,并且實驗次數(shù)大幅減少。 根據(jù)正交表安排實驗時,只需要把每一個實驗因子分別對應(yīng)于正交表的一列,需要注意的是,一個因子對應(yīng)一列,不能使兩個因子對應(yīng)于同一列。例如,在表3-16中,因子A、B、C可以任意地對應(yīng)于正交表L9(34)的某3列,本實驗設(shè)計中選擇開始的3列分別與3個因子相對應(yīng)。然后,把正交表中的數(shù)字“翻譯”成對應(yīng)因子的水平。最后,每一行的水平組合就構(gòu)成了一個實驗項,實驗項不考慮正交表中沒有安排因子的列。

74/1163.6.1正交實驗法設(shè)計基本原理

上面的例子說明,正交試驗法是一種適合研究與處理多因素、多水平試驗的科學(xué)方法。根據(jù)正交性原理,通過選擇合適的正交表,從全面試驗點中挑選出部分有代表性的實驗點,選出的實驗點具有“均勻分布,整齊可比”的特點。“均勻分布”性使實驗點能均衡地分布在實驗數(shù)據(jù)范圍內(nèi),使每個實驗點有充分的代表性;“整齊可比”性方便了對實驗結(jié)果的分析,可以估計各因素對最終實驗結(jié)果的影響,找出影響實驗結(jié)果的主要因素。75/1163.6.2正交表及其選擇方法

正交表是正交實驗設(shè)計的基本工具,是在運用數(shù)學(xué)理論的基礎(chǔ)上構(gòu)造出的一些規(guī)范化的表格,其形式為:L實驗次數(shù)(水平數(shù)因子數(shù))。L:代表正交表。實驗次數(shù):某一正交表所安排的實驗次數(shù),即該正交表的行數(shù),也是用正交實驗法設(shè)計出的測試用例的數(shù)量。水平數(shù):任何單個因子能夠取得的值的最大個數(shù)。因子數(shù):正交表最多可以安排的因子個數(shù),即正交表的列數(shù),也是用正交實驗法設(shè)計測試用例時,所能處理的變量的最大個數(shù)。76/1163.6.2正交表及其選擇方法

常用的正交表有L8(27)、L9(34)、L16(45)、L8(4×24)、L12(3×24)、L16(44×23)等。正交表可以分為兩種,分別是等水平正交表和混合水平正交表。等水平正交表中各因子水平數(shù)相同,混合水平正交表中,某些因子的水平數(shù)會與其它因子的水平數(shù)不同。例如,L9(34)是等水平正交表,4個因子中每個因子都取3個水平;L8(4×24)是混合水平正交表,如表3-18所示,包含1個4水平列和4個2水平列,共有5列,最多可以安排5個因子。77/1163.6.2正交表及其選擇方法

表3-18混合水平正交表L8(4×24)序號1234511111121222232112242221153121263212174122184211278/1163.6.2正交表及其選擇方法正交表有如下的3個性質(zhì):(1)正交性。在正交表任一列中,各水平都以相同的次數(shù)出現(xiàn);任何兩列之間各種不同水平的所有可能組合都會出現(xiàn),且出現(xiàn)次數(shù)相同。(2)代表性。正交表的正交性保證了部分實驗中包含了所有因素的所有水平,并且使得任意兩個因素的所有水平信息及其組合信息無一遺漏,因此可以代表全面實驗。(3)綜合可比性。正交表的正交性使得任意因素各水平的實驗條件相同,因此對于某一因素來講,最大限度地排除了其它因素的干擾,從而可以綜合比較該因素不同水平對實驗結(jié)果的影響程度。79/1163.6.2正交表及其選擇方法

根據(jù)正交表的因子數(shù)和水平數(shù)可以計算出實驗次數(shù):實驗次數(shù)(行數(shù))=∑(每列水平數(shù)-1)+1

例如對于正交表L9(34),實驗次數(shù)=4×(3-1)+1=9;對于正交表L8(4×24),實驗次數(shù)=1×(4-1)+4×(2-1)+1=8。利用上述關(guān)系式可以從所要考察的因子及其水平數(shù)來決定最低的試驗次數(shù),進而選擇合適的正交表。例如,要考察5個3水平因子及一個2水平因子,則最少的試驗次數(shù)為5×(3-1)+1×(2-1)+1=12,也就是說,要在行數(shù)不小于12,既有2水平列又有3水平列的正交表中選擇,因此選擇L18(2×37)最為適合。

80/1163.6.2正交表及其選擇方法從標(biāo)準(zhǔn)正交表中選擇一個合適的正交表時,需要考慮不同的情況。例如,因子數(shù)和水平數(shù)與正交表完全匹配、因子數(shù)或水平數(shù)與正交表不同、因子數(shù)和水平數(shù)與正交表都不相同等。一般來說,當(dāng)不考慮因素間的交互作用時,選擇正交表首先需要滿足正交表的列數(shù)要大于或等于已確定實驗因素個數(shù)這一條件,也就是說,如果因子數(shù)不同,應(yīng)當(dāng)采用正交表列數(shù)包含的方法,從符合列數(shù)條件的正交表中選擇行數(shù)最少的那一個正交表,使得實驗次數(shù)最少。如果水平數(shù)不同,應(yīng)當(dāng)采用包含和組合的方法,選取能夠安排下各因素水平數(shù)的最為合適的正交表。81/1163.6.3正交實驗法設(shè)計步驟與實例通過正交實驗法設(shè)計測試用例的步驟如下:(1)確定因素。根據(jù)軟件規(guī)格說明書,對軟件模塊進行分析,確定影響其運行結(jié)果的因素。(2)確定每個因素的水平。通過分析軟件規(guī)格說明書,找出因素的取值范圍或集合。(3)選擇正交表。根據(jù)因子數(shù)和水平數(shù)選擇一個實驗次數(shù)最少的最合適的正交表。(4)生成測試用例。將每一個測試因子分別對應(yīng)于所選正交表的一列,將這些列中的數(shù)字映射為對應(yīng)測試因子的水平取值。(5)適當(dāng)補充。根據(jù)經(jīng)驗添加一些沒有生成但是有價值的測試用例作為補充。82/1163.6.3正交實驗法設(shè)計步驟與實例(1)人員查詢功能的測試用例設(shè)計查詢功能是大多數(shù)軟件中經(jīng)常出現(xiàn)的功能。例如,需要對某人進行查詢,假設(shè)查詢時有3個獨立的查詢條件:姓名、身份證號、手機號碼,根據(jù)這些查詢條件獲得特定人員的詳細信息。該查詢功能有3個因子??紤]每個查詢條件要么填寫,要么不填寫,即每個因子的水平數(shù)都是2。選擇合適的正交表時,根據(jù)表中的因素數(shù)大于等于3,表中至少有3個因素的水平數(shù)大于等于2,表的行數(shù)取最少的一個,選擇正交表L4(23),如表3-19所示。83/1163.6.3正交實驗法設(shè)計步驟與實例(1)人員查詢功能的測試用例設(shè)計設(shè)計測試用例時,3個查詢條件分別對應(yīng)表3-19中的因子1、2、3,表中的數(shù)字1映射為填寫,數(shù)字2映射為不填寫,得到表3-20所示的4項基本測試用例。考慮特殊情況,補充一個3項查詢條件都不填寫的測試用例,最終生成一個由5個測試用例構(gòu)成的測試集。表3-19正交表L4(23)

表3-20人員查詢測試用例

因子

查詢條件123姓名身份證號手機號碼實驗項1111測試用例1填寫填寫填寫21222填寫不填寫不填寫32123不填寫填寫不填寫42214不填寫不填寫填寫84/1053.6.3正交實驗法設(shè)計步驟與實例(2)軟件兼容性測試用例設(shè)計正交實驗法在兼容性測試中經(jīng)常會被用到,被測軟件需要考慮與其它硬件系統(tǒng)和軟件系統(tǒng)的兼容性。如果只考慮與其它軟件的兼容性,一般都會測試與常用操作系統(tǒng)、瀏覽器、殺毒軟件等的兼容性。另外,還需要考慮在不同屏幕分辨率下,軟件界面的正常顯示問題。由于操作系統(tǒng)有很多種,各自又有不同的版本,瀏覽器和殺毒軟件也存在同樣的情況。如果一一對它們的組合進行測試,測試用例數(shù)會非常龐大。在表3-21中,給出了一個簡化的軟件兼容性測試的因子及其水平數(shù)方案。85/1163.6.3正交實驗法設(shè)計步驟與實例表3-21兼容性測試因子及其水平數(shù)

表3-21中包含4個因子,各因子的水平數(shù)各不相同。由于水平數(shù)不同,采用包含和組合的方法選擇最為合適的正交表,具體來說,合適的正交表需要滿足如下一些條件:水平數(shù)A操作系統(tǒng)B瀏覽器C分辨率D殺毒軟件1A1Windows7B1IE8C11440×900D1360殺毒2A2Windows10B2360瀏覽器C21600×900D2金山毒霸3A3WindowsServer2016B3火狐瀏覽器C31920×1080

4

B4獵豹瀏覽器

86/1163.6.3正交實驗法設(shè)計步驟與實例表中的因子數(shù)≥4;表中至少有1個因子的水平數(shù)≥4;另外的因子中至少有2個因子的水平數(shù)≥3;其余的因子中至少有1個因子的水平數(shù)≥2;行數(shù)取最少的一個。因此,最后選擇正交表L16(45),如表3-22所示。然后,將所選正交表轉(zhuǎn)化為如表3-23所示的測試用例。正交表中的第5列未使用,表3-23中的符號“―”表示可以選擇該因子的任何水平值。通過正交實驗法,將測試用例的數(shù)量從3×4×3×2=72個降為了16個,大幅減少了測試工作量。87/1163.6.3正交實驗法設(shè)計步驟與實例表3-22正交表L16(45)

表3-23軟件兼容性測試用例序號12345測試用例ABCD1111111A1B1C1D12122222A1B2C2D23133333A1B3C3―4144444A1B4――5212345A2B1C2―6221436A2B2C1―7234127A2B3―D18243218A2B4C3D29313429A3B1C3―103243110A3B2――113312411A3B3C1D2123421312A3B4C2D1134142313―B1―D2144231414―B2C3D1154324115―B3C2―164413216―B4C1―88/116

3.7場景法3.7.1場景法的基本概念 3.7.2基本流和備選流 3.7.3場景法的設(shè)計步驟與實例 89/1163.7.1場景法的基本概念

場景法運用場景對系統(tǒng)的功能點或業(yè)務(wù)流程進行描述,然后設(shè)計測試用例,從而提高了對系統(tǒng)主要功能和業(yè)務(wù)流程的測試效果。場景也可以通俗的理解為是由“哪些人、什么時間、什么地點、做什么以及如何做”等要素組成的一系列相關(guān)活動,主要表明了用戶執(zhí)行系統(tǒng)的操作序列。通過場景可以描述和模擬出在不同情況下,所有系統(tǒng)功能點和業(yè)務(wù)流程的執(zhí)行情況。90/1163.7.1場景法的基本概念

場景的概念與描述軟件功能的用例模型緊密相關(guān)。一個用例模型描述了軟件系統(tǒng)的外部行為者(通常是一些典型用戶)所理解的系統(tǒng)功能,用例經(jīng)常被用來捕獲系統(tǒng)需求。每個用例提供了一個或多個場景,一個場景是用例的一個實例,是特定用戶以特定方式執(zhí)行該用例的過程,揭示了系統(tǒng)是如何同最終用戶或其它系統(tǒng)交互的,反映了系統(tǒng)的業(yè)務(wù)流程,明確了系統(tǒng)業(yè)務(wù)功能的主要目標(biāo)。通過場景,可以生動地描繪出用戶使用軟件的過程以及主要的業(yè)務(wù)流程,方便了測試用例的設(shè)計,同時也使測試用例易于理解和執(zhí)行,達到較好的需求覆蓋。91/1163.7.1場景法的基本概念

場景法適合測試業(yè)務(wù)流程清晰的系統(tǒng)或功能。最終用戶希望軟件能夠?qū)崿F(xiàn)其業(yè)務(wù)需求,而不只是簡單的功能組合。對于單個功能,利用等價類、邊界值、判定表等方法能夠解決大部分測試問題。但是涉及對業(yè)務(wù)流程的測試,采用場景法比較合適。一般是在驗證單點功能后,再通過場景法對業(yè)務(wù)流程進行驗證。92/116場景法一般包括基本流和備選流,如圖3-10所示?;玖鳎翰捎弥焙诰€表示,是經(jīng)過用例的最簡單的路徑,即無任何差錯,程序從開始直接執(zhí)行到結(jié)束的流程,往往是大多數(shù)用戶最常使用的操作過程,體現(xiàn)了軟件的主要功能與流程。通常,一項業(yè)務(wù)僅存在一個基本流,并且基本流僅有一個起點和一個終點。3.7.2基本流和備選流圖3-10基本流和備選流93/116備選流:除基本流之外的各支流,采用不同顏色表示。一個備選流可能從基本流開始,在某個特定條件下執(zhí)行,然后重新加入到基本流中(如備選流1和3);也可以起源于另一個備選流(如備選流2);也可以終止用例而不再加入到基本流中(如備選流2和4),反映了各種異常和錯誤情況。3.7.2基本流和備選流圖3-10基本流和備選流94/116根據(jù)圖3-10,可以確定以下用例場景:場景1:基本流場景2:基本流→備選流1場景3:基本流→備選流1→備選流2場景4:基本流→備選流3場景5:基本流→備選流3→備選流1場景6:基本流→備選流3→備選流1→備選流2場景7:基本流→備選流4場景8:基本流→備選流3→備選流43.7.2基本流和備選流95/116

為了簡化對問題的分析,上述場景中只考慮了備選流3循環(huán)執(zhí)行一次的情況。基本流和備選流的區(qū)別如表3-24所示。表3-24基本流和備選流的區(qū)別3.7.2基本流和備選流基本流備選流測試重要性重要次要數(shù)量一個一個或多個初始節(jié)點位置系統(tǒng)初始狀態(tài)基本流或其它備選流終止結(jié)點位置系統(tǒng)終止?fàn)顟B(tài)基本流或系統(tǒng)它終止?fàn)顟B(tài)是否構(gòu)成完整的業(yè)務(wù)流程是否,僅為業(yè)務(wù)流程的執(zhí)行片段能否構(gòu)成場景能否,需要和基本流共同構(gòu)成場景96/116基于場景法設(shè)計測試用例時,需要重點設(shè)計出用戶使用被測軟件過程中的重要操作,一般包括以下兩類:(1)模擬用戶完成正常功能和核心業(yè)務(wù)邏輯的操作,以驗證軟件功能的正確性;(2)模擬用戶操作中出現(xiàn)的主要錯誤,以驗證軟件的異常錯誤處理能力。因此,場景法的使用要求用例設(shè)計者對被測軟件的業(yè)務(wù)邏輯和主要功能非常熟悉。執(zhí)行用例時,不僅要留意基本操作場景和異常操作場景的系統(tǒng)功能執(zhí)行情況,還要關(guān)注場景各個操作環(huán)節(jié)所涉及的界面易用性、安全等非功能特性。3.7.3場景法的設(shè)計步驟與實例97/116基于場景法測試的難點在于:(1)如何根據(jù)被測軟件的業(yè)務(wù)來構(gòu)建基本流和備選流;(2)如何根據(jù)事件流來構(gòu)建場景以滿足測試完備和無冗余的要求;(3)如何根據(jù)場景設(shè)計測試用例。當(dāng)備選流很多時,場景的構(gòu)建實際上等同于業(yè)務(wù)執(zhí)行路徑的構(gòu)建。備選流越多,則執(zhí)行路徑越多,與程序執(zhí)行路徑類似,將導(dǎo)致場景爆炸。這種情況下,需要選取典型場景進行測試,基本原則如下:(1)有且僅有一個場景包含基本流;(2)最少場景數(shù)等于基本流和備選流的總數(shù);(3)對于某個備選流,至少應(yīng)當(dāng)有一個場景覆蓋它,并且該場景應(yīng)當(dāng)盡量避免覆蓋其它的備選流。3.7.3場景法的設(shè)計步驟與實例98/116根據(jù)場景法設(shè)計測試用例的步驟如下:(1)根據(jù)說明,描述出程序的基本流及各項備選流。(2)根據(jù)基本流和各項備選流生成不同的場景。(3)對每一個場景生成相應(yīng)的測試用例。(4)對生成的所有測試用例重新審查,去掉多余的測試用例。測試用例確定后,對每一個測試用例確定測試數(shù)據(jù)值。3.7.3場景法的設(shè)計步驟與實例99/116下面,我們通過一個簡化的實例來說明基于場景法的測試用例設(shè)計方法。某旅館住宿系統(tǒng)支持網(wǎng)上預(yù)定業(yè)務(wù)。游客訪問網(wǎng)站進行房間預(yù)定操作,選擇預(yù)訂日期、合適的房間后,進行在線預(yù)定。此時,需要使用個人賬號登錄系統(tǒng),待登錄成功后,進行定金支付。定金支付成功后,生成房間預(yù)訂單,完成整個房間預(yù)定流程。系統(tǒng)允許的預(yù)訂期限為30天,定金金額為400元。3.7.3場景法的設(shè)計步驟與實例100/116(1)確定基本流和備選流 根據(jù)實例的說明,確定基本流和備選流如表3-25所示。表3-25基本流和備選流表3.7.3場景法的設(shè)計步驟與實例類型描述類型描述基本流選擇預(yù)訂日期備選流1預(yù)訂日期超限選擇房間備選流2無空余房間登錄賬戶備選流3賬戶不存在定金支付備選流4密碼錯誤產(chǎn)生預(yù)訂訂單備選流5用戶賬號余額不足101/116(2)根據(jù)基本流和備選流生成不同的場景場景1(成功預(yù)訂房間):基本流。場景2(預(yù)訂日期超限):基本流、備選流1。場景3(無空余房間):基本流、備選流2。場景4(賬戶不存在):基本流、備選流3。場景5(密碼錯誤):基本流、備選流4。場景6(用戶賬號余額不足):基本流、備選流5。3.7.3場景法的設(shè)計步驟與實例102/116(3)測試用例設(shè)計對于每一個場景都需要確定測試用例,可以采用矩陣或決策表來確定和管理測試用例,表3-26是結(jié)合場景確定的基本測試用例。表中顯示了一種通用格式,表中各行代表各個測試用例,各列代表測試用例的信息。每個測試用例包括用例ID、場景/條件(或說明)、測試用例中涉及的所有數(shù)據(jù)元素(作為輸入或已經(jīng)存在于數(shù)據(jù)庫中)以及預(yù)期結(jié)果。

3.7.3場景法的設(shè)計步驟與實例103/116(3)測試用例設(shè)計一般從確定執(zhí)行用例場景所需的數(shù)據(jù)元素入手構(gòu)建矩陣。然后,對于每個場景,至少要確定包含執(zhí)行場景所需的測試用例的條件情況。例如,在表3-26的矩陣中,“V”表明這個條件必須是有效的(Valid)才可執(zhí)行基本流,而“I”表明在這種條件無效的(Invalid)情況下將激活所需備選流,“n/a”(不適用)表示這個條件不適用于測試用例。3.7.3場景法的設(shè)計步驟與實例104/116表3-26測試用例表在上面的矩陣中,無需為條件輸入任何實際的數(shù)值,這樣做的優(yōu)點是只需要查看各條件“V”和“I”的設(shè)定情況,如果某個條件不具備“I”的取值情況,則說明還未測試該條件無效的情況,提示測試用例還不夠充足。

3.7.3場景法的設(shè)計步驟與實例用例場景/條件預(yù)訂日期房間賬號密碼賬號余額預(yù)期結(jié)果1場景1:成功預(yù)訂房間VVVVV成功預(yù)訂,提示“預(yù)訂成功”,賬號余額減少2場景2:預(yù)訂日期超限In/an/an/an/a提示“預(yù)訂日期無效”,重選預(yù)訂日期3場景3:無空余房間VIn/an/an/a提示“預(yù)訂日期房間已滿”,重選預(yù)訂日期4場景4:賬戶不存在VVIn/an/a提示“賬號不存在”,重新輸入賬號5場景5:密碼錯誤VVVIn/a提示“密碼錯誤”,重新輸入密碼6場景6:賬號余額不足VVVVI提示“賬號余額不足請充值”105/116(4)確定測試用例數(shù)據(jù)值

假定UserOne為已注冊用戶,密碼為MyPass;UserTwo是未注冊的用戶。表3-27測試用例表3.7.3場景法的設(shè)計步驟與實例用例場景/條件預(yù)訂日期房間賬號密碼賬號余額預(yù)期結(jié)果1場景1一個有效日期未滿UserOneMyPass800成功預(yù)訂2場景2一個超出預(yù)訂期限的日期n/an/an/an/a日期超限3場景3一個有效日期已滿n/an/an/a無空房間4場景4一個有效日期未滿UserTwon/an/a賬戶錯誤5場景5一個有效日期未滿UserOneNoPassn/a密碼錯誤6場景6一個有效日期未滿UserOneMyPass200余額不足106/116

錯誤

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論