1. 程式人生 > >測試用例的設計方法(全)

測試用例的設計方法(全)

等價類劃分方法:

一.方法簡介

1.定義
  是把所有可能的輸入資料,即程式的輸入域劃分成若干部分(子集),然後從每一個子集中選取少數具有代表性的資料作為測試用例。該方法是一種重要的,常用的黑盒測試用例設計方法。
    
2.劃分等價類:
  等價類是指某個輸入域的子集合。在該子集合中,各個輸入資料對於揭露程式中的錯誤都是等效的,併合理地假定:測試某等價類的代表值就等於對這一類其它值的測試,因此,可以把全部輸入資料合理劃分為若干等價類,在每一個等價類中取一個數據作為測試的輸入條件就可以用少量代表性的測試資料取得較好的測試結果。等價類劃分可有兩種不同的情況:有效等價類和無效等價類。
  1)有效等價類
    是指對於程式的規格說明來說是合理的、有意義的輸入資料構成的集合。利用有效等價類可檢驗程式是否實現了規格說明中所規定的功能和效能。
  2)無效等價類
    與有效等價類的定義恰巧相反。無效等價類指對程式的規格說明是不合理的或無意義的輸入資料所構成的集合。對於具體的問題,無效等價類至少應有一個,也可能有多個。
  設計測試用例時,要同時考慮這兩種等價類。因為軟體不僅要能接收合理的資料,也要能經受意外的考驗,這樣的測試才能確保軟體具有更高的可靠性。
   
3.劃分等價類的標準:
  1)完備測試、避免冗餘;
  2)劃分等價類重要的是:集合的劃分,劃分為互不相交的一組子集,而子集的並是整個集合;
  3)並是整個集合:完備性;
  4)子集互不相交:保證一種形式的無冗餘性;
  5)同一類中標識(選擇)一個測試用例,同一等價類中,往往處理相同,相同處理對映到"相同的執行路徑"。

4.劃分等價類的方法
  1)在輸入條件規定了取值範圍或值的個數的情況下,則可以確立一個有效等價類和兩個無效等價類。如:輸入值是學生成績,範圍是0~100;

2)在輸入條件規定了輸入值的集合或者規定了"必須如何"的條件的情況下,可確立一個有效等價類和一個無效等價類;
  3)在輸入條件是一個布林量的情況下,可確定一個有效等價類和一個無效等價類。
  4)在規定了輸入資料的一組值(假定n個),並且程式要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類。
    例:輸入條件說明學歷可為:專科、本科、碩士、博士四種之一,則分別取這四種這四個值作為四個有效等價類,另外把四種學歷之外的任何學歷作為無效等價類。
  5)在規定了輸入資料必須遵守的規則的情況下,可確立一個有效等價類(符合規則)和若干個無效等價類(從不同角度違反規則);
  6)在確知已劃分的等價類中各元素在程式處理中的方式不同的情況下,則應再將該等價類進一步的劃分為更小的等價類。
  
5.設計測試用例
  在確立了等價類後,可建立等價類表,列出所有劃分出的等價類輸入條件:有效等價類、無效等價類,然後從劃分出的等價類中按以下三個原則設計測試用例:
  1)為每一個等價類規定一個唯一的編號;
  2)設計一個新的測試用例,使其儘可能多地覆蓋尚未被覆蓋地有效等價類,重複這一步,直到所有的有效等價類都被覆蓋為止;
  3)設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重複這一步,直到所有的無效等價類都被覆蓋為止。
  
二.實戰演習

1.某程式規定:"輸入三個整數 a 、 b 、 c 分別作為三邊的邊長構成三角形。通過程式判定所構成的三角形的型別,當此三角形為一般三角形、等腰三角形及等邊三角形時,分別作計算 … "。用等價類劃分方法為該程式進行測試用例設計。(三角形問題的複雜之處在於輸入與輸出之間的關係比較複雜。)
  分析題目中給出和隱含的對輸入條件的要求: 
  (1)整數    (2)三個數    (3)非零數   (4)正數   
  (5)兩邊之和大於第三邊     (6)等腰     (7)等邊 
   如果 a 、 b 、 c 滿足條件( 1 ) ~ ( 4 ),則輸出下列四種情況之一:
   1)如果不滿足條件(5),則程式輸出為 " 非三角形 " 。
   2)如果三條邊相等即滿足條件(7),則程式輸出為 " 等邊三角形 " 。
   3)如果只有兩條邊相等、即滿足條件(6),則程式輸出為 " 等腰三角形 " 。
   4)如果三條邊都不相等,則程式輸出為 " 一般三角形 " 。 
   列出等價類表並編號

覆蓋有效等價類的測試用例:
    a     b     c             覆蓋等價類號碼
    3     4     5             (1)--(7)
    4     4     5             (1)--(7),(8)
    4     5     5             (1)--(7),(9)    
    5     4     5             (1)--(7),(10)
    4     4     4             (1)--(7),(11)
   覆蓋無效等價類的測試用例:

2.設有一個檔案管理系統,要求使用者輸入以年月表示的日期。假設日期限定在1990年1月~2049年12月,並規定日期由6位數字字元組成,前4位表示年,後2位表示月。現用等價類劃分法設計測試用例,來測試程式的"日期檢查功能"。
  1)劃分等價類並編號,下表等價類劃分的結果

輸入等價類

有效等價類

無效等價類

日期的型別及長度

①6位數字字元

②有非數字字元

③少於6位數字字元

④多於6位數字字元

年份範圍

⑤在1990~2049之間

⑥小於1990

⑦大於2049

月份範圍

⑧在01~12之間

⑨等於00

⑩大於12

2)設計測試用例,以便覆蓋所有的有效等價類在表中列出了3個有效等價類,編號分別為①、⑤、⑧,設計的測試用例如下:
    測試資料    期望結果      覆蓋的有效等價類
    200211      輸入有效     ①、⑤、⑧
  3)為每一個無效等價類設計一個測試用例,設計結果如下:
    測試資料   期望結果     覆蓋的無效等價類
    95June     無效輸入         ②
    20036      無效輸入          ③
    2001006   無效輸入         ④
    198912     無效輸入         ⑥
    200401     無效輸入         ⑦
    200100     無效輸入         ⑨
    200113     無效輸入         ⑩
    
3.NextDate 函式包含三個變數:month、 day 和 year ,函式的輸出為輸入日期後一天的日期。 例如,輸入為 2006年3月 7日,則函式的輸出為 2006年3月8日。要求輸入變數 month 、 day 和 year 均為整數值,並且滿足下列條件:
  ①1≤month≤12
  ②1≤day≤31
  ③1920≤year≤2050  
  1)有效等價類為:
    M1={月份:1≤月份≤12}
    D1={日期:1≤日期≤31}
    Y1={年:1812≤年≤2012}
  2)若條件 ①~ ③中任何一個條件失效,則NextDate 函式都會產生一個輸出,指明相應的變數超出取值範圍,比如 "month 的值不在 1-12 範圍當中 " 。顯然還存在著大量的 year 、 month 、 day 的無效組合, NextDate 函式將這些組合作統一的輸出: " 無效輸入日期 " 。其無效等價類為:   M2={月份:月份<1}
    M3={月份:月份>12}
    D2={日期:日期<1}
    D3={日期:日期>31}
    Y2={年:年<1812}
    Y3={年:年>2012}
  弱一般等價類測試用例
  月份   日期      年              預期輸出
   6      15       1912           1912年6月16日
  強一般等價類測試用例同弱一般等價類測試用例
  注:弱--有單缺陷假設;健壯--考慮了無效值 
  
  (一)弱健壯等價類測試
  用例ID  月份  日期    年         預期輸出
  WR1      6     15    1912      1912年6月16日
  WR2     -1    15    1912      月份不在1~12中
  WR3     13    15    1912      月份不在1~12中
  WR4      6     -1    1912      日期不在1~31中
  WR5      6     32    1912      日期不在1~31中
  WR6      6     15    1811      年份不在1812~2012中
  WR7      6     15    2013      年份不在1812~2012中

 (二)強健壯等價類測試
  用例ID  月份    日期     年         預期輸出
  SR1       -1     15       1912     月份不在1~12中
  SR2       6      -1       1912      日期不在1~31中
  SR3       6      15      1811      年份不在1812~2012中
  SR4       -1     -1       1912      兩個無效一個有效
  SR5       6      -1       1811      兩個無效一個有效
  SR6       -1     15       1811      兩個無效一個有效
  SR7       -1     -1       1811      三個無效
  
4.佣金問題等價類測試用例,它是根據佣金函式的輸出值域定義等價類,來改進測試用例集合。
輸出銷售額≤1000元     佣金10%
1000<銷售額≤1800    佣金=100+(銷售額-1000)*15%
銷售額>1800             佣金=220+(銷售額-1800)*20%
測試用例        槍機(45)   槍托(30)     槍管(25)         銷售額     佣金
   1              5            5              5                 500        50
   2             15          15             15                1500       175
   3             25          25             25                2500       360
根據輸出域選擇輸入值,使落在輸出域等價類內,可以結合弱健壯測試用例結合。

邊界值分析方法:

一.方法簡介
1.定義:邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。 

2.與等價劃分的區別
  1)邊界值分析不是從某等價類中隨便挑一個作為代表,而是使這個等價類的每個邊界都要作為測試條件。
  2)邊界值分析不僅考慮輸入條件,還要考慮輸出空間產生的測試情況。

3.邊界值分析方法的考慮:
  長期的測試工作經驗告訴我們,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是發生在輸入輸出範圍的內部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。
  使用邊界值分析方法設計測試用例,首先應確定邊界情況。通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況。應當選取正好等於,剛剛大於或剛剛小於邊界的值作為測試資料,而不是選取等價類中的典型值或任意值作為測試資料。

4.常見的邊界值
  1)對16-bit 的整數而言 32767 和 -32768 是邊界
  2)螢幕上游標在最左上、最右下位置
  3)報表的第一行和最後一行
  4)陣列元素的第一個和最後一個
  5)迴圈的第 0 次、第 1 次和倒數第2 次、最後一次

5.邊界值分析
  1)邊界值分析使用與等價類劃分法相同的劃分,只是邊界值分析假定錯誤更多地存在於劃分的邊界上,因此在等價類的邊界上以及兩側的情況設計測試用例。
    例:測試計算平方根的函式
        --輸入:實數
        --輸出:實數
        --規格說明:當輸入一個0或比0大的數的時候,返回其正平方根;當輸入一個小於0的數時,顯示錯誤資訊"平方根非法-輸入值小於0"並返回0;庫函式Print-Line可以用來輸出錯誤資訊。
        
  2)等價類劃分:
    I.可以考慮作出如下劃分:
      a、輸入 (i)<0 和 (ii)>=0
      b、輸出 (a)>=0 和 (b) Error
    II.測試用例有兩個:
      a、輸入4,輸出2。對應於 (ii) 和(a) 。
      b、輸入-10,輸出0和錯誤提示。對應於 (i) 和(b) 。

  3)邊界值分析:
    劃分(ii)的邊界為0和最大正實數;劃分(i)的邊界為最小負實數和0。由此得到以下測試用例:
    a、輸入{最小負實數}
    b、輸入{絕對值很小的負數}
    c、輸入0
    d、輸入{絕對值很小的正數}
    e、輸入{最大正實數}
    
  4)通常情況下,軟體測試所包含的邊界檢驗有幾種型別:數字、字元、位置、重量、大小、速度、方位、尺寸、空間等。
  5)相應地,以上型別的邊界值應該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、  最短/最長、 空/滿等情況下。
  6)利用邊界值作為測試資料

邊界值

測試用例的設計思路

字元

起始-1個字元/結束+1個字元

假設一個文字輸入區域允許輸入1個到255個 字元,輸入1個和255個字元作為有效等價類;輸入0個和256個字元作為無效等價類,這幾個數值都屬於邊界條件值。

數值

最小值-1/最大值+1

假設某軟體的資料輸入域要求輸入5位的資料值,可以使用10000作為最小值、99999作為最大值;然後使用剛好小於5位和大於5位的 數值來作為邊界條件。

空間

小於空餘空間一點/大於滿空間一點

例如在用U盤儲存資料時,使用比剩餘磁碟空間大一點(幾KB)的檔案作為邊界條件。

7)內部邊界值分析:
    在多數情況下,邊界值條件是基於應用程式的功能設計而需要考慮的因素,可以從軟體的規格說明或常識中得到,也是終端使用者可以很容易發現問題的。然而,在測試用例設計過程中,某些邊界值條件是不需要呈現給使用者的,或者說使用者是很難注意到的,但同時確實屬於檢驗範疇內的邊界條件,稱為內部邊界值條件或子邊界值條件。
    內部邊界值條件主要有下面幾種:
    a)數值的邊界值檢驗:計算機是基於二進位制進行工作的,因此,軟體的任何數值運算都有一定的範圍限制。

範圍或值

位(bit)

0或者1

位元組(byte)

0——225

字(word)

0~65535(單字)或 0~4294967295(雙字)

千(K)

1024

兆(M)

1048576

吉(G)

1073741824

b)字元的邊界值檢驗:在計算機軟體中,字元也是很重要的表示元素,其中ASCII和Unicode是常見的編碼方式。下表中列出了一些常用字元對應的ASCII碼值。

字元

ASCII碼值

字元

ASCII碼值

空 (null)

0

A

65

空格 (space)

32

a

97

斜槓 ( / )

47

Z

90

0

48

z

122

冒號 ( : )

58

單引號 ( ‘ )

96

@

64

c)其它邊界值檢驗
    
6.基於邊界值分析方法選擇測試用例的原則
  1)如果輸入條件規定了值的範圍,則應取剛達到這個範圍的邊界的值,以及剛剛超越這個範圍邊界的值作為測試輸入資料。
    例如,如果程式的規格說明中規定:"重量在10公斤至50公斤範圍內的郵件,其郵費計算公式為……"。作為測試用例,我們應取10及50,還應取10.01,49.99,9.99及50.01等。
  2)如果輸入條件規定了值的個數,則用最大個數,最小個數,比最小個數少一,比最大個數多一的數作為測試資料。
比如,一個輸入檔案應包括1~255個記錄,則測試用例可取1和255,還應取0及256等。
  3)將規則1)和2)應用於輸出條件,即設計測試用例使輸出值達到邊界值及其左右的值。
    例如,某程式的規格說明要求計算出"每月保險金扣除額為0至1165.25元",其測試用例可取0.00及1165.24、還可取一0.01及1165.26等。
    再如一程式屬於情報檢索系統,要求每次"最少顯示1條、最多顯示4條情報摘要",這時我們應考慮的測試用例包括1和4,還應包括0和5等。 
  4)如果程式的規格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最後一個元素作為測試用例。
  5)如果程式中使用了一個內部資料結構,則應當選擇這個內部資料結構的邊界上的值作為測試用例。
  6)
分析規格說明,找出其它可能的邊界條件。

.實戰演習1.現有一個學生標準化考試批閱試卷,產生成績報告的程式。其規格說明如下:程式的輸入檔案由一些有80個字元的記錄組成,如右圖所示,所有記錄分為3組:

標題:這一組只有一個記錄,其內容為輸出成績報告的名字。
  ②試卷各題標準答案記錄:每個記錄均在第80個字元處標以數字"2"。該組的第一個記錄的第1至第3個字元為題目編號(取值為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 
  ⑤程式的輸出有4個報告:
    a)按學號排列的成績單,列出每個學生的成績、名次。
    b)按學生成績排序的成績單。
    c)平均分數及標準偏差的報告。
    d)試題分析報告。按試題號排序,列出各題學生答對的百分比。 
  解答:分別考慮輸入條件和輸出條件,以及邊界條件。給出下表所示的輸入條件及相應的測試用例。

 
  輸出條件及相應的測試用例表。

 
 
2.三角形問題的邊界值分析測試用例
在三角形問題描述中,除了要求邊長是整數外,沒有給出其它的限制條件。在此,我們將三角形每邊邊長的取範圍值設值為[1, 100] 。

3.NextDate函式的邊界值分析測試用例
在NextDate函式中,隱含規定了變數mouth和變數day的取值範圍為1≤mouth≤12和1≤day≤31,並設定變數year的取值範圍為1912≤year≤2050 。

因果圖方法

一.   方法簡介

1.定義:是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,它適合於檢查程式輸入條件的各種組合情況。

2.因果圖法產生的背景:

等價類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關係。這樣雖然各種輸入條件可能出錯的情況已經測試到了,但多個輸入條件組合起來可能出錯的情況卻被忽視了。

如果在測試時必須考慮輸入條件的各種組合,則可能的組合數目將是天文數字,因此必須考慮採用一種適合於描述多種條件的組合、相應產生多個動作的形式來進行測試用例的設計,這就需要利用因果圖(邏輯模型)。

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。“或”可有任意個輸入。

④與:若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。

   ④R約束(要求):a是1時,b必須是1,即不可能a是1時b是0。

B.輸出條件約束型別

   輸出條件的約束只有M約束(強制):若結果a是1,則結果b強制為0。

5. 採用因果圖法設計測試用例的步驟:

1)分析軟體規格說明描述中, 那些是原因(即輸入條件或輸入條件的等價類),那些是結果(即輸出條件), 並給每個原因和結果賦予一個識別符號。

2)分析軟體規格說明描述中的語義,找出原因與結果之間, 原因與原因之間對應的關係,根據這些關係,畫出因果圖。

3)由於語法或環境限制, 有些原因與原因之間,原因與結果之間的組合情況不可能出現,為表明這些特殊情況, 在因果圖上用一些記號表明約束或限制條件。

4)把因果圖轉換為判定表。

5)把判定表的每一列拿出來作為依據,設計測試用例。

二. 實戰演習

1. 某軟體規格說明書包含這樣的要求:第一列字元必須是A或B,第二列字元必須是一個數字,在此情況下進行檔案的修改,但如果第一列字元不正確,則給出資訊L;如果第二列字元不是數字,則給出資訊M。

解答:

1) 根據題意,原因和結果如下:

       原因:

         1——第一列字元是A;

         2——第一列字元是B;

         3——第二列字元是一數字。

       結果:

         21——修改檔案;

         22 ——給出資訊L;

         23——給出資訊M。

2) 其對應的因果圖如下:

11為中間節點;考慮到原因1和原因2不可能同時為1,因此在因果圖上施加E約束。

3)根據因果圖建立判定表。

       表中8種情況的左面兩列情況中,原因①和原因②同時為1,這是不可能出現的,故應排除這兩種情況。表的最下一欄給出了6種情況的測試用例,這是我們所需要的資料。

2.有一個處理單價為5角錢的飲料的自動售貨機軟體測試用例的設計。其規格說明如下:若投入5角錢或1元錢的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應的飲料就送出來。若售貨機沒有零錢找,則一個顯示〖零錢找完〗的紅燈亮,這時在投入1元硬幣並押下按鈕後,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示〖零錢找完〗的紅燈滅,在送出飲料的同時退還5角硬幣。

1) 分析這一段說明,列出原因和結果

原因:

1.售貨機有零錢找

2.投入1元硬幣

3.投入5角硬幣

4.押下橙汁按鈕

5.押下啤酒按鈕

結果:

21.售貨機〖零錢找完〗燈亮   

22.退還1元硬幣

23.退還5角硬幣            

24.送出橙汁飲料

25.送出啤酒飲料

2)畫出因果圖,如圖所示。所有原因結點列在左邊,所有結果結點列在右邊。建立中間結點,表示處理的中間狀態。中間結點:

11. 投入1元硬幣且押下飲料按鈕

               12. 押下〖橙汁〗或〖啤酒〗的按鈕

               13. 應當找5角零錢並且售貨機有零錢找

               14. 錢已付清

3)轉換成判定表:

4) 在判定表中,陰影部分表示因違反約束條件的不可能出現的情況,刪去。第16列與第32列因什麼動作也沒做,也刪去。最後可根據剩下的16列作為確定測試用例的依據。

判定表驅動分析方法

一.    方法簡介

1.定義:判定表是分析和表達多邏輯條件下執行不同操作的情況的工具。

2.判定表的優點

能夠將複雜的問題按照各種可能的情況全部列舉出來,簡明並避免遺漏。因此,利用判定表能夠設計出完整的測試用例集合。

在一些資料處理問題當中,某些操作的實施依賴於多個邏輯條件的組合,即:針對不同邏輯條件的組合值,分別執行不同的操作。判定表很適合於處理這類問題。

3.“閱讀指南”判定表

4. 判定表通常由四個部分組成如下圖所示。

1)條件樁(Condition Stub):列出了問題得所有條件。通常認為列出的條件的次序無關緊要。

2)動作樁(Action Stub):列出了問題規定可能採取的操作。這些操作的排列順序沒有約束。

3)條件項(Condition Entry):列出針對它左列條件的取值。在所有可能情況下的真假值。

4)動作項(Action Entry):列出在條件項的各種取值情況下應該採取的動作。

5.規則及規則合併

1)規則:任何一個條件組合的特定取值及其相應要執行的操作稱為規則。在判定表中貫穿條件項和動作項的一列就是一條規則。顯然,判定表中列出多少組條件取值,也就有多少條規則,既條件項和動作項有多少列。

2)化簡:就是規則合併有兩條或多條規則具有相同的動作,並且其條件項之間存在著極為相似的關係。

6.規則及規則合併舉例

1)如下圖左端,兩規則動作項一樣,條件項類似,在1、2條件項分別取Y、N時,無論條件3取何值,都執行同一操作。即要執行的動作與條件3無關。於是可合併。“-”表示與取值無關。

2)與上類似,下圖中,無關條件項“-”可包含其他條件項取值,具有相同動作的規則可合併。

3)化簡後的讀書指南判定表

1

2

3

4

你覺得疲倦嗎?

-

-

Y

N

你對內容感興趣嗎?

Y

Y

N

N

書中內容使你胡塗嗎?

Y

N

-

-

請回到本章開頭重讀

x

繼續讀下去

X

跳到下一章去讀

x

停止閱讀,請休息

x

7.判定表的建立步驟:(根據軟體規格說明)

1)確定規則的個數.假如有n個條件。每個條件有兩個取值(0,1),故有2n種規則。

2)列出所有的條件樁和動作樁。

3)填入條件項。

4)填入動作項。等到初始判定表。

5)簡化.合併相似規則(相同動作)。

二. 實戰演習

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等等。 

④填入動作樁和動作頂。這樣便得到形如圖的初始判定表。

1

2

3

4

5

6

7

8

功率大於50馬力嗎?

Y

Y

Y

Y

N

N

N

N

維修記錄不全嗎?

Y

Y

N

N

Y

Y

N

N

執行超過10年嗎?

Y

N

Y

N

Y

N

Y

N

進行優先處理

x

x

X

X

X

相關推薦

測試之黑盒測試設計方法邊界值分析

        此方法是對等價類劃分法的補充,他不是選擇等價類的任意元素,而是選擇等價類邊界的測試用例,邊界值的處理也是比較容易出錯的地方。使用邊界值分析方法設計測試用例,首先應確定邊界情況。通常輸入

黑盒測試設計集錦

等價類劃分法 1.定義 是把所有可能的輸入資料,程式的輸入域劃分成若干部分(子集),然後從每一個子集中選取少數具有代表性的資料作為測試用例。該方法是一種重要的,常用的黑盒測試用例設計方法。 2.劃分等價類 等價類是指某個輸入域的子集合。在該子集合中,各個輸入資料對於揭露程式

測試設計方法

等價類劃分方法:一.方法簡介1.定義  是把所有可能的輸入資料,即程式的輸入域劃分成若干部分(子集),然後從每一個子集中選取少數具有代表性的資料作為測試用例。該方法是一種重要的,常用的黑盒測試用例設計方法。    2.劃分等價類:  等價類是指某個輸入域的子集合。在該子集合中

黑盒測試設計方法實踐--合併---判定表驅動法

概念理解:   判定表是分析和表達多邏輯條件下執行不同操作的情況的工具   a、可配合因果圖後期使用;   b、適合於多邏輯條件下的組合分析;   掌握判定表的結構:   1)條件樁:列出了問題的所有條件   2)動作樁:列出了問題規定可能

軟件測試 —— 設計2邊界值

本場 幾歲 新建 也會 出現 點擊 自己 輸入輸出 無限   在現實生活中,無論做什麽,都會有一個“度”的概念。比如,我們知道在NBA總決賽的時候,很多運動員會特意在剛開始比賽不久就增加身體對抗去試探裁判員本場的尺度怎麽樣;還有MMA比賽的時候,一些有經驗的運動員也會有意去

史上最測試設計方法總結

內部 就是 影響 中間 存在 計算公式 冗余 邊界 數組 測試用例的設計方法(全)等價類劃分方法:一.方法簡介1.定義是把所有可能的輸入數據,即程序的輸入域劃分成若幹部分(子集),然後從每一個子集中選取少數具有代表性的數據作為測試用例。該方法是一種重要的,常用的黑盒測試用例

測試設計方法:判定表

工具 理解 關系 輸入數據 可能 只有一個 輸入 技術 用戶 測試用例設計方法 判定表 定義 分析和表述若幹輸入條件下被測對象針對這些輸入做出的響應的一種工具; 遇到復雜業務邏輯是可以利用該表理清業務關系; 重要概念 條件 l 條件樁:需求規格說明書定義的被測對象的所有輸

軟體測試設計方法

前面有曰:測試結果的準確性取決於測試用例的設計,故測試用例設計顯得尤為重要。今天就好好梳理下,測試用例的相關內容.   重要性:Test Case貫穿整個測試執行過程,分兩大類:數值計算類和資料處理類   概述:編寫一組前提條件,輸入,執行條件,預期結果的組合方案。完

常見的測試設計方法有哪些呢?

有什麼比較好的基礎理論書籍推薦嗎? [我的回答]2018年8月25日 測試用例設計技術和方法,其目的是為了解決測試分析與設計過程中碰到的問題,純粹的理論只是應用技術和方法的基礎,但不是目的。測試用例分析與設計過程,需要我們不斷的應用結構化思維、發散性思維和視覺化思

測試設計方法3-狀態遷移

狀態遷移法     許多需求時使用狀態機來描述的,狀態及的測試主要關注測試狀態的轉移上面。通過測試驗證其在給定的條件下是否能夠產生需要的狀態變化,有沒有不可達到的狀態或是是否有可能產生非法狀態。因此可以設計狀態前一路徑覆蓋的角度來設計測試用例,並對系統進行測試。狀態遷移的目標

黑盒測試設計方法-場景法

定義 場景法是通過運用場景來對系統的功能點或業務流程的描述,從而提高測試效果的一種方法。 場景法一般包含基本流和備用流,從一個流程開始,通過描述經過的路徑來確定的過程,經過遍歷所有的基本流和備用流來完成整個場景。場景主要包括4種主要的型別:正常的用例場景,備

白盒測試設計方法-語句覆蓋法

一、概念 白盒測試技術:一般可以分為靜態分析技術和動態分析技術。 a.靜態分析技術:控制流分析技術、資料流分析技術、資訊流分析技術; b.動態分析技術:邏輯覆蓋率測試、程式插樁; 其中最常用的是邏輯

Teuthology的使用與Ceph自動化測試的編寫

這裡將簡單介紹teuthology中自動化測試的用例的編寫。Ceph的自動化測試使用yaml檔案描述,如下的例子搭建了一個三節點的Ceph叢集,終端在叢集搭建好後停止在python的interactive上,允許測試著呼叫相關的函式與叢集互動。 rol

黑盒測試設計方法普及【轉載】

異常分析 ble 測試方法 優先 命名 www alt 方式 積累 測試用例的設計是測試實現階段的核心工作,也是指導如何執行測試的基礎。 測試用例(Test Case)是為某個特殊目標而編制的一組測試輸入、執行條件以及預期結果,以便測試某個程序路徑或核實是否滿足某

測試-等價類1

取出 針對 可能 就是 用例設計 有意 劃分 對象 設計 概念   等價類劃分就是把被測對象的輸入域劃分為若幹個集合,對於某個集合中的某個元素和該集合中的任一元素的表征一致, 然後從每個劃分的集合中取出少數的數據作為測試用例;對於某個被測對象的輸入域而言,如果某個個體被

測試-因果圖4

bsp 才會 結果 沒有 關系 簡單的 條件 描述 約束 因果圖 概念 因果圖是一種利用圖解分析法去分析輸入的各種組合情況,從而設計測試用例的方法。 因果圖與判定表 在輸入與輸入存在一定的約束關系時,簡單的邏輯關系,用判定表就可以完成測試用例的設計, 但是復

go test 測試那些事 mock

關於`go`的單元測試,之前有寫過一篇帖子[go test測試用例那些事](https://www.cnblogs.com/li-peng/p/10036468.html),但是沒有說go官方的庫[mock](https://github.com/golang/mock),很有必要單獨說一下這個庫,和他的實現

黑盒測試設計-正交試驗方法

nbsp 出現 logs 因果圖 設計 步驟 引入 常用 因子和 6.正交試驗方法 第4節結尾提到,因果關系非常龐大,導致由此得到的測試用例數目多大。因而引入正交試驗法,從大量的試驗數據中挑選適量的、有代表性的點安排測試,來有效地、合理地減少測試的工時。 (1

黑盒測試設計-功能圖法和場景法

重新 感覺 結果 軟件 簡單 可能 遷移 面向 通話 7.功能圖法 一個程序的功能包括靜態和動態說明。動態說明描述輸入數據的次序或轉移的次序,和業務流程緊密對應。靜態說明描述了輸入輸出條件之間的對應關系。對於面向市場的產品,其邏輯復雜、組合龐大,必須用動態說明

黑盒測試設計-維護十二

叠代 測試的 部分 開發 用例設計 來源 nbsp 延伸 不同的 六、用例維護—經驗用例 當進入執行測試階段時, 我們總是能發現一些缺陷的出現是出乎我們意料的, 或者說是已有的測試需求和測試用例未能覆蓋的。那麽,對於這部分缺陷,也應當在分析整理後添加到測試需求