如何設計功能測試測試用例

等價類劃分

•在軟件測試中,窮舉法雖然是最安全最保險的一種方法但成本代價高,通常是不可取的。咱們能夠經過等價類劃分方法花費最小的代價來完成最高效的測試。
•等價類劃分是把程序輸入域劃分紅若干子集,而後從子集中選取少數具備表明性的數據進行測試。在子集集合中,各個輸入數據對於揭露程序中的錯誤是等價的。
•等價類分爲有效等價類和無效等價類。
•  1.1有效等價類-----正常流
    對於程序規格來講合理的、有意義的輸入數據的集合,檢驗程序是否實現了規格說明中的功能和性能。
•  1.2無效等價類-----異常流
      不合理的、無心義的輸入數據集合,驗證程序處理意外數據的能力。至少應有一個,也可能多個。

劃分等價類的標準程序員

•1)完備測試、避免冗餘; 
•2)劃分等價類重要的是:集合的劃分,劃分爲互不相交的一組子集,而子集的並是整個集合; 
•3)並是整個集合:完備性; 
•4)子集互不相交:保證一種形式的無冗餘性; 
•5)同一類中標識(選擇)一個測試用例,同一等價類中,每每處理相同,相同處理映射到相同的執行路徑
等價類劃分方法

掌握必須使同類數據的處理過程及處理結果徹底一致的大原則,可參考如下劃分方法數據庫

•  1)  輸入條件規定了取值範圍或值的個數的狀況下,能夠肯定一個有效等價類和兩個無效等價類,如合格成績取值範圍爲[60,100],則範圍內取值爲有效等價類,範圍外<60和>100爲無效等價類
•  2)  輸入條件規定了輸入值的集合或「必須如何」的狀況下,能夠肯定一個有效等價類和一個無效等價類,如:規定數據庫類型必須選擇oracle,則選擇oracle時爲有效等價類,不然爲無效等價類
•  3)  輸入條件是一個布爾量的狀況下,能夠肯定一個有效等價類和一個無效等價類
•  4)  輸入條件規定必須遵照某種規則的狀況下,能夠肯定一個有效等價類和若干個無效等價類(從不一樣角度違法規則),如:規定輸入必須爲非0正整數,則無效等價類能夠分爲空、0、負整數、小數、字符等
•     5)  在規定了輸入數據的一組值(假定N個),而且程序要對每一個輸入值分別處理的狀況下,能夠確立N個有效等價類和一個無效等價類。例:輸入條件說明 學歷可爲:專科、本科、碩士、博士四種之一,則分別取這四種這四個值做爲四個有效等價類,另外把四種學歷以外的任何學歷做爲無效等價類。
•  6)  在確知已劃分的等價類中各元素在程序處理鎮南關的方式不一樣的狀況下,則應再將該等價類進一步的劃分爲更小的等價類
等價類表
•在確立了等價類後,能夠創建等價類表,列出全部劃分出的等價類

輸入條件安全

有效等價類數據結構

無效等價類oracle

合格成績取值範圍爲[60,100]之間的整數工具

[60,100]之間的整數性能

大於100;
    小於60
    帶小數位,如96.3
    含有字母的字符串
    含特殊字符的字符串
    空單元測試

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

輸入等價類測試

有效等價類spa

無效等價類

日期的類型及長度

①6位數字字符

②有非數字字符

③少於6位數字字符

④多於6位數字字符

年份範圍

⑤在1990~2049之間

⑥小於1990

⑦大於2049

月份範圍

⑧在01~12之間

⑨等於00

⑩大於12

 

2)設計測試用例,以便覆蓋全部的有效等價類在表中列出了3個有效等價類,編號分別爲①、⑤、⑧,設計的測試用例以下:
    測試數據    指望結果      覆蓋的有效等價類
    200211      輸入有效      ①、⑤、⑧
  3)爲無效等價類設計測試用例,設計結果以下:
    測試數據   指望結果     覆蓋的無效等價類
    95June     無效輸入          ②
    20036      無效輸入          ③
    2001006   無效輸入          ④
    198912     無效輸入          ⑥
    200401     無效輸入          ⑦
    200100     無效輸入          ⑨
    200113     無效輸入          ⑩

使用等價類劃分法測試的實例(續)

•實例2  保險公司計算保費費率的程序

    某保險公司的人壽保險的保費計算方式爲:

            投保額×保險費率

    其中,保險費率依點數不一樣而有別,10點及10點以上保險費率爲0.6%,10點如下保險費率爲0.1%;而點數又是由 投保人的年齡、性別、婚姻情況和撫養人數來決定,具體規則以下:

年齡  

性別

婚姻

撫養人數  

20~39

40~59  

其它  

  M

  F

已婚  

未婚  

  1人扣0.5點

 最多扣3點

(四捨五入取整)  

 6點

 4點

 2點

5點  

3點  

 3點

 5點

 計算保費費率的程序

(1)分析程序規格說明中給出和隱含的對輸入條件的要求,列出等價類表(包括有效等價類和無效等價類)。

•年齡:一位,兩位或三位非零整數,值的有效範圍爲1~130
•性別:一位英文字符,只能取值‘M’或’F’
•婚姻:字符,只能取值‘已婚’或‘未婚’
•撫養人數:空白或一位非零整數(1~9)
•點數 :一位或兩位非零整數,值的範圍爲1~99

(2)根據(1)中的等價類表,設計能覆蓋全部等價類的   測試用例。

 

輸入條件

有效等價類

編號

無效等價類

編號

年齡

20~39歲

1

   

40~59歲

2

   

1~19歲

60~99歲

3

小於1

12

大於99

13

性別

單個英文字符

4

非英文字符

14

非單個英文字符

15

‘M’

5

除‘M’和‘F’以外的

其它單個字符

16

‘F’

6

婚姻

已婚

7

除’已婚’和’未婚’以外的其它字符

17

未婚

8

撫養人數

空白

9

除空白和數字以外

的其它字符

18

1~6人

10

小於1

19

6~9人

11

大於9

20

 
 

邊界值分析方法

•1.定義:邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。一般邊界值分析法是做爲對等價類劃分法的補充,這種狀況下,其測試用例來自等價類的邊界。

      以往的測試經驗代表,因爲需求界定不許確、設計不嚴密、程序書寫手誤等等緣由,對於這些數據範圍邊界的判斷是軟件極容易出錯的地方。大量的錯誤每每發生在輸入或輸出範圍的邊界上,所以針對各類邊界狀況設計測試用例,能夠檢查出更多的錯誤。

•2.怎樣用邊界值分析法設計測試用例?
  1)邊界值分析不是從某等價類中隨便挑一個做爲表明,而是使這個等價類的每一個邊界都要做爲測試條件。選取正好等於、剛剛大於或剛剛小於邊界的值做爲測試數據
  2)邊界值分析不只考慮輸入條件,還要考慮輸出空間產生的測試狀況。

       3)首先肯定邊界狀況。一般輸入或輸出等價類的邊界就是應該着重測試的邊界狀況,所以在等價類的邊界上以及兩側的狀況設計測試用例。

•3.邊界值適用場景

        1) 輸入(輸出)條件規定了取值範圍

        2) 輸入(輸出)條件規定了值的個數

        3) 程序規格說明書中提到的輸入或輸出是一個有序的集合

        4) 程序中使用了一個內部數據結構

         5)邊界值取值應當選取正好等於、剛剛大於最大邊界值和剛剛小於最小邊界值最爲測試
邊界值選擇測試用例原則
•1)  若是輸入條件規定了值的範圍,則應取剛達到這個範圍的邊界值、以及剛超越這個範圍邊界的值做爲測試輸入數據。  例如,若是程序的規格說明中規定:"重量在10公斤至50公斤範圍內的郵件,其郵費計算公式爲……"。做爲測試用例,咱們應取10及50,還應取10.01,49.99,9.99及50.01等。
•2)  若是輸入條件規定了值的個數,則選取最大個數、最小個數、比最大個數多1、比最小個數少一的數做爲測試數據。
•好比,一個輸入文件應包括1~255個記錄,則測試用例可取1和255,還應取0及256等。
•例如,某程序的規格說明要求計算出"每個月保險金扣除額爲0至1165.25元",其測試用例可取0.00及1165.2四、還可取一0.01及1165.26等。
再如一程序屬於情報檢索系統,要求每次"最少顯示1條、最多顯示4條情報摘要",這時咱們應考慮的測試用例包括1和4,還應包括0和5等。
•5)  若輸入域是有序集合,則選取集合的第一個元素和最後一個元素做爲測試用例
•6)  若是程序使用了一個內部數據結構,則應當選擇內部數據結構上得邊界值做爲測試用例
•7)  分析規格說明,找出其餘可能的邊界條件
錯誤推斷法
•錯誤推斷法通常基於以往的測試經驗和直覺,參照以往的軟件系統出現的錯誤,推測程序中可能存在的各類錯誤,列出程序中全部可能有的錯誤和容易發生錯誤的狀況,有針對性的設計測試用例。
•  單元測試用例中列出許多在模塊中常見的錯誤、之前產品測試中曾經發現的錯誤等
•  例如, 輸入數據和輸出數據爲0的狀況;輸入表格爲空格或輸入表格只有一行。 這些都是容易發生錯誤的狀況。各類狀況在產品說明中經常被忽視,也可能被程序員遺忘,但在實際使用中卻常常發生。測試人員要站在用戶的角度,考慮他們要輸入的信息,而無論這些信息看起來是合法的輸入仍是非法的輸入。
 

因果圖法

•因果圖法產生的背景:

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

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

因果圖法的簡介

•因果圖法是基於這樣的一種思想:一些程序的功能能夠用斷定表(或稱決策表)的形式來表示,並根據輸入條件的組合狀況規定相應的操做。
•因果圖法的定義:是一種利用圖解法分析輸入的各類組合狀況,從而設計測試用例的方法,它適合於檢查程序輸入條件的各類組合狀況。
•採用因果圖法設計測試用例的步驟:

(1)根據程序規格說明書描述,分析並肯定因(輸入條件)和果(輸出結果或程序狀態的改變),畫出因果圖。

(2)將獲得的因果圖轉換爲斷定表。

(3)爲斷定表中每一列所表示的狀況設計一個測試用例

因果圖

•因果圖中用來表示4種因果關係的基本符號:

因果圖中的4種基本關係

           在因果圖的基本符號中,圖中的左結點ci表示輸入狀態(或稱緣由),右結點ei表示輸出狀態(或稱結果)。ci 與 ei 取值0或1,0表示某狀態不出現,1則表示某狀態出現。

Ø恆等:若 c1 是1,則 e1 也爲1,不然 e1 爲0。
Ø非:若 c1 是1,則 e1 爲0,不然e1爲1。
Ø或:若 c1 或 c2 或 c3 是1,則 e1 爲1,不然 e1 爲0。
Ø與:若 c1 和 c2 都是1,則 e1 爲1,不然 e1 爲0。
 
因果圖
•因果圖中的約束

          在實際問題中輸入狀態相互之間、輸出狀態相互之間可能存在某些依賴關係,稱爲「約束」。對於輸入條件的約束有E、I、O、R四種約束,對於輸出條件的約束只有M約束。

ØE約束(異):a和b中最多有一個可能爲1,即a和b不能同時 爲1。
ØI 約束(或):a、b、c中至少有一個必須爲1,即 a、b、c不能同時爲0。
ØO約束(惟一):a和b必須有一個且僅有一個爲1。
ØR約束(要求):a是1時,b必須是1,即a爲1時,b不能爲0。
ØM約束(強制):若結果a爲1,則結果b強制爲0。
 
因果圖
•因果圖中用來表示約束關係的約束符號:
。。。。。。

斷定表

•因果圖法最終生成的是斷定表。
•在全部的黑盒測試方法中,基於決策表(也稱斷定表)的測試是最爲嚴格、最具備邏輯性的測試方法。
•決策表的概念:決策表是分析和表達多邏輯條件下執行不一樣操做的狀況的工具。
 
•決策表的優勢:可以將複雜的問題按照各類可能的狀況所有列舉出來,簡明並避免遺漏。所以,利用決策表可以設計出完整的測試用例集合。
•在一些數據處理問題當中,某些操做的實施依賴於多個邏輯條件的組合,即:針對不一樣邏輯條件的組合值,分別執行不一樣的操做。決策表很適合於處理這類問題。
 

「閱讀指南」斷定表

 

1

2

3

4

5

6

7

8

問題

以爲疲倦?

Y

Y

Y

Y

N

N

N

N

感興趣嗎?

Y

Y

N

N

Y

Y

N

N

糊塗嗎?

Y

N

Y

N

Y

N

Y

N

建議

重讀

       

     

繼續

         

   

跳下一章

           

休息

       

決策表的組成

•決策表一般由如下4部分組成:
Ø條件樁—列出問題的全部條件
Ø條件項—針對條件樁給出的條件列出全部可能的取值
Ø動做樁—列出問題規定的可能採起的操做
Ø動做項—指出在條件項的各組取值狀況下應採起的動做

將任何一個條件組合的特定取值及相應要執行的動做稱爲一條規則。在決策表中貫穿條件項和動做項的一列就是一條規則。

決策表的生成

•構造決策表的5個步驟:

(1) 肯定規則的個數。

Ø有n個條件的決策表有2n個規則(每一個條件取真、假值)。

(2) 列出全部的條件樁和動做樁。

(3) 填入條件項。

(4) 填入動做項,獲得初始決策表。

(5) 簡化決策表,合併類似規則。

Ø若表中有兩條以上規則具備相同的動做,而且在條件項之間存在極爲類似的關係,即可以合併。

合併後的條件項用符號「-」表示,說明執行的動做與該條件的取值無關,稱爲無關條件

測試方法的選擇

•一般,在肯定測試方法時,應遵循如下原則:
Ø根據程序的重要性和一旦發生故障將形成的損失來肯定測試等級和測試重點。
Ø認真選擇測試策略,以便能儘量少的使用測試用例,發現儘量多的程序錯誤。
•一般在肯定測試策略時,有如下5條參考原則:

(1)在任何狀況下都必須採用邊界值分析法。這種方法設計出的測試用例發現程序錯誤的能力最強。

(2)必要時採用等價類劃分法補充測試用例。

(3)採用錯誤推斷法再追加測試用例。

(4)對照程序邏輯,檢查已設計出的測試用例的邏輯覆蓋  程度。若是沒有達到要求的覆蓋標準,則應當再補充更多的測試用例。

(5)若是程序的功能說明中含有輸入條件的組合狀況,則應一開始就選用因果圖法。

用戶登陸界面測試用例設計:

•  一、用戶名、密碼正確登陸
•     2.  默認頁面直接提交
•  三、用戶名、密碼錯誤的檢測
•  四、用戶名不存在的檢測
•  五、TAB鍵的檢測
•  六、Enter鍵的檢測
•  七、被刪除的用戶名是否可以登陸
•  八、被禁止的用戶名是否可以登陸
•     9. 用戶重複登錄
•  十、用戶名大小寫的敏感檢測
•  十一、用戶名、密碼對複製粘貼內容的敏感檢測
相關文章
相關標籤/搜索