是否能結合 ECP 與 BVA 一起使用?

一、BVA 介紹

從歷史資料與過往經驗來看,許多問題都發生在輸入或輸出範圍的邊界值上,而不是在輸入範圍內,因此,我們必須小心去分析邊界值條件,針對邊界值去設計測試案例,以免忽略邊界值的錯誤。

針對輸入輸出的邊界值進行測試的一種黑箱測試方法,等價類劃分法 ( Equivalence Class Partitioning ; ECP ) 的類別子集也有助於發現潛在的邊界條件,當變數資料可以正確分解時,ECP 子集也可顯示出做為其他重要邊界條件的數值。

二、等價類劃分法 ( ECP ) 介紹

ECP 是一種系統化的測試技術,可以幫助測試人員有系統地評估一項功能中每個輸入的參數和輸出的變數,通常用來設計黑箱和白箱測試。

主要做法為把所有可能的輸入域劃分成不同的子集,然後從每個子集中選取具有代表性的數據作為測試案例。

三、是否能結合 ECP 與 BVA 一起使用?

在微軟的「軟體測試之道」裡有提到說,

新手測試人員常常會結合 ECP 技術與邊界值測試,以試圖減少測試數量或節省時間。

ECP 技術經常會跟邊界測試一起搭配運用,主要原因是 ECP 子集能夠提供基本框架來找出邊界值分析的潛在邊界條件 ;

儘管如此,嘗試結合這兩項技術可能是個危險動作,因為有可能導致測試遺漏或錯誤的假設。

一般來說,在使用這些技術來測試軟體時,最好能一次專注於一項技術,才能獲得最大效果。

但其實網路上眾說紛紜,有些人覺得結合起來可以有效的設計出精而少的測試案例,但有些人覺得兩個同時使用會導致一些測試遺漏或錯誤的假設(如微軟測試之道),所以接下來我們會用看了網路上的文章後的想法,針對 嘗試結合這兩項技術可能是個危險動作,因為有可能導致測試遺漏或錯誤的假設。 這段話來想「會有什麼情況會導致測試遺漏或錯誤的假設?」或是「是否能結合 ECP 與 BVA 一起使用?」。

我們用成績來試試看網路上提供的結合 ECP 與 BVA 的方法:
步驟一:分析需求,挖掘隱式條件,確認邊界值,劃分等價類

  • 分析需求:輸入 0~100 間的數字
  • 隱式條件:60 分為及格
  • 邊界值:0, 100, 60
  • 劃分等價類:
  • 有效:0~100
  • 無效:小於 0、大於 100、空值、非數字

步驟二:將劃分出的等價類填入表格,進行編號

步驟三:盡量用一條例子來覆蓋各種有效等價類
此步驟因為序號 1 的例子有符合 A1 與 A3 的條件,也就是序號 1 的案例有覆蓋到 A3,因此就將不用額外再多做 A3 這個測試案例。

步驟四:對於無效等價類,一對一的覆蓋,最終得到測試用例
每一個無效等價類都需要有自己的案例,所以有幾個條件就會有幾個案例。

根據步驟一到步驟四總共列出了 8 個測試案例。

看上述例子,雖然列出了 8 個測試案例,但還是有些邊界值沒有測到(例如:0、1、99、100),可能我們利用等價類列出這些測試案例之後,還要針對邊界值在多寫測試案例。

其實這兩個測試方法,是相輔相成的作用,一方補足一方不足的地方,但當兩個一起混用時,考慮的情況就會變得很多,如果沒有想清楚就容易有遺漏或假設錯誤,所以感覺起來兩個分開使用,分別列出測試案例,再將有重複的刪除掉會比同時使用較不容易發生錯誤或遺漏。

參考文章:
1. 等價類與邊界值方法的結合
2. 測試用例設計方法1 等價類邊界值
3. 微軟軟體測試之道 Chapter 5 <功能測試技術>

廣告

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s