




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、測試用例的設(shè)計方法等價類劃分方法:1 .方法簡介1 .定義是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。該方法是一種重要的,常用的黑盒測試用例設(shè)計方法。2 .劃分等價類:等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的,并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試,因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件就可以用少量代表性的測試數(shù)據(jù)取得較好的測試結(jié)果。等價類劃分可有兩種不同的情況:有效等價類和無效等價類。1)有效等價類是
2、指對于程序的規(guī)格說明來說是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用有效等價類可檢驗程序是否實現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能。2)無效等價類與有效等價類的定義恰巧相反。無效等價類指對程序的規(guī)格說明是不合理的或無意義的輸入數(shù)據(jù)所構(gòu)成的集合。對于具體的問題,無效等價類至少應(yīng)有一個,也可能有多個。設(shè)計測試用例時,要同時考慮這兩種等價類。因為軟彳不僅要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗,這樣的測試才能確保軟件具有更高的可靠性。3 .劃分等價類的標(biāo)準(zhǔn):1)完備測試、避免冗余;2)劃分等價類重要的是:集合的劃分,劃分為互不相交的一組子集,而子集的并是整個集合;3)并是整個集合:完備性;4)子集互不相交
3、:保證一種形式的無冗余性;5)同一類中標(biāo)識(選擇)一個測試用例,同一等價類中,往往處理相同,相同處理映射到“相同的執(zhí)行路徑”。4 .劃分等價類的方法1)在輸入條件規(guī)定了取值范圍或值的個數(shù)的情況下,則可以確立一個有效等價類和兩個無效等價類。如:輸入值是學(xué)生成績,范圍是0100;2)在輸入條件規(guī)定了輸入值的集合或者規(guī)定了"必須如何”的條件的情況下,可確立一個有效等價類和一個無效等價類;3)在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類。4)在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個),并且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類。例:輸入條
4、件說明學(xué)歷可為:專科、本科、碩士、博士四種之一,則分別取這四種這四個值作為四個有效等價類,另外把四種學(xué)歷之外的任何學(xué)歷作為無效等價類。5)在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則);6)在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價類進一步的劃分為更小的等價類。5 .設(shè)計測試用例在確立了等價類后,可建立等價類表,列出所有劃分出的等價類輸入條件:有效等價類、無效等價類,然后從劃分出的等價類中按以下三個原則設(shè)計測試用例:1)為每一個等價類規(guī)定一個唯一的編號;2)設(shè)計一個新的測試用例,使其盡可能多地覆蓋
5、尚未被覆蓋地有效等價類,重復(fù)這一步,直到所有的有效等價類都被覆蓋為止;3)設(shè)計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復(fù)這一步,直到所有的無效等價類都被覆蓋為止。2 .實戰(zhàn)演習(xí)1 .某程序規(guī)定:”輸入三個整數(shù)a、b、c分別作為三邊的邊長構(gòu)成三角形。通過程序判定所構(gòu)成的三角形的類型,當(dāng)此三角形為一般三角形、等腰三角形及等邊三角形時,分別作計算“。用等價類劃分方法為該程序進行測試用例設(shè)計。(三角形問題的復(fù)雜之處在于輸入與輸出之間的關(guān)系比較復(fù)雜。)分析題目中給出和隱含的對輸入條件的要求:(1)整數(shù)(2)三個數(shù)(3)非零數(shù)(4)正數(shù)(5)兩邊之和大于第三邊(6)等腰(7)等邊如果a、
6、b、c滿足條件(1)(4),則輸出下列四種情況之一:1)如果不滿足條件(5),則程序輸出為“非三角形"o2)如果三條邊相等即滿足條件(7),則程序輸出為"等邊三角形"。3)如果只有兩條邊相等、即滿足條件(6),則程序輸出為"等腰三角形"。4)如果三條邊都不相等,則程序輸出為"一般三角形"。列出等價類表并編號覆蓋有效等價類的測試用例:abc覆蓋等價類號他345(1)-(7)445(1)-,(8)455(1)-,(9)545(1)-,(10)444(1)-,(11)覆蓋無效等價類的測試用例:2 .設(shè)有一個檔案管理系統(tǒng),要求用戶輸
7、入以年月表示的日期。假設(shè)日期限定在1990年1月2049年12月,并規(guī)定日期由6位數(shù)字字符組成,前4位表示年,后2位表示月?,F(xiàn)用等價類劃分法設(shè)計測試用例,來測試程序的"日期檢查功能"。1)劃分等價類并編號,下表等價類劃分的結(jié)果輸入等價類有效等價類無效等價類日期的類型及長度6位數(shù)字字符有非數(shù)字字符測試數(shù)據(jù)期望結(jié)果覆蓋的有效等價類200211輸入有效、個測試用例,設(shè)計結(jié)果如下:3)為每1尢雙管偵關(guān)墳片測試數(shù)據(jù)期望結(jié)果覆蓋的無效等價類95June無效輸入20036無效輸入2001006無效輸入198912無效輸入200401無效輸入200100無效輸入200113無效輸入3.Ne
8、xtDate函數(shù)包含三個變量:month、day和year日期。例如,輸入為2006年3月7日,則函數(shù)的輸出為量month、day和year均為整數(shù)值,并且滿足下列條件:1&month<121<day<312)設(shè)計測試用例,以便覆蓋所有的有效等價類在表中列出了、,設(shè)計的測試用例如下:1920<year<20501)有效等價類為:M1=月份:1(月份<12D1=日期:1(日期(31Y1=年:1812<年<2012,函數(shù)的輸出為輸入日期后一天的2006年3月8日。要求輸入變少于6位數(shù)字字符多于6位數(shù)字字符年份范圍在19902049之間小于19
9、90大于2049月份范圍在0112之間Q00*T123個有效等價類,編號分別為、2)若條件變量超出取值范圍,month、dayI其無效等價類為:M2=月份:,M3=月份:,D2=日期:D3=日期:中任何一個條件失效,則NextDate函數(shù)都會產(chǎn)生一個輸出,指明相應(yīng)的比如"month的值不在1-12范圍當(dāng)中"。顯然還存在著大量的year的無效組合,月份月份日期日期<1>12<1>31NextDate函數(shù)將這些組合作統(tǒng)一的輸出:"無效輸入日期預(yù)期輸出1912年6月16日丫2=年:年<1812丫3=年:年>2012弱一般等價類測試用例
10、月份日期年6151912強一般等價類測試用例同弱一般等價類測試用例注:弱-有單缺陷假設(shè);健壯-考慮了無效值(一)弱健壯等價類測試用例ID月份日期年預(yù)期輸出WR161519121912年6月16日WR2-1151912月份不在112中WR313151912月份不在112中WR46-11912日期不在131中WR56321912日期不在131中WR66151811年份不在18122012中WR76152013年份不在18122012中(二)強健壯等價類測試用例ID月份-日期年預(yù)期輸出SR1-1151912月份不在112中SR26-11912日期不在131中SR36151811年份不在1812201
11、2中SR4-1-11912兩個無效一個有效SR56-11811兩個無效一個有效SR6-1151811兩個無效一個有效SR7-1-11811三個無效4.傭金問題等價類測試用例,它是根據(jù)傭金函數(shù)的輸出值域定義等價類,來改進測試用例集合。輸出銷售額WS1000元傭金10%1000銷售額&1800傭金=100+(銷售額-1000)*15%銷售額1800傭金=220+(銷售額-1800)*20%測試用例槍機(45)槍托(30)槍管(25)銷售額傭金1555500502151515150017532525252500360根據(jù)輸出域選擇輸入值,使落在輸出域等價類內(nèi),可以結(jié)合弱健壯測試用例結(jié)合。邊界
12、值分析方法:1 .方法簡介1 .定義:邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。2 .與等價劃分的區(qū)別1)邊界值分析不是從某等價類中隨便挑一個作為代表,而是使這個等價類的每個邊界都要作為測試條件。2)邊界值分析不僅考慮輸入條件,還要考慮輸出空間產(chǎn)生的測試情況。3 .邊界值分析方法的考慮:長期的測試工作經(jīng)驗告訴我們,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。使用邊界值分析方法設(shè)計測試用例,首先應(yīng)確定邊界情況
13、。通常輸入和輸出等價類的邊界,就是應(yīng)著重測試的邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù)。4 .常見的邊界值1)對16-bit的整數(shù)而言32767和-32768是邊界2)屏幕上光標(biāo)在最左上、最右下位置3)報表的第一行和最后一行4)數(shù)組元素的第一個和最后一個5)循環(huán)的第0次、第1次和倒數(shù)第2次、最后一次5 .邊界值分析1)邊界值分析使用與等價類劃分法相同的劃分,只是邊界值分析假定錯誤更多地存在于劃分的邊界上,因此在等價類的邊界上以及兩側(cè)的情況設(shè)計測試用例。例:測試計算平方根的函數(shù)- -輸入:實數(shù)- -輸出:實數(shù)- -規(guī)格說明
14、:當(dāng)輸入一個0或比0大的數(shù)的時候,返回其正平方根;當(dāng)輸入一個小于0的數(shù)時,顯示錯誤信息"平方根非法-輸入值小于0"并返回0;庫函數(shù)Print-Line可以用來輸出錯誤信息。2)等價類劃分:I.可以考慮作出如下劃分:a、輸入(i)0和(ii)=0b、輸出(a)=0和(b)ErrorII.測試用例有兩個:a、輸入4,輸出2。對應(yīng)于(ii)和(a)。b、輸入-10,輸出0和錯誤提示。對應(yīng)于(i)和(b)o3)邊界值分析:劃分(ii)的邊界為0和最大正實數(shù);劃分(i)的邊界為最小負實數(shù)和0。由此得到以下測試用例:a、輸入最小負實數(shù)b、輸入絕對值很小的負數(shù)c、輸入0d、輸入絕對值很小
15、的正數(shù)e、輸入最大正實數(shù)4)通常情況下,軟件測試所包含的邊界檢驗有幾種類型:數(shù)字、字符、位置、重量、大小、速度、方位、尺寸、空間等。5)相應(yīng)地,以上類型的邊界值應(yīng)該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最長、空/滿等情況下。6)利用邊界值作為測試數(shù)據(jù)邊界值測試用例的設(shè)計思路字符起始-1個字符/結(jié)束+1個字符假設(shè)一個文本輸入?yún)^(qū)域允許輸入1個到255個字符,輸入1個和255個字符作為有效等價類;輸入0個和256個字符作為無效等價類,這幾個數(shù)值都屬于邊界條件值。數(shù)值最小值-1/最大值+1假設(shè)某軟件的數(shù)據(jù)輸入域要求輸入5位的數(shù)據(jù)值,可以使用10000作為最小值、99999作
16、為最大值;然后使用剛好小于5位和大于5位的數(shù)值來作為邊界條件??臻g小于空余空間一點/大于滿空間一點例如在用U盤存儲數(shù)據(jù)時,使用比剩余磁盤空間大一點(幾KB)的文件作為邊界條件。7)內(nèi)部邊界值分析:在多數(shù)情況下,邊界值條件是基于應(yīng)用程序的功能設(shè)計而需要考慮的因素,可以從軟件的規(guī)格說明或常識中得到,也是最終用戶可以很容易發(fā)現(xiàn)問題的。然而,在測試用例設(shè)計過程中,某些邊界值條件是不需要呈現(xiàn)給用戶的,或者說用戶是很難注意到的,但同時確實屬于檢驗范疇內(nèi)的邊界條件,稱為內(nèi)部邊界值條件或子邊界值條件。內(nèi)部邊界值條件主要有下面幾種:a)數(shù)值的邊界值檢驗:計算機是基于二進制進行工作的,因此,軟件的任何數(shù)值運算都有
17、一定的范圍限制。項范圍或值位(bit)0或者1字節(jié)(byte)0225字(word)065535(單字)或04294967295(雙字)千(K)1024兆(M)1048576吉(G)1073741824b)字符的邊界值檢驗:在計算機軟件中,字符也是很重要的表示元素,其中ASCII和Unicode是常見的編碼方式。下表中列出了一些常用字符對應(yīng)的ASCII碼值。字符ASCII碼值字符ASCII碼值空(null)1°A65空格(space)32a97斜杠(/)丁Z90048z122冒號(:)158單引號(,)9664c)其它邊界值檢驗6 .基于邊界值分析方法選擇測試用例的原則1)如果輸入條
18、件規(guī)定了值的范圍,則應(yīng)取剛達到這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數(shù)據(jù)。例如,如果程序的規(guī)格說明中規(guī)定:"重量在10公斤至50公斤范圍內(nèi)的郵件,其郵費計算公式為"o作為測試用例,我們應(yīng)取10及50,還應(yīng)取10.01,49.99,9.99及50.01等。2)如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù),最小個數(shù),比最小個數(shù)少一,比最大個數(shù)多一的數(shù)作為測試數(shù)據(jù)。比如,一個輸入文件應(yīng)包括1255個記錄,則測試用例可取1和255,還應(yīng)取0及256等。3)將規(guī)則1)和2)應(yīng)用于輸出條件,即設(shè)計測試用例使輸出值達到邊界值及其左右的值。例如,某程序的規(guī)格說明要求計算出
19、"每月保險金扣除額為0至1165.25元",其測試用例可取0.00及1165.24、還可取一0.01及1165.26等。再如一程序?qū)儆谇閳髾z索系統(tǒng),要求每次"最少顯示1條、最多顯示4條情報摘要",這時我們應(yīng)考慮的測試用例包括1和4,還應(yīng)包括0和5等。4)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個元素和最后一個元素作為測試用例。5)如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。6)分析規(guī)格說明,找出其它可能的邊界條件。2 .實戰(zhàn)演習(xí)1 .現(xiàn)有一個學(xué)生標(biāo)準(zhǔn)化考試批閱試卷,產(chǎn)生成績報告的程序。
20、其規(guī)格說明如下:程序的輸入文件由一些有80個字符的記錄組成,如右圖所示,所有記錄分為3組:標(biāo)題:這一組只有一個記錄,其內(nèi)容為輸出成績報告的名字。試卷各題標(biāo)準(zhǔn)答案記錄:每個記錄均在第80個字符處標(biāo)以數(shù)字"2"。該組的第一個記錄的第1至第3個字符為題目編號(取值為1999)。第10至第59個字符給出第1至第50題的答案(每個合法字符表示一個答案)。該組的第2,第3個記錄相應(yīng)為第51至第100,第101至第150,題的答案。每個學(xué)生的答卷描述:該組中每個記錄的第80個字符均為數(shù)字"3"o每個學(xué)生的答卷在若干個記錄中給出。如甲的首記錄第1至第9字符給出學(xué)生姓名及
21、學(xué)號,第10至第59字符列出的是甲所做的第1至第50題的答案。若t題數(shù)超過50,則第2,第3紀(jì)錄分別給出他的第51至第100,第101至第150題的解答。然后是學(xué)生乙的答卷記錄。學(xué)生人數(shù)不超過200,試題數(shù)不超過999o程序的輸出有4個報告:a)按學(xué)號排列的成績單,列出每個學(xué)生的成績、名次。b)按學(xué)生成績排序的成績單。c)平均分數(shù)及標(biāo)準(zhǔn)偏差的報告。d)試題分析報告。按試題號排序,列出各題學(xué)生答對的百分比。解答:分別考慮輸入條件和輸出條件,以及邊界條件。給出下表所示的輸入條件及相應(yīng)的測試用例。輸出條件及相應(yīng)的測試用例表O2 .三角形問題的邊界值分析測試用例在三角形問題描述中,除了要求邊長是整數(shù)外
22、,沒有給出其它的限制條件。在此,我們將三角形每邊邊長的取范圍值設(shè)值為1,100O3 .NextDate函數(shù)的邊界值分析測試用例在NextDate函數(shù)中,隱含規(guī)定了變量mouth和變量day的取值范圍為1<mouth012和10day<31,并設(shè)定變量year的取值范圍為1912<year<2050。錯誤推測方法一.方法簡介1. 定義:基于經(jīng)驗和直覺推測程序中所有可能存在的各種錯誤,從而有針對性的設(shè)計測試用例的方法。2. 錯誤推測方法的基本思想:列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇測試用例。1) 例如,輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況;輸入表格為
23、空格或輸入表格只有一行。這些都是容易發(fā)生錯誤的情況??蛇x擇這些情況下的例子作為測試用例。2) 例如,前面例子中成績報告的程序,采用錯誤推測法還可補充設(shè)計一些測試用例:I. 程序是否把空格作為回答II. 在回答記錄中混有標(biāo)準(zhǔn)答案記錄III. 除了標(biāo)題記錄外,還有一些的記錄最后一個字符即不是2也不是3IV. 有兩個學(xué)生的學(xué)號相同V. 試題數(shù)是負數(shù)。3)再如,測試一個對線性表(比如數(shù)組)進行排序的程序,可推測列出以下幾項需要特別測試的情況:I. 輸入的線性表為空表;II. 表中只含有一個元素;III. 輸入表中所有元素已排好序;IV. 輸入表已按逆序排好;V. 輸入表中部分或全部元素相同。二.實戰(zhàn)演
24、習(xí)暫無因果圖方法一.方法簡介1 .定義:是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。2 .因果圖法產(chǎn)生的背景:等價類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關(guān)系。這樣雖然各種輸入條件可能出錯的情況已經(jīng)測試到了,但多個輸入條件組合起來可能出錯的情況卻被忽視了。如果在測試時必須考慮輸入條件的各種組合,則可能的組合數(shù)目將是天文數(shù)字,因此必須考慮采用一種適合于描述多種條件的組合、相應(yīng)產(chǎn)生多個動作的形式來進行測試用例的設(shè)計,這就需要利用因果圖(邏輯模型)。3 .因果圖介紹1)4種符號分別表
25、示了規(guī)格說明中向4種因果關(guān)系。2)因果圖中使用了簡單的邏輯符號,以直線聯(lián)接左右結(jié)點。左結(jié)點表示輸入狀態(tài)(或稱原因),右結(jié)點表示輸出狀態(tài)(或稱結(jié)果)。3 )Ci表示原因,通常置于圖的左部;ei表示結(jié)果,通常在圖的右部。Ci和ei均可取值0或1,0表示某狀態(tài)不出現(xiàn),1表示某狀態(tài)出現(xiàn)。4 .因果圖概念1) 關(guān)系恒等:若ci是1,則ei也是1;否則ei為0。非:若ci是1,則ei是0;否貝Iei是1?;颍喝鬰1或c2或c3是1,則ei是1;否則ei為0。或"可有任意個輸入。與:若c1和c2都是1,則ei為1;否則ei為0。與”也可有任意個輸入。2) 約束輸入狀態(tài)相互之間還可能存在某些依賴關(guān)系
26、,稱為約束。例如,某些輸入條件本身不可能同時出現(xiàn)。輸出狀態(tài)之間也往往存在約束。在因果圖中,用特定的符號標(biāo)明這些約束。A.輸入條件的約束有以下4類:E約束(異):a和b中至多有一個可能為1,即a和b不能同時為1。I約束(或):a、b和c中至少有一個必須是1,即a、b和c不能同時為0。O約束(唯一);a和b必須有一個,且僅有1個為1。R約束(要求):a是1時,b必須是1,即不可能a是1時b是0。B.輸出條件約束類型輸出條件的約束只有M約束(強制):若結(jié)果a是1,則結(jié)果b強制為0。5.采用因果圖法設(shè)計測試用例的步驟:1)分析軟件規(guī)格說明描述中,那些是原因(即輸入條件或輸入條件的等價類),那些是結(jié)果(
27、即輸出條件),并給每個原因和結(jié)果賦予一個標(biāo)識符。2)分析軟件規(guī)格說明描述中的語義,找出原因與結(jié)果之間,原因與原因之間對應(yīng)的關(guān)系,根據(jù)這些關(guān)系,畫出因果圖。3)由于語法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn),為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件。4)把因果圖轉(zhuǎn)換為判定表。5)把判定表的每一列拿出來作為依據(jù),設(shè)計測試用例。二.實戰(zhàn)演習(xí)1.某軟件規(guī)格說明書包含這樣的要求:第一列字符必須是A或B,第二列字符必須是一個數(shù)字,在此情況下進行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息Mo解答:1)根據(jù)題意,原因和結(jié)果
28、如下:原因:1 第一列字符是A;2 第一列字符是B;3 第二列字符是一數(shù)字。結(jié)果:21修改文件;22給出信息L;23給出信息Mo2)其對應(yīng)的因果圖如下:11為中間節(jié)點;考慮到原因1和原因2不可能同時為1,因此在因果圖上施加E約束。3)根據(jù)因果圖建立判定表。表中8種情況的左面兩列情況中,原因和原因同時為1,這是不可能出現(xiàn)的,故應(yīng)排除這兩種情況。表的最下一欄給出了6種情況的測試用例,這是我們所需要的數(shù)據(jù)。2.有一個處理單價為5角錢的飲料的自動售貨機軟件測試用例的設(shè)計。其規(guī)格說明如下:若投入5角錢或1元錢的硬幣,押下K橙汁或K啤酒的按鈕,則相應(yīng)的飲料就送出來。若售貨機沒有零錢找,則一個顯示K零錢找完
29、的紅燈亮,這時在投入1元硬幣并押下按鈕后,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示K零錢找完的紅燈滅,在送出飲料的同時退還5角硬幣。1)分析這一段說明,列出原因和結(jié)果原因:1 .售貨機有零錢找2 .投入1元硬幣3 .投入5角硬幣4 .押下橙汁按鈕5 .押下啤酒按鈕結(jié)果:21 .售貨機K零錢找完燈亮22 .退還1元硬幣23 .退還5角硬幣24 .送出橙汁飲料25 .送出啤酒飲料2)畫出因果圖,如圖所示。所有原因結(jié)點列在左邊,所有結(jié)果結(jié)點列在右邊。建立中間結(jié)點,表示處理的中間狀態(tài)。中間結(jié)點:11 .投入1元硬幣且押下飲料按鈕12 .押下K橙汁或K啤酒的按鈕13 .應(yīng)當(dāng)找5角零錢并且售貨
30、機有零錢找14 .錢已付清3)轉(zhuǎn)換成判定表:4)在判定表中,陰影部分表示因違反約束條件的不可能出現(xiàn)的情況,刪去。第16列與第32列因什么動作也沒做,也刪去。最后可根據(jù)剩下的16列作為確定測試用例的依據(jù)。判定表驅(qū)動分析方法一.方法簡介1 .定義:判定表是分析和表達多邏輯條件下執(zhí)行不同操作的情況的工具。2 .判定表的優(yōu)點能夠?qū)?fù)雜的問題按照各種可能的情況全部列舉出來,簡明并避免遺漏。因此,利用判定表能夠設(shè)計出完整的測試用例集合。在一些數(shù)據(jù)處理問題當(dāng)中,某些操作的實施依賴于多個邏輯條件的組合,即:針對不同邏輯條件的組合值,分別執(zhí)行不同的操作。判定表很適合于處理這類問題。3 .“閱讀指南”判定表4 .
31、判定表通常由四個部分組成如下圖所示。1)條件樁(ConditionStub):列出了問題得所有條件。通常認為列出的條件的次序無關(guān)緊要。2)動作樁(ActionStub):列出了問題規(guī)定可能采取的操作。這些操作的排列順序沒有約束。3)條件項(ConditionEntry):列出針對它左列條件的取值。在所有可能情況下的真假值。4)動作項(ActionEntry):列出在條件項的各種取值情況下應(yīng)該采取的動作。5 .規(guī)則及規(guī)則合并1)規(guī)則:任何一個條件組合的特定取值及其相應(yīng)要執(zhí)行的操作稱為規(guī)則。在判定表中貫穿條件項和動作項的一列就是一條規(guī)則。顯然,判定表中列出多少組條件取值,也就有多少條規(guī)則,既條件項
32、和動作項有多少列。2)化簡:就是規(guī)則合并有兩條或多條規(guī)則具有相同的動作,并且其條件項之間存在著極為相似的關(guān)系。6 .規(guī)則及規(guī)則合并舉例1)如下圖左端,兩規(guī)則動作項一樣,條件項類似,在1、2條件項分別取Y、N時,無論條件3取何值,都執(zhí)行同一操作。即要執(zhí)行的動作與條件3無關(guān)。于是可合并?!?”表示與取值無關(guān)。2)與上類似,下圖中,無關(guān)條件項”可包含其他條件項取值,具有相同動作的規(guī)則可合并。3)化簡后的讀書指南判定表1234問題你覺得疲倦嗎?-YN你對內(nèi)容感興趣嗎?YYNN書中內(nèi)容使你胡涂嗎?YN-建議請回到本章開頭重讀x繼續(xù)讀下去X跳到下一章去讀x停止閱讀,請休息x7 .判定表的建立步驟:(根據(jù)軟
33、件規(guī)格說明)1)確定規(guī)則的個數(shù).假如有n個條件。每個條件有兩個取值(0,1),故有2n種規(guī)則2)列出所有的條件樁和動作樁。3)填入條件項。4)填入動作項。等到初始判定表。5)簡化.合并相似規(guī)則(相同動作)。二.實戰(zhàn)演習(xí)1.問題要求:”,對功率大于50馬力的機器、維修記錄不全或已運行10年以上的機器,應(yīng)給予優(yōu)先的維修處理,"o這里假定,“維修記錄不全”和“優(yōu)先維修處理”均已在別處有更嚴格的定義。請建立判定表。解答:確定規(guī)則的個數(shù):這里有3個條件,每個條件有兩個取值,故應(yīng)有2*2*2=8種規(guī)則。列出所有的條件茬和動作樁:填入條件項??蓮淖詈?行條件項開始,逐行向上填滿。如第三行是:丫N丫
34、NYN丫N,第二行是:YYNNYYNN等等。填入動作樁和動作頂。這樣便得到形如圖的初始判定表。12345678條件功率大于50馬力嗎?YYYYNNNN維修記錄不全嗎?YYNNYYNN運行超過10年嗎?YNYNYNYN動作進行優(yōu)先處理xxXXX作其他處理Xxx初始判定表化簡。合并相似規(guī)則后得到圖12345條件功率大于50馬力嗎?YYYNN維修記錄不全嗎?YNN一一運行超過10年嗎?一YNYN動作進行優(yōu)先處理xxX作其他處理xx2.NextData函數(shù)的精簡決策表M1=月份,每月有30天M2=月份,每月有31天M3=月份,2月D1=日期,1-2812D2=日期,29D3=日期,30D4=日期,31
35、Y1=年:年是閏年Y2=年:年不是閏年改進為M1=月份:每月有30天M2=月份:有29=512條規(guī)則月末31日和其它31日月份的31日處理不同平年2月28日處理不同于2月27日每月有31天,12月除外M4=月份:12月M3=月份:2月D1=日期:1<=日期<=27D2=日期:28D3=日期:29D4=日期:30D5=日期:31Y1=年:年是閏年Y2=年:年不是閏年輸入變量間存在大量邏輯關(guān)系的NextData決策表3.用決策表測試法測試以下程序:該程序有三個輸入變量month、day、year(month、day和year均為整數(shù)值,并且滿足:1<month<12和1&l
36、t;day<31),分別作為輸入日期的月份、日、年份,通過程序可以輸出該輸入日期在日歷上隔一天的日期。例如,輸入為2004年11月29日,則該程序的輸出為2000年12月1日。1)分析各種輸入情況,列出為輸入變量month、day、year劃分的有效等價類。2)分析程序規(guī)格說明,結(jié)合以上等價類劃分的情況給出問題規(guī)定的可能采取的操作(即列出所有的動作樁)。3)根據(jù)(1)和(2),畫出簡化后的決策表案例分析如下:1) month變量的有效等價類:M1:month=4,6,9,11M2:month=1,3,5,7,8,10M3:month=12M4:month=22)day變量的有效等價類:D
37、1:1<day<26D2:day=27D3:day=28D4:day=29D5:day=30D6:day=313)year變量的有效等價類:Y1:year是閏年Y2:year不是IW年4)考慮各種有效的輸入情況,程序中可能采取的操作有以下六種:a1:day+2a2:day=2a3:day=1a4:month+1a5:month=1a6:year+14.判定表在功能測試中的應(yīng)用1)一些軟件的功能需求可用判定表表達得非常清楚,在檢驗程序的功能時判定表也就成為一個不錯的工具。如果一個軟件的規(guī)格說明指出:I. 當(dāng)條件1和條件2滿足,并且條件3和條件4不滿足,或者當(dāng)條件1、3和條件4滿足時,
38、要執(zhí)行操作1。II. 在任一個條件都不滿足時,要執(zhí)行操作2。III. 在條件1不滿足,而條件4被滿足時,要執(zhí)行操作3。根據(jù)規(guī)格說明得到如下判定表:這里,判定表只給出了16種規(guī)則中的8種。事實上,除這8條以外的一些規(guī)則是指當(dāng)不能滿足指定的條件,執(zhí)行3種操作時,要執(zhí)行1個默許的操作。在沒必要時,判定表通??陕匀ミ@些規(guī)則。但如果用判定表來設(shè)計測試用例,就必須列出這些默許規(guī)則(如下表)。規(guī)則5規(guī)則6規(guī)則7規(guī)則8條件1-NYY條件2-YYN條件3YNNN條件4NNY-默許操作xxxx默許的規(guī)則2)判定表的優(yōu)點和缺點I .優(yōu)點:它能把復(fù)雜的問題按各種可能的情況一一列舉出來,簡明而易于理解,也可避免遺漏。I
39、I .缺點:不能表達重復(fù)執(zhí)行的動作,例如循環(huán)結(jié)構(gòu)。3)B.Beizer指出了適合使用判定表設(shè)計測試用例的條件:規(guī)格說明以判定表形式給出,或很容易轉(zhuǎn)換成判定表。條件的排列順序不會也不影響執(zhí)行哪些操作。規(guī)則的排列順序不會也不影響執(zhí)行哪些操作。每當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗別的規(guī)則。如果某一規(guī)則得到滿足要執(zhí)行多個操作,這些操作的執(zhí)行順序無關(guān)緊要。B.Beizer提出這5個必要條件的目的是為了使操作的執(zhí)行完全依賴于條件的組合。其實對于某些不滿足這幾條的判定表,同樣可以借以設(shè)計測試用例,只不過尚需增加其它的測試用例罷了。正交實驗設(shè)計方法一.方法簡介利用因果圖來設(shè)計測試用例時,
40、作為輸入條件的原因與輸出結(jié)果之間的因果關(guān)系,有時很難從軟件需求規(guī)格說明中得到。往往因果關(guān)系非常龐大,以至于據(jù)此因果圖而得到的測試用例數(shù)目多的驚人,給軟件測試帶來沉重的負擔(dān),為了有效地,合理地減少測試的工時與費用,可利用正交實驗設(shè)計方法進行測試用例的設(shè)計。正交實驗設(shè)計方法:依據(jù)Galois理論,從大量的(實驗)數(shù)據(jù)(測試例)中挑選適量的,有代表性的點(例),從而合理地安排實驗(測試)的一種科學(xué)實驗設(shè)計方法.類似的方法有:聚類分析方法,因子方法方法等.利用正交實驗設(shè)計測試用例的步驟:1 .提取功能說明,構(gòu)造因子-狀態(tài)表把影響實驗指標(biāo)的條件稱為因子.而影響實驗因子的條件叫因子的狀態(tài).利用正交實驗設(shè)計
41、方法來設(shè)計測試用例時,首先要根據(jù)被測試軟件的規(guī)格說明書找出影響其功能實現(xiàn)的操作對象和外部因素,把他們當(dāng)作因子,而把各個因子的取值當(dāng)作狀態(tài).對軟件需求規(guī)格說明中的功能要求進行劃分,把整體的概要性的功能要求進行層層分解與展開,分解成具體的有相對獨立性的基本的功能要求.這樣就可以把被測試軟件中所有的因子都確定下來,并為確定個因子的權(quán)值提供參考的依據(jù).確定因子與狀態(tài)是設(shè)計測試用例的關(guān)鍵.因此要求盡可能全面的正確的確定取值,以確保測試用例的設(shè)計作到完整與有效。2 .加權(quán)篩選,生成因素分析表對因子與狀態(tài)的選擇可按其重要程度分別加權(quán).可根據(jù)各個因子及狀態(tài)的作用大小,出現(xiàn)頻率的大小以及測試的需要,確定權(quán)值的大
42、小。3 .利用正交表構(gòu)造測試數(shù)據(jù)集正交表的推導(dǎo)依據(jù)Galois理論(這里省略,需要時可查數(shù)理統(tǒng)計方面的教材)利用正交實驗設(shè)計方法設(shè)計測試用例,比使用等價類劃分,邊界值分析,因果圖等方法有以下優(yōu)點:節(jié)省測試工作工時;可控制生成的測試用例數(shù)量;測試用例具有一定的覆蓋率。二.實戰(zhàn)演習(xí)暫無功能圖分析方法一.方法簡介一個程序的功能說明通常由動態(tài)說明和靜態(tài)說明組成.動態(tài)說明描述了輸入數(shù)據(jù)的次序或轉(zhuǎn)移的次序.靜態(tài)說明描述了輸入條件與輸出條件之間的對應(yīng)關(guān)系.對于較復(fù)雜的程序,由于存在大量的組合情況,因此,僅用靜態(tài)說明組成的規(guī)格說明對于測試來說往往是不夠的.必須用動態(tài)說明來補充功能說明.功能圖方法是用功能圖FD
43、形式化地表示程序的功能說明,并機械地生成功能圖的測試用例.功能圖模型由狀態(tài)遷移圖和邏輯功能模型構(gòu)成.狀態(tài)遷移圖用于表示輸入數(shù)據(jù)序列以及相應(yīng)的輸出數(shù)據(jù).在狀態(tài)遷移圖中,由輸入數(shù)據(jù)和當(dāng)前狀態(tài)決定輸出數(shù)據(jù)和后續(xù)狀態(tài).邏輯功能模型用于表示在狀態(tài)中輸入條件和輸出條件之間的對應(yīng)關(guān)系.邏輯功能模型只適合于描述靜態(tài)說明,輸出數(shù)據(jù)僅由輸入數(shù)據(jù)決定.測試用例則是由測試中經(jīng)過的一系列狀態(tài)和在每個狀態(tài)中必須依靠輸入/輸出數(shù)據(jù)滿足的一對條件組成.功能圖方法其實是是一種黑盒白盒混合用例設(shè)計方法。(功能圖方法中,要用到邏輯覆蓋和路徑測試的概念和方法,其屬白盒測試方法中的內(nèi)容.邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測試用例設(shè)
44、計方法.該方法要求測試人員對程序的邏輯結(jié)構(gòu)有清楚的了解.由于覆蓋測試的目標(biāo)不同,邏輯覆蓋可分為:語句覆蓋,判定覆蓋,判定-條件覆蓋,條件組合覆蓋及路徑覆蓋.下面我們指的邏輯覆蓋和路徑是功能或系統(tǒng)水平上的,以區(qū)別與白盒測試中的程序內(nèi)部的.)1 .功能圖功能圖由狀態(tài)遷移圖和布爾函數(shù)組成.狀態(tài)遷移圖用狀態(tài)和遷移來描述.一個狀態(tài)指出數(shù)據(jù)輸入的位置(或時間),而遷移則指明狀態(tài)的改變.同時要依靠判定表或因果圖表示的邏輯功能.例,一個簡化的自動出納機ATM的功能圖。2 .測試用例生成方法從功能圖生成測試用例,得到的測試用例數(shù)是可接受的.問題的關(guān)鍵的是如何從狀態(tài)遷移圖中選取測試用例.若用節(jié)點代替狀態(tài),用弧線代
45、替遷移,則狀態(tài)遷移圖就可轉(zhuǎn)化成一個程序的控制流程圖形式.問題就轉(zhuǎn)化為程序的路徑測試問題(如白盒測試)問題了3 .測試用例生成規(guī)則為了把狀態(tài)遷移(測試路徑)的測試用例與邏輯模型(局部測試用例)的測試用例組合起來,從功能圖生成實用的測試用例,須定義下面的規(guī)則.在一個結(jié)構(gòu)化的狀態(tài)遷移(SST)中,定義三種形式的循環(huán):順序,選擇和重復(fù).但分辨一個狀態(tài)遷移中的所有循環(huán)是有困難的.(其表示圖形省略)。4 .從功能圖生成測試用例的過程1)生成局部測試用例:在每個態(tài)中,從因果圖生成局部測試用例.局部測試用例由原因值(輸入數(shù)據(jù))組合與對應(yīng)的結(jié)果值(輸出數(shù)據(jù)或狀態(tài))構(gòu)成。2)測試路徑生成:利用上面的規(guī)則(三種)生
46、成從初始狀態(tài)到最后狀態(tài)的測試路徑。3)測試用例合成:合成測試路徑與功能圖中每個態(tài)中的局部測試用例.結(jié)果是初始狀態(tài)到最后狀態(tài)的一個狀態(tài)序列,以及每個狀態(tài)中輸入數(shù)據(jù)與對應(yīng)輸出數(shù)據(jù)的組合。5 .測試用例的合成算法:采用條件構(gòu)造樹.二.實戰(zhàn)演習(xí)暫無場景設(shè)計方發(fā)一.方法簡介現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的,事件觸發(fā)時的情景便形成了場景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設(shè)計方面的思想也可以引入到軟件測試中,可以比較生動地描繪出事件觸發(fā)時的情景,有利于測試設(shè)計者設(shè)計測試用例,同時使測試用例更容易理解和執(zhí)行。基本流和備選流:如下圖所示,圖中經(jīng)過用例的每條路徑都用基本流和備選流來表示,直黑線表示基本流,是經(jīng)過用例的最簡單的路徑。備選流用不同的色彩表示,一個備選流可能從基本流開始,在某個特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和3);也可能起源于另一個備選流(如備選流2),或者終止用例而不再重新加入到某個流(如備選流2和4)。二.實戰(zhàn)演習(xí)1 .例子描述下圖所示是ATM例子的流程示意圖。2 .場景設(shè)計:下表所示是生成的場景表3-8場景設(shè)計切凡1一成功提款基本流切凡2一ATM沒
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備耗材精準(zhǔn)管理制度
- 設(shè)施廚房設(shè)備管理制度
- 設(shè)計公司設(shè)計管理制度
- 評析證券發(fā)行管理制度
- 診所醫(yī)保費用管理制度
- 診所藥品召回管理制度
- 試劑質(zhì)量保障管理制度
- 財務(wù)資金預(yù)算管理制度
- 財政扶持項目管理制度
- 貨物快遞專區(qū)管理制度
- 【完美排版】山東科技出版社二年級下冊綜合實踐活動教案
- 公共政策學(xué)(第三版)-課件
- 齊魯醫(yī)學(xué)Lisfranc-損傷
- 大型鋼網(wǎng)架整體提升施工工法
- 干熄焦?fàn)t內(nèi)固_氣流動與傳熱數(shù)值模擬畢業(yè)論文
- 公司股東變更登記申請書(一變一)
- 供應(yīng)鏈金融業(yè)務(wù)工作開展情況總結(jié)匯報
- 基于motor的六相電機繞組分相設(shè)置
- 一年級數(shù)學(xué)學(xué)困生轉(zhuǎn)化典型案例
- 廣西壯族自治區(qū)醫(yī)院大全
- 電子時鐘 Multisim仿真
評論
0/150
提交評論