史上最全的測試用例設計方法總結!【二】

二.實戰演習
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
根據輸出域選擇輸入值,使落在輸出域等價類內,可以結合弱健壯測試用例結合。

 

簡述:喜歡的話麻煩大家點點關注,若沒人支持文章將沒有繼續往下寫的動力,從此大量博主會不願意再寫博客,導致行業資料大牛經驗無法流出。並不是說只針對我,大家看到任何一遍文章都是如此,喜歡就隨手點贊發表評論下自己的想法,如果感覺博主符合自己學習的類型也可以關注已便有新資料可以及時得知。謝謝!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章