淺析黑盒/白盒測試用例的基本設計方法:等價類划分法、臨界值分析法、錯誤推測法、因果圖法


   測試用例設計:將軟件測試的行為活動,作為一個科學化的組織歸納。

  測試用例:設計一個情況,軟件程序在這種情況下,必須能夠正常運行並且達到程序所設計的執行結果。

  因為我們不可能進行窮舉測試,為了節省時間和資源、提高測試效率,必須從數量極大的可用測試數據精心挑選出具有代表性或者特殊性的測試數據來進行測試。

  在開始實施測試之前設計好測試用例,可以避免盲目測試並提高測試效率。測試用例的使用令軟件測試的實施重點突出、目的明確。在軟件版本更新后只修正少部分的測試用例便可展開測試工作,降低工作強度,縮短項目周期。功能測試模塊的通用化和復用化使軟件易於開發,而測試用例的通用化和復用化則會使軟件測試易於開展,並隨着測試用例的不斷精化其效率也不斷攀升。

  黑盒測試用例設計方法包括:等價類划分法、邊界值分析法、錯誤推測法、因果圖法、判定表驅動法、正交試驗設計法、功能圖法、場景圖法等。

一、等價類划分法

1、定義:

  等價類划分法是把所有可能輸入的數據,即程序的輸入域划分為若干部分(子集),然后從每一個子集中選取少數具有代表性的數據作為測試用例。

  該方法是一種重要的、常用的黑盒測試用例設計方法。

  等價類是指某個輸入域的子集合。在該子集合中,各個輸入數據對於揭露程序中的錯誤都是等效的,並合理地假定:測試某等價類的代表值就等於對這一類其他值的測試,因此,可以把全部輸入數據合理划分為若干等價類,在每一個等價類中取一個數據作為測試的輸入條件就可以用少量代表性的測試數據取得較好的測試結果。

2、等價類划分有兩種不同的情況:有效等價類和無效等價類。

  有效等價類,是指對於程序的規格說明來說是合理的、有意義的輸入數據構成的集合。利用有效等價類可檢驗程序是否實現了規格說明所規定的功能和性能。

  無效等價類,是指對程序的規格說明是不合理的或無意義的輸入數據所構成的集合。對於具體的問題,無效等價類至少應有一個,也可能多個。

 3、等價類的划分原則:

  1. 如果輸入是一個取值范圍或者值的個數,則划分成一個有效等價類和兩個無效等價類; 
  2. 如果輸入是一個有限的集合或者必須如何的條件,則划分成一個有效等價類和一個無效等價類;  
  3. 如果輸入是一個布爾量,則划分成一個有效等價類和一個無效等價類;
  4. 如果輸入已經划分等價類,針對具體的值處理方式會有所不同更加細化,則划分成多個有效等價類和一個無效等價類;
  5. 如果輸入要同時滿足多個條件,則划分成一個有效等價類和多個無效等價類;

4、等價類划分的使用步驟:

  1. 將需求規格划分成需求子片段;
  2. 分析需求子片段,找出輸入條件;
  3. 分析輸入條件,結合等價類划分原則進行等價類划分;
  4. 對划分的等價類進行編號;
  5. 從划分的等價類中選取數據結合測試用例寫作規范生成最終的測試用例;       

  一條測試用例盡量覆蓋多個有效等價類;一條測試用例只覆蓋一個無效等價類。

5、等價類划分法例題:

(一)一個有效&兩個無效

        取值范圍:駕照年齡18-65周歲

        一個有效(18-65之間)

  兩個無效(17,66)

(二)一個有效&一個無效

        取值范圍:第三期學員

          一個有效(第三期學員)

    一個無效(非第三期學員)

(三)一個有效&一個無效

        取值范圍:男性

          一個有效(男性)

    一個無效(女性)

(四)多個有效&一個無效

        英語考試,60以上合格(含60分)

           一個有效:60分以上

                 60-79:合格

                 80-89:良好

                 90-100:優秀

          一個無效:60分以下

(五)一個有效&多個無效

        個人信息注冊:身高,體重,年齡

          一個有效:三個資料都填寫

          三個無效: 身高填寫X

                            體重填寫Y

                            年齡填寫Z

二、邊界值分析法

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

2、與等價類區別:

(1)邊界值分析不是從某等價類中隨便挑一個作為代表,而是使這個等價類的每個邊界都要作為測試條件。

(2)邊界值分析不僅考慮輸入條件,還要考慮輸出空間產生的測試情況。

3、分析方法:

  大量的錯誤是發生在輸入或輸出范圍的邊界上,而不是發生在輸入輸出范圍的內部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。

  使用邊界值分析方法設計測試用例,首先應確定邊界情況。通常輸入和輸出等價類的邊界,就是應着重測試的邊界情況。應當選取正好等於,剛剛大於或剛剛小於邊界的值作為測試數據,而不是選取等價類中的典型值或任意值作為測試數據。

4、常見邊界值:

(1)對16Bit的整數而言,32767和32768是邊界

(2)屏幕上光標在最左上、最右下位置

(3)報表的第一行和最后一行

(4)數組元素的第一個和最后一個

(5)循環的第0次、第1次和倒數第2次、最后一次

5、邊界值分析法例題:

(一)取值范圍:計算器計算100以內正數加減法:1-100

      取值:有效:1,100

                無效:0,101

      值的個數(固定是幾):處理三個數是否能組成三角形

               有效:3個

               無效:2個,4個

(二) 值的個數是取值范圍:密碼6-16

      取值:有效:6,16

                無效:5,17

(三)有序的集合:01-12月

      取值:有效:01,12

                無效:00,13

(四)內部數據結構:棧:儲存10個數據

      取值:有效:10

                無效:11

三、錯誤推測法

1、定義:基於經驗和直覺推測程序中所有可能存在的各種錯誤,從而有針對性的設計測試用例的方法。

2、基本思想:列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例。

3、例如,測試一個對線性表(比如數組)進行排序的程序,可推測列出以下幾項需要特別測試的情況:

(1)輸入的線性表為空表;

(2)表中只含有一個元素;

(3) 輸入表中所有元素已排好序;

(4)輸入表已按逆序排好;

(5)輸入表中部分或全部元素相同。

四、因果圖法

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

2、應用:

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

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

五、判定表驅動法

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

2、優點:能夠將復雜的問題按照各種可能的情況全部列舉出來,簡明並避免遺漏。因此,利用判定表能夠設計出完整的測試用例集合。在一些數據處理問題當中,某些操作的實施依賴於多個邏輯條件的組合,即:針對不同邏輯條件的組合值,分別執行不同的操作。判定表適合於處理這類問題。

  白盒測試常見的用例設計方法有:代碼檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑覆蓋測試法、域測試、符號測試。

  詳細可見這篇博客:測試用例設計方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM