軟件測試--測試用例編寫方法_第1頁
軟件測試--測試用例編寫方法_第2頁
軟件測試--測試用例編寫方法_第3頁
軟件測試--測試用例編寫方法_第4頁
軟件測試--測試用例編寫方法_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、測試用例的設計方法等價類劃分方法: 一.方法簡介1.定義  是把所有可能的輸入數據,即程序的輸入域劃分成若干部分(子集),然后從每一個子集中選取少數具有代表性的數據作為測試用例。該方法是一種重要的,常用的黑盒測試用例設計方法。    2.劃分等價類:  等價類是指某個輸入域的子集合。在該子集合中,各個輸入數據對于揭露程序中的錯誤都是等效的,并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試,因此,可以把全部輸入數據合理劃分為若干等價類,在每一個等價類中取一個數據作為測試的輸入條件就可以用少量代表性的測試數據取得較好的測試結果。等價類劃

2、分可有兩種不同的情況:有效等價類和無效等價類。  1)有效等價類    是指對于程序的規格說明來說是合理的、有意義的輸入數據構成的集合。利用有效等價類可檢驗程序是否實現了規格說明中所規定的功能和性能。  2)無效等價類    與有效等價類的定義恰巧相反。無效等價類指對程序的規格說明是不合理的或無意義的輸入數據所構成的集合。對于具體的問題,無效等價類至少應有一個,也可能有多個。  設計測試用例時,要同時考慮這兩種等價類。因為軟件不僅要能接收合理的數據,也要能經受意外的考驗,這樣的測試才能確保軟件具有更高的可

3、靠性。   3.劃分等價類的標準:  1)完備測試、避免冗余;  2)劃分等價類重要的是:集合的劃分,劃分為互不相交的一組子集,而子集的并是整個集合;  3)并是整個集合:完備性;  4)子集互不相交:保證一種形式的無冗余性;  5)同一類中標識(選擇)一個測試用例,同一等價類中,往往處理相同,相同處理映射到"相同的執行路徑"。4.劃分等價類的方法  1)在輸入條件規定了取值范圍或值的個數的情況下,則可以確立一個有效等價類和兩個無效等價類。如:輸入值是學生成績,范圍是0100;2)在輸入條件規定

4、了輸入值的集合或者規定了"必須如何"的條件的情況下,可確立一個有效等價類和一個無效等價類;  3)在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類。  4)在規定了輸入數據的一組值(假定n個),并且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類。    例:輸入條件說明學歷可為:專科、本科、碩士、博士四種之一,則分別取這四種這四個值作為四個有效等價類,另外把四種學歷之外的任何學歷作為無效等價類。  5)在規定了輸入數據必須遵守的規則的情況下,可確立一個有效等價類(符合

5、規則)和若干個無效等價類(從不同角度違反規則);  6)在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應再將該等價類進一步的劃分為更小的等價類。  5.設計測試用例  在確立了等價類后,可建立等價類表,列出所有劃分出的等價類輸入條件:有效等價類、無效等價類,然后從劃分出的等價類中按以下三個原則設計測試用例:  1)為每一個等價類規定一個唯一的編號;  2)設計一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價類,重復這一步,直到所有的有效等價類都被覆蓋為止;  3)設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的

6、無效等價類,重復這一步,直到所有的無效等價類都被覆蓋為止。  二.實戰演習1.某程序規定:"輸入三個整數 a 、 b 、 c 分別作為三邊的邊長構成三角形。通過程序判定所構成的三角形的類型,當此三角形為一般三角形、等腰三角形及等邊三角形時,分別作計算 "。用等價類劃分方法為該程序進行測試用例設計。(三角形問題的復雜之處在于輸入與輸出之間的關系比較復雜。)  分析題目中給出和隱含的對輸入條件的要求:   (1)整數    (2)三個數    (3)非零數   (4)正

7、數     (5)兩邊之和大于第三邊     (6)等腰     (7)等邊    如果 a 、 b 、 c 滿足條件( 1 ) ( 4 ),則輸出下列四種情況之一:   1)如果不滿足條件(5),則程序輸出為 " 非三角形 " 。   2)如果三條邊相等即滿足條件(7),則程序輸出為 " 等邊三角形 " 。   3)如果只有兩條邊相等、即滿足條件(6),則程序輸出為

8、 " 等腰三角形 " 。   4)如果三條邊都不相等,則程序輸出為 " 一般三角形 " 。    列出等價類表并編號覆蓋有效等價類的測試用例:    a      b      c              覆蓋等價類號碼   

9、3      4      5             (1)-(7)    4      4      5            

10、; (1)-(7),(8)    4      5      5             (1)-(7),(9)        5      4      5  

11、0;          (1)-(7),(10)    4      4      4             (1)-(7),(11)   覆蓋無效等價類的測試用例:2.設有一個檔案管理系統,要求用戶輸入以年月表示的日期。假設日期限定在1

12、990年1月2049年12月,并規定日期由6位數字字符組成,前4位表示年,后2位表示月。現用等價類劃分法設計測試用例,來測試程序的"日期檢查功能"。  1)劃分等價類并編號,下表等價類劃分的結果輸入等價類有效等價類無效等價類日期的類型及長度6位數字字符有非數字字符少于6位數字字符多于6位數字字符年份范圍在19902049之間小于1990大于2049月份范圍在0112之間等于00大于122)設計測試用例,以便覆蓋所有的有效等價類在表中列出了3個有效等價類,編號分別為、,設計的測試用例如下:    測試數據  

13、0; 期望結果      覆蓋的有效等價類    200211      輸入有效      、  3)為每一個無效等價類設計一個測試用例,設計結果如下:    測試數據   期望結果     覆蓋的無效等價類    95June     無效輸入&

14、#160;             20036      無效輸入              2001006   無效輸入              19891

15、2     無效輸入              200401     無效輸入              200100     無效輸入        

16、0;     200113     無效輸入              3.NextDate 函數包含三個變量:month 、 day 和 year ,函數的輸出為輸入日期后一天的日期。 例如,輸入為 2006年3月 7日,則函數的輸出為 2006年3月8日 。要求輸入變量 month 、 day 和 year 均為整數值,并且滿足下列條件:  1month12  1day31 

17、; 1920year2050    1)有效等價類為:    M1月份:1月份12    D1日期:1日期31    Y1年:1812年2012  2)若條件 中任何一個條件失效,則 NextDate 函數都會產生一個輸出,指明相應的變量超出取值范圍,比如 "month 的值不在 1-12 范圍當中 " 。顯然還存在著大量的 year 、 month 、 day 的無效組合, NextDate 函數將這些組合作統一的輸出: " 無效輸入日期 &q

18、uot; 。其無效等價類為:    M2月份:月份<1    M3月份:月份>12    D2日期:日期<1    D3日期:日期>31    Y2年:年<1812    Y3年:年>2012  弱一般等價類測試用例  月份    日期       年  

19、;             預期輸出   6       15        1912           1912年6月16日  強一般等價類測試用例同弱一般等價類測試用例  注:弱-有單缺陷假設;健壯-考慮

20、了無效值     (一)弱健壯等價類測試  用例ID   月份  日期    年          預期輸出  WR1      6      15    1912      1912年6月16日  WR2 &

21、#160;   -1     15    1912      月份不在112中  WR3     13     15    1912      月份不在112中  WR4      6    

22、;  -1    1912      日期不在131中  WR5      6      32    1912      日期不在131中  WR6      6      15  

23、0; 1811      年份不在18122012中  WR7      6      15    2013      年份不在18122012中  (二)強健壯等價類測試  用例ID   月份    日期      年 

24、0;        預期輸出  SR1       -1      15       1912      月份不在112中  SR2        6      -1&#

25、160;       1912      日期不在131中  SR3        6      15       1811      年份不在18122012中  SR4     

26、0; -1      -1       1912      兩個無效一個有效  SR5        6      -1        1811      兩個無效一個有效

27、0; SR6       -1      15       1811      兩個無效一個有效  SR7       -1      -1       1811  &#

28、160;   三個無效  4.傭金問題等價類測試用例,它是根據傭金函數的輸出值域定義等價類,來改進測試用例集合。輸出銷售額1000元     傭金101000<銷售額1800     傭金=100+(銷售額-1000)*15%銷售額>1800              傭金=220+(銷售額-1800)*20%測試用例  &#

29、160;      槍機(45)    槍托(30)      槍管(25)          銷售額     傭金    1               5 

30、            5                5                  500        50

31、0;   2              15           15              15          

32、;       1500       175    3              25           25         

33、     25                 2500       360根據輸出域選擇輸入值,使落在輸出域等價類內,可以結合弱健壯測試用例結合。邊界值分析方法:一.方法簡介1.定義:邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。

34、60; 2.與等價劃分的區別  1)邊界值分析不是從某等價類中隨便挑一個作為代表,而是使這個等價類的每個邊界都要作為測試條件。  2)邊界值分析不僅考慮輸入條件,還要考慮輸出空間產生的測試情況。3.邊界值分析方法的考慮:  長期的測試工作經驗告訴我們,大量的錯誤是發生在輸入或輸出范圍的邊界上,而不是發生在輸入輸出范圍的內部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。  使用邊界值分析方法設計測試用例,首先應確定邊界情況。通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況。應當選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數據,而不是選取等

35、價類中的典型值或任意值作為測試數據。 4.常見的邊界值  1)對16-bit 的整數而言 32767 和 -32768 是邊界  2)屏幕上光標在最左上、最右下位置  3)報表的第一行和最后一行  4)數組元素的第一個和最后一個  5)循環的第 0 次、第 1 次和倒數第 2 次、最后一次5.邊界值分析  1)邊界值分析使用與等價類劃分法相同的劃分,只是邊界值分析假定錯誤更多地存在于劃分的邊界上,因此在等價類的邊界上以及兩側的情況設計測試用例。    例:測試計算平方根的函數  

36、60;     -輸入:實數        -輸出:實數        -規格說明:當輸入一個0或比0大的數的時候,返回其正平方根;當輸入一個小于0的數時,顯示錯誤信息"平方根非法-輸入值小于0"并返回0;庫函數Print-Line可以用來輸出錯誤信息。          2)等價類劃分:  

37、60; I.可以考慮作出如下劃分:      a、輸入 (i)<0 和 (ii)>=0      b、輸出 (a)>=0 和 (b) Error    II.測試用例有兩個:      a、輸入4,輸出2。對應于 (ii) 和 (a) 。      b、輸入-10,輸出0和錯誤提示。對應于 (i) 和 (b) 。  3)邊界值分析:

38、0;   劃分(ii)的邊界為0和最大正實數;劃分(i)的邊界為最小負實數和0。由此得到以下測試用例:    a、輸入 最小負實數    b、輸入 絕對值很小的負數    c、輸入 0    d、輸入 絕對值很小的正數    e、輸入 最大正實數      4)通常情況下,軟件測試所包含的邊界檢驗有幾種類型:數字、字符、位置、重量、大小、速度、方位、尺寸、空間等。  5)相應地

39、,以上類型的邊界值應該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、  最短/最長、 空/滿等情況下。  6)利用邊界值作為測試數據項邊界值測試用例的設計思路字符起始-1個字符/結束+1個字符假設一個文本輸入區域允許輸入1個到255個 字符,輸入1個和255個字符作為有效等價類;輸入0個和256個字符作為無效等價類,這幾個數值都屬于邊界條件值。數值最小值-1/最大值+1假設某軟件的數據輸入域要求輸入5位的數據值,可以使用10000作為最小值、99999作為最大值;然后使用剛好小于5位和大于5位的 數值來作為邊界條件。空間小于空余空間一點/大于滿空間一點例如在用

40、U盤存儲數據時,使用比剩余磁盤空間大一點(幾KB)的文件作為邊界條件。7)內部邊界值分析:    在多數情況下,邊界值條件是基于應用程序的功能設計而需要考慮的因素,可以從軟件的規格說明或常識中得到,也是最終用戶可以很容易發現問題的。然而,在測試用例設計過程中,某些邊界值條件是不需要呈現給用戶的,或者說用戶是很難注意到的,但同時確實屬于檢驗范疇內的邊界條件,稱為內部邊界值條件或子邊界值條件。    內部邊界值條件主要有下面幾種:    a)數值的邊界值檢驗:計算機是基于二進制進行工作的,因此,軟件的任何數值

41、運算都有一定的范圍限制。項范圍或值位(bit)0或者1字節(byte)0225字(word)065535(單字)或 04294967295(雙字)千(K)1024兆(M)1048576吉(G)1073741824b)字符的邊界值檢驗:在計算機軟件中,字符也是很重要的表示元素,其中ASCII和Unicode是常見的編碼方式。下表中列出了一些常用字符對應的ASCII碼值。字符ASCII碼值字符ASCII碼值空 (null)0A65空格 (space)32a97斜杠 ( / )47Z90048z122冒號 ( : )58單引號 ( )9664  c)其它邊界值檢驗 &#

42、160;  6.基于邊界值分析方法選擇測試用例的原則  1)如果輸入條件規定了值的范圍,則應取剛達到這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數據。    例如,如果程序的規格說明中規定:"重量在10公斤至50公斤范圍內的郵件,其郵費計算公式為"。作為測試用例,我們應取10及50,還應取10.01,49.99,9.99及50.01等。  2)如果輸入條件規定了值的個數,則用最大個數,最小個數,比最小個數少一,比最大個數多一的數作為測試數據。    比如,一個輸入文件應

43、包括1255個記錄,則測試用例可取1和255,還應取0及256等。  3)將規則1)和2)應用于輸出條件,即設計測試用例使輸出值達到邊界值及其左右的值。    例如,某程序的規格說明要求計算出"每月保險金扣除額為0至1165.25元",其測試用例可取0.00及1165.24、還可取一0.01及116526等。    再如一程序屬于情報檢索系統,要求每次"最少顯示1條、最多顯示4條情報摘要",這時我們應考慮的測試用例包括1和4,還應包括0和5等。   4)如果程序的規格說明給出

44、的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最后一個元素作為測試用例。  5)如果程序中使用了一個內部數據結構,則應當選擇這個內部數據結構的邊界上的值作為測試用例。  6)分析規格說明,找出其它可能的邊界條件。二.實戰演習1.現有一個學生標準化考試批閱試卷,產生成績報告的程序。其規格說明如下:程序的輸入文件由一些有80個字符的記錄組成,如右圖所示,所有記錄分為3組:標題:這一組只有一個記錄,其內容為輸出成績報告的名字。  試卷各題標準答案記錄:每個記錄均在第80個字符處標以數字"2"。該組的第一個記錄的第1至第3個字符為題目編號(取值

45、為1一999)。第10至第59個字符給出第1至第50題的答案(每個合法字符表示一個答案)。該組的第2,第3個記錄相應為第51至第100,第101至第150,題的答案。  每個學生的答卷描述:該組中每個記錄的第80個字符均為數字"3"。每個學生的答卷在若干個記錄中給出。如甲的首記錄第1至第9字符給出學生姓名及學號,第10至第59字符列出的是甲所做的第1至第50題的答案。若試題數超過50,則第2,第3紀錄分別給出他的第51至第100,第101至第150題的解答。然后是學生乙的答卷記錄。  學生人數不超過200,試題數不超過999。   程序的輸出有

46、4個報告:    a)按學號排列的成績單,列出每個學生的成績、名次。    b)按學生成績排序的成績單。    c)平均分數及標準偏差的報告。    d)試題分析報告。按試題號排序,列出各題學生答對的百分比。   解答:分別考慮輸入條件和輸出條件,以及邊界條件。給出下表所示的輸入條件及相應的測試用例。   輸出條件及相應的測試用例表。  2.三角形問題的邊界值分析測試用例在三角形問題描述中,除了要求邊長是整數外,沒有給出其它的

47、限制條件。在此,我們將三角形每邊邊長的取范圍值設值為1, 100 。3.NextDate函數的邊界值分析測試用例在NextDate函數中,隱含規定了變量mouth和變量day的取值范圍為1mouth12和1day31,并設定變量year的取值范圍為1912year2050 。  錯誤推測方法一.    方法簡介1.         定義:基于經驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法。2.   

48、60;     錯誤推測方法的基本思想:列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例。1)        例如, 輸入數據和輸出數據為0的情況;輸入表格為空格或輸入表格只有一行。 這些都是容易發生錯誤的情況。可選擇這些情況下的例子作為測試用例。2)        例如,前面例子中成績報告的程序,采用錯誤推測法還可補充設計一些測試用例:I.    &

49、#160;     程序是否把空格作為回答II.       在回答記錄中混有標準答案記錄III.     除了標題記錄外,還有一些的記錄最后一個字符即不是2也不是3IV.     有兩個學生的學號相同V.        試題數是負數。 3)    再如,測試一個對線性表(比如數組)進行排序的程序,可推測列出以下幾項需

50、要特別測試的情況:I.          輸入的線性表為空表;II.       表中只含有一個元素;III.     輸入表中所有元素已排好序;IV.     輸入表已按逆序排好;V.        輸入表中部分或全部元素相同。二.    實戰演習 

51、0;  暫無  因果圖方法一.    方法簡介1.定義:是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。2.因果圖法產生的背景:等價類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關系。這樣雖然各種輸入條件可能出錯的情況已經測試到了,但多個輸入條件組合起來可能出錯的情況卻被忽視了。如果在測試時必須考慮輸入條件的各種組合,則可能的組合數目將是天文數字,因此必須考慮采用一種適合于描述多種條件的組合、相應產生多個動作的形式來進行測試用例

52、的設計,這就需要利用因果圖(邏輯模型)。3.因果圖介紹1) 4種符號分別表示了規格說明中向4種因果關系。2) 因果圖中使用了簡單的邏輯符號,以直線聯接左右結點。左結點表示輸入狀態(或稱原因),右結點表示輸出狀態(或稱結果)。 3) Ci表示原因,通常置于圖的左部;ei表示結果,通常在圖的右部。Ci和ei均可取值0或1,0表示某狀態不出現,1表示某狀態出現。 4. 因果圖概念1)    關系恒等:若ci是1,則ei也是1;否則ei為0。非:若ci是1,則ei是0;否則ei是1。或:若c1或c2或c3是1,則ei是1;否則ei為0。“或”

53、可有任意個輸入。與:若c1和c2都是1,則ei為1;否則ei為0。“與”也可有任意個輸入。2)    約束輸入狀態相互之間還可能存在某些依賴關系,稱為約束。例如, 某些輸入條件本身不可能同時出現。輸出狀態之間也往往存在約束。在因果圖中,用特定的符號標明這些約束。A.輸入條件的約束有以下4類:   E約束(異):a和b中至多有一個可能為1,即a和b不能同時為1。   I約束(或):a、b和c中至少有一個必須是1,即 a、b 和c不能同時為0。   O約束(唯一);a和b必須有一個,且僅有1個為1。 

54、;  R約束(要求):a是1時,b必須是1,即不可能a是1時b是0。B.輸出條件約束類型   輸出條件的約束只有M約束(強制):若結果a是1,則結果b強制為0。5. 采用因果圖法設計測試用例的步驟:1)分析軟件規格說明描述中, 那些是原因(即輸入條件或輸入條件的等價類),那些是結果(即輸出條件), 并給每個原因和結果賦予一個標識符。2)分析軟件規格說明描述中的語義,找出原因與結果之間, 原因與原因之間對應的關系,根據這些關系,畫出因果圖。3)由于語法或環境限制, 有些原因與原因之間,原因與結果之間的組合情況不可能出現,為表明這些特殊情況, 在因

55、果圖上用一些記號表明約束或限制條件。4)把因果圖轉換為判定表。5)把判定表的每一列拿出來作為依據,設計測試用例。二. 實戰演習1. 某軟件規格說明書包含這樣的要求:第一列字符必須是A或B,第二列字符必須是一個數字,在此情況下進行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數字,則給出信息M。解答:1) 根據題意,原因和結果如下:       原因:          1第一列字符是A;

56、0;         2第一列字符是B;          3第二列字符是一數字。       結果:          21修改文件;          22 給出信息L; &#

57、160;        23給出信息M。2) 其對應的因果圖如下:11為中間節點;考慮到原因1和原因2不可能同時為1,因此在因果圖上施加E約束。3)根據因果圖建立判定表。        表中8種情況的左面兩列情況中,原因和原因同時為1,這是不可能出現的,故應排除這兩種情況。表的最下一欄給出了6種情況的測試用例,這是我們所需要的數據。 2.有一個處理單價為5角錢的飲料的自動售貨機軟件測試用例的設計。其規格說明如下:若投入5角錢或1元錢的硬幣,押下橙

58、汁或啤酒的按鈕,則相應的飲料就送出來。若售貨機沒有零錢找,則一個顯示零錢找完的紅燈亮,這時在投入1元硬幣并押下按鈕后,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示零錢找完的紅燈滅,在送出飲料的同時退還5角硬幣。1) 分析這一段說明,列出原因和結果原因:1.售貨機有零錢找2.投入1元硬幣3.投入5角硬幣 4.押下橙汁按鈕5.押下啤酒按鈕 結果: 21.售貨機零錢找完燈亮    22.退還1元硬幣23.退還5角硬幣            &#

59、160; 24.送出橙汁飲料25.送出啤酒飲料2)畫出因果圖,如圖所示。所有原因結點列在左邊,所有結果結點列在右邊。建立中間結點,表示處理的中間狀態。中間結點:11. 投入1元硬幣且押下飲料按鈕                12. 押下橙汁或啤酒的按鈕                13. 應當找5角零錢并且售貨機有

60、零錢找                14. 錢已付清3)轉換成判定表: 4) 在判定表中,陰影部分表示因違反約束條件的不可能出現的情況,刪去。第16列與第32列因什么動作也沒做,也刪去。最后可根據剩下的16列作為確定測試用例的依據。 判定表驅動分析方法一.    方法簡介1.定義:判定表是分析和表達多邏輯條件下執行不同操作的情況的工具。2.判定表的優點能夠將復雜的問題按照各種可能的情況全部列舉出

61、來,簡明并避免遺漏。因此,利用判定表能夠設計出完整的測試用例集合。在一些數據處理問題當中,某些操作的實施依賴于多個邏輯條件的組合,即:針對不同邏輯條件的組合值,分別執行不同的操作。判定表很適合于處理這類問題。3.“閱讀指南”判定表4.  判定表通常由四個部分組成如下圖所示。1)條件樁(Condition Stub):列出了問題得所有條件。通常認為列出的條件的次序無關緊要。2)動作樁(Action Stub):列出了問題規定可能采取的操作。這些操作的排列順序沒有約束。3)條件項(Condition Entry):列出針對它左列條件的取值。在所有可能情況下的真假值。4)動作項(Actio

62、n Entry):列出在條件項的各種取值情況下應該采取的動作。5.規則及規則合并1)規則:任何一個條件組合的特定取值及其相應要執行的操作稱為規則。在判定表中貫穿條件項和動作項的一列就是一條規則。顯然,判定表中列出多少組條件取值,也就有多少條規則,既條件項和動作項有多少列。2)化簡:就是規則合并有兩條或多條規則具有相同的動作,并且其條件項之間存在著極為相似的關系。6.規則及規則合并舉例1)如下圖左端,兩規則動作項一樣,條件項類似,在1、2條件項分別取Y、N時,無論條件3取何值,都執行同一操作。即要執行的動作與條件3無關。于是可合并。“”表示與取值無關。2)與上類似,下圖中,無關條件項“”可包含其

63、他條件項取值,具有相同動作的規則可合并。3)化簡后的讀書指南判定表 1234問題你覺得疲倦嗎?-YN你對內容感興趣嗎?YYNN書中內容使你胡涂嗎?YN- 建議請回到本章開頭重讀x   繼續讀下去 X  跳到下一章去讀   x停止閱讀,請休息  x 7.判定表的建立步驟:(根據軟件規格說明)1)確定規則的個數.假如有n個條件。每個條件有兩個取值(0,1),故有2n種規則。2)列出所有的條件樁和動作樁。3)填入條件項。4)填入動作項。等到初始判定表。5)簡化.

64、合并相似規則(相同動作)。二. 實戰演習1.問題要求:”對功率大于50馬力的機器、維修記錄不全或已運行10年以上的機器,應給予優先的維修處理” 。這里假定,“維修記錄不全”和“優先維修處理”均已在別處有更嚴格的定義 。請建立判定表。解答:確定規則的個數:這里有3個條件,每個條件有兩個取值,故應有2*2*2=8種規則。列出所有的條件茬和動作樁:填入條件項。可從最后1行條件項開始,逐行向上填滿。如第三行是: Y N Y N Y N Y N,第二行是: Y Y N N Y Y N N等等。 填入動作樁和動作頂。這樣便得到形如圖的初始判定表。 12345678條件功率大于50馬力嗎

65、?YYYYNNNN維修記錄不全嗎?YYNNYYNN運行超過10年嗎?YNYNYNYN動作進行優先處理xxX X X 作其他處理   X x x初始判定表化簡。合并相似規則后得到圖。 12345條件功率大于50馬力嗎?YYYNN維修記錄不全嗎?YNN-運行超過10年嗎?-YNYN動作進行優先處理xx X 作其他處理  x x2.NextData函數的精簡決策表M1月份, 每月有30天M2月份, 每月有31天M3月份, 2月 有29512條規則D1日期,128

66、 12月末31日和其它31D2日期,29 日月份的31日處理不同D3日期,30 平年2月28日處理不同D4日期,31 于2月27日Y1 年:年是閏年Y2 年:年不是閏年改進為M1月份: 每月有30天M2月份: 每月有31天, 12月除外M4月份:12月M3月份: 2月 D1日期:1<=日期<=27D2日期:28D3日期:29D4日期:30D5日期:31Y1 年:年是閏年Y2 年:年不是閏年輸入變量間存在大量邏輯關系的NextData決策表 3. 用決策表測試法測試以下程序:該程序有三個輸入變量month、day、year(month、day和year均為整數值,

67、并且滿足:1month12和1day31),分別作為輸入日期的月份、日、年份,通過程序可以輸出該輸入日期在日歷上隔一天的日期。 例如,輸入為2004年11月29日,則該程序的輸出為2000年12月1日。1)分析各種輸入情況,列出為輸入變量month、day、year劃分的有效等價類。2)分析程序規格說明,結合以上等價類劃分的情況給出問題規定的可能采取的操作(即列出所有的動作樁)。3)根據(1)和(2),畫出簡化后的決策表。案例分析如下:1)       month變量的有效等價類: M1: month=4,6,9,11 M2: mon

68、th=1,3,5,7,8,10M3: month=12 M4: month=22)day變量的有效等價類: D1:1day26 D2: day=27 D3: day=28 D4: day=29 D5: day=30 D6: day=313)year變量的有效等價類:Y1: year是閏年 Y2: year不是閏年4)考慮各種有效的輸入情況,程序中可能采取的操作有以下六種:a1: day+2 a2: day=2 a3: day=1 a4: month+1 a5: month=1 a6: year+1 4. 判定表在功能測試中的應用1)一些軟件的功能需求可用判定表表達得非常清楚,在檢驗程

69、序的功能時判定表也就成為一個不錯的工具。如果一個軟件的規格說明指出:I. 當條件1和條件2滿足,并且條件3和條件4不滿足,或者當條件1、3和條件4滿足時,要執行操作1。II. 在任一個條件都不滿足時,要執行操作2。III. 在條件1不滿足,而條件4被滿足時,要執行操作3。 根據規格說明得到如下判定表:這里,判定表只給出了16種規則中的8種。事實上,除這8條以外的一些規則是指當不能滿足指定的條件,執行3種操作時,要執行1個默許的操作。在沒必要時,判定表通常可略去這些規則。但如果用判定表來設計測試用例,就必須列出這些默許規則(如下表)。 規則5規則6規則7規

70、則8條件1-NYY條件2-YYN條件3YNNN條件4NNY-默許操作xxxx默許的規則2)判定表的優點和缺點I.  優點:它能把復雜的問題按各種可能的情況一一列舉出來,簡明而易于理解,也可避免遺漏。II. 缺點:不能表達重復執行的動作,例如循環結構。3)B. Beizer 指出了適合使用判定表設計測試用例的條件:規格說明以判定表形式給出,或很容易轉換成判定表。條件的排列順序不會也不影響執行哪些操作。規則的排列順序不會也不影響執行哪些操作。每當某一規則的條件已經滿足,并確定要執行的操作后,不必檢驗別的規則。如果某一規則得到滿足要執行多個操作,這些操作的執行順序無關緊要。B.

71、Beizer提出這5個必要條件的目的是為了使操作的執行完全依賴于條件的組合。其實對于某些不滿足這幾條的判定表,同樣可以借以設計測試用例,只不過尚需增加其它的測試用例罷了。  正交實驗設計方法一.方法簡介利用因果圖來設計測試用例時, 作為輸入條件的原因與輸出結果之間的因果關系,有時很難從軟件需求規格說明中得到。往往因果關系非常龐大,以至于據此因果圖而得到的測試用例數目多的驚人,給軟件測試帶來沉重的負擔,為了有效地,合理地減少測試的工時與費用,可利用正交實驗設計方法進行測試用例的設計。正交實驗設計方法:依據Galois理論,從大量的(實驗)數據(測試例)中挑選適量的,有代表性的

72、點(例),從而合理地安排實驗(測試)的一種科學實驗設計方法.類似的方法有:聚類分析方法,因子方法方法等.利用正交實驗設計測試用例的步驟:1.提取功能說明,構造因子-狀態表把影響實驗指標的條件稱為因子.而影響實驗因子的條件叫因子的狀態.利用正交實驗設計方法來設計測試用例時,首先要根據被測試軟件的規格說明書找出影響其功能實現的操作對象和外部因素,把他們當作因子,而把各個因子的取值當作狀態.對軟件需求規格說明中的功能要求進行劃分,把整體的概要性的功能要求進行層層分解與展開,分解成具體的有相對獨立性的基本的功能要求.這樣就可以把被測試軟件中所有的因子都確定下來,并為確定個因子的權值提供參考的依據.確定

73、因子與狀態是設計測試用例的關鍵.因此要求盡可能全面的正確的確定取值,以確保測試用例的設計作到完整與有效。2.加權篩選,生成因素分析表對因子與狀態的選擇可按其重要程度分別加權.可根據各個因子及狀態的作用大小,出現頻率的大小以及測試的需要,確定權值的大小。3.利用正交表構造測試數據集正交表的推導依據Galois理論(這里省略,需要時可查數理統計方面的教材)。利用正交實驗設計方法設計測試用例,比使用等價類劃分,邊界值分析,因果圖等方法有以下優點:節省測試工作工時;可控制生成的測試用例數量;測試用例具有一定的覆蓋率。二. 實戰演習    暫無 

74、0;  功能圖分析方法一.方法簡介一個程序的功能說明通常由動態說明和靜態說明組成.動態說明描述了輸入數據的次序或轉移的次序.靜態說明描述了輸入條件與輸出條件之間的對應關系.對于較復雜的程序,由于存在大量的組合情況,因此,僅用靜態說明組成的規格說明對于測試來說往往是不夠的.必須用動態說明來補充功能說明.功能圖方法是用功能圖FD形式化地表示程序的功能說明,并機械地生成功能圖的測試用例. 功能圖模型由狀態遷移圖和邏輯功能模型構成.狀態遷移圖用于表示輸入數據序列以及相應的輸出數據.在狀態遷移圖中,由輸入數據和當前狀態決定輸出數據和后續狀態.邏輯功能模型用于表示在狀態中輸入條件和輸出

75、條件之間的對應關系.邏輯功能模型只適合于描述靜態說明,輸出數據僅由輸入數據決定.測試用例則是由測試中經過的一系列狀態和在每個狀態中必須依靠輸入/輸出數據滿足的一對條件組成.功能圖方法其實是是一種黑盒白盒混合用例設計方法。(功能圖方法中,要用到邏輯覆蓋和路徑測試的概念和方法,其屬白盒測試方法中 的內容.邏輯覆蓋是以程序內部的邏輯結構為基礎的測試用例設計方法.該方法要求測試人員對程序的邏輯結構有清楚的了解.由于覆蓋測試的目標不同,邏輯覆蓋可分為:語句覆蓋,判定覆蓋,判定-條件覆蓋,條件組合覆蓋及路徑覆蓋.下面我們指的邏輯覆蓋和路徑是功能或系統水平上的,以區別與白盒測試中的程序內部的.)1.功能圖功能圖由狀態遷移圖和布爾函數組成.狀態遷移圖用狀態和遷移來描述.一個狀態指出數據輸入的位置(或時間),而遷移則指明狀態的改變.同時要依靠判定表或因果圖表示的邏輯功能.例,一個簡化的自動出納機ATM的功能圖。2.測試用例生成方法從功能圖生成測試用例,得到的測試用例數是可接受的. 問題的關鍵的是如何從狀態

溫馨提示

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

評論

0/150

提交評論