天天看點

測試方法劃分

測試方法劃分

測試方法一般按以下幾種劃分:

  • 按照執行階段劃分為:白盒測試、黑盒測試、灰盒測試。
  • 按照執行狀态劃分為:靜态測試、動态測試。
  • 按照執行行為劃分為:手動測試、自動測試。

白盒測試

白盒測試(White Box Testing)又稱結構測試、邏輯驅動測試或基于代碼的測試,主要檢查産品内部結構是否按照規格說明書的規定正常運作。白盒測試是一種測試用例設計方法,盒子指的是被測試的軟體,白盒顧名思義是指盒子是可視的,觀察者清楚盒子内部的東西以及裡面是如何運作的,是以,白盒測試需要測試人員對系統内部的結構和工作原理有一個清楚的了解。

黑盒測試

黑盒測試(Black Box Testing)也稱功能測試,主要來檢測每個功能是否都能正常使用。它也是在軟體測試中使用最廣泛的一類測試。

在黑盒測試中,通常把程式看作一個不能打開的黑盒子,在完全不考慮程式内部結構和内部特性的情況下,對程式接口進行測試,它隻檢查程式功能是否按照需求規格說明書的規定正常使用,程式是否能适當地接收輸入資料而産生正确的輸出資訊。

由于黑盒測試着眼于程式外部結構,不考慮内部邏輯結構,主要針對軟體界面和軟體功能進行測試。是以黑盒測試是以使用者的角度,從輸入資料與輸出資料的對應關系出發進行測試的。關注的是軟體的功能需求,主要試圖發現以下類型的錯誤:

  • 功能是否正确,是否有遺漏。
  • 界面是否錯誤。
  • 資料結構或外部資料庫通路錯誤。
  • 性能錯誤。

在實際工作中,最常見的黑盒測試方法有:功能性測試、性能測試、安全性測試、相容性測試、穩定性測試、可靠性測試以及安裝解除安裝測試等。

從理論上講,黑盒測試隻有采用窮舉輸入測試,把所有可能的輸入都作為測試情況進行考慮,才能查出程式中所有的錯誤。因為窮舉測試是不可能的,是以要有針對性地選擇測試用例。通過制定測試案例指導測試的實施,保證軟體測試有組織、有計劃地進行。隻有對黑盒測試進行量化,才能保證軟體的品質,具體量化的方法之一就是測試用例。

黑盒測試用例設計方法包括等價類劃分法、邊界值分析法、判定表分析法、因果圖分析法、正交試驗法、流程分析法、狀态遷移法、異常分析法以及錯誤推測法等。

等價類劃分法

等價類劃分法是一種典型的黑盒測試用例設計方法,使用等價類劃分,是将軟體的輸入域分為若幹部分,然後從每個部分中選取少數具有代表性的資料進行測試,這樣可以避免窮舉産生的大量用例。

等價類是指某個輸入域的子集合,在該子集合中,每個輸入資料對于揭露軟體中的錯誤都是等效的。簡單地說,就是指輸入該輸入域中的某一個資料,如不能揭露被測對象中的缺陷,那麼我們就說這個輸入域中的所有資料都無法揭露該缺陷,反之亦然。

等價類劃分一般劃分為兩種情況:有效等價類和無效等價類。

  • 有效等價類:對需求規格說明而言,合理的、有效的輸入資料構成的集合。
  • 無效等價類:對需求規格說明而言,不合理的、無效的輸入資料構成的集合。

因為軟體不僅要能接收合理的資料,不合理的資料也需要做出正确響應,是以在設計測試用例時,兩種等價類都需要考慮,這樣的測試才能確定軟體具有更高的可靠性。

根據需求規格說明書确定被測對象的輸入域,進行等價類劃分。等價類劃分的标準,劃分的子集必須是互不相交的,符合完備測試,避免出現備援。

等價類劃分法的劃分原則,通常按照以下規則進行劃分等價類:

1)如果規定輸入的取值範圍或個數時,則劃分一個有效等價類和兩個無效等價類。如:注冊使用者名的長度限制6~18個字元,6~18個字元是有效等價類,小于6個字元和大于18個字元則是兩個無效等價類。

2)如果規定了輸入的集合或規則必須要遵循的條件,則劃分一個有效等價類,和一個無效等價類。如:注冊使用者名的格式要求必須以字母開頭時,以字母開頭是有效等價類,非字母開頭則是無效等價類。

3)如果輸入條件是一個布爾值,則劃分為一個有效等價類和一個無效等價類。如:在注冊使用者時需要遵循協定或條款是否接受時,“接受”是有效等價類,“不接受”則是無效等價類。

4)如果輸入條件是一組資料(枚舉值),并且程式對每一個輸入的值做不同的處理,則化為若幹個有效等價類和一個無效等價類。如:網遊中充值VIP等級(3個等價),對每個VIP的等級優惠不同,VIP1、VIP2、VIP3不同等級是三個有效等價類,不是VIP使用者則是無效等價類。

5)如果輸入條件規定了必須要遵循的某些規則下,則劃分為一個有效等價類和若幹個無效等價類(無效等價類需要從不同的角度去違反規則)。如:密碼要求首位必須是大寫字母的,首字母大寫是有效等價類,首位小寫字母的、首位為數字的或首位為特殊字元的則是無效等價類。

6)不是所有的等價類都有無效等價類。如性别的選擇隻有男或女兩種。

【案例解析】

某網站的使用者注冊的需求說明,使用者名為必填項,要求長度為6~18個字元,并由字母、數字、下劃線組成,必須以字母開頭,結尾必須是數字或字母,而且不區分大小寫字母,重名賬号不允許注冊。密碼為必填項,要求8~15個字元,首位必須是大寫字母,而且區分大小寫字母。确認密碼,要求與密碼輸入一緻。

根據上面需求說明,首先進行劃分等價類。經過細化後并将有效等價類和無效等價類填入等價類劃分設計表中,并進行編号

根據覆寫的規則,将測試資料覆寫的有效和無效等價類編号填入表中

最後根據上面的測試資料設計對應的測試用例

邊界值分析法

邊界值分析法是對等價類劃分法的一個補充,該方法不僅需要考慮輸入域的邊界,而且還要關注輸出域的邊界。由長期的測試工作經驗得知,大量的錯誤發生在輸入和輸出範圍的邊界上。是以針對各種邊界情況設計用例,可以查出更多的錯誤。

該方法一般在規定了取值範圍或規定了值的個數,或者明确輸入條件的有序集合中使用。

通常按照以下規則進行邊界點的劃分:

  • 如果規定了輸入域的取值範圍,則選取剛好在範圍邊界的點,以及剛好超過邊界的點,作為測試的輸入資料。
  • 如果規定了輸入值的個數,則用最大個數,最小個數,比最小個數少1,比最大個數多1的數作為測試資料。
  • 如果規定了輸入是一個有序的集合,則選取集合的第一個元素和最後一個元素作為測試資料。

某銀行系統,允許使用者通過日期對交易進行查詢,系統對輸入日期的限定為1990年1月~2049年12月,并規定:日期由6位數字字元組成,前4位表示年,後2位表示月。

分析輸入條件有6位數字字元,年份的範圍,月份範圍,

輸入條件 有效等價類 有效邊界點 無效等價類 無效邊界點
日期長度 6位數字字元 6位 小于6位數字字元 5位
大于6位數字字元 7位
日期類型 數字字元 非數字字元
年份範圍 1990-2049

1990,2049

1991,2048

小于1990 1989
大于2049 2050
月份範圍 01-12

01,12

02,11

小于1 00
大于12 13

判定表分析法

在等價類設計法中,沒有考慮輸入域的組合情況,導緻設計的用例中無法覆寫輸入域之間存在關聯的地方。為了彌補等價類設計的不足,這裡介紹一種新的用例設計方法——判定表分析法。

判定表分析法主要是分析和表達多種輸入條件下系統執行不同動作的技術。在程式設計發展的初期,判定表就已被當作編寫程式的輔助工具了,它可以把複雜的邏輯關系和多種條件組合的情況表達得很明确。判定表由四個部分組成,

1)條件樁:列出被測對象的所有輸入,并列出輸入條件與次序無關。

2)動作樁:列出輸入條件系統可能采取的操作,這些操作的排序順序沒有限制。

3)條件項:列出輸入條件的其他取值,在所有可能情況下的真假值。

4)動作項:列出在條件項的各種取值情況下應采取的動作。

書籍閱讀指南,需求描述如下:

1)覺得疲倦但對書的内容感興趣,同時書的内容讓你糊塗,回到本章重讀。

2)覺得疲倦但對書的内容感興趣,同時書的内容不讓你糊塗,繼續讀下去。

3)不覺得疲倦并對書的内容感興趣,同時書的内容讓你糊塗的話,回到本章重讀。

4)覺得疲倦并對書的内容不感興趣,同時書的内容不讓你糊塗,停止閱讀休息。

5)覺得疲倦并對書的内容不感興趣,并且書的内容讓你糊塗,請停止閱讀休息。

6)不疲倦,對書的内容感興趣,書的内容不糊塗,繼續讀下去。

7)不疲倦,不感興趣,對書的内容糊塗,跳到下一章去讀。

8)不疲倦,不感興趣,對書的内容不糊塗,跳到下一章去讀。

首先分析條件樁和動作樁,條件項有您覺得疲倦嗎、您對書中的内容感興趣嗎、書的内容讓你糊塗嗎;動作樁有回到本章重讀、繼續讀下去、跳到下一章去讀、請停止閱讀休息。

其次根據條件來計算規則23個(即8),構成判定表.

再根據合并規則,将1和5、2和6、3和4、7和8合并得到判定表

合并後隻剩4條規則,看上去用例數減少了,但是很容易産生漏測的風險。

流程分析法(場景法)

流程分析法也稱場景法,主要是針對測試場景類型。它是從白盒測試設計方法中的路徑覆寫分析法演變過來的一種重要的方法。在白盒測試中,路徑就是指函數代碼的某個分支組合,路徑覆寫法需要構造足夠的用例覆寫函數的所有代碼路徑。在黑盒測試中,若将軟體系統的某個流程看成路徑的話,則可以針對該路徑使用路徑分析的方法設計測試用例。

在實際工作中,流程分析法是最容易了解和執行的,它是主要通過流程對系統的功能點或業務流程進行描述,可以展示測試效果。流程分析法一般包含基本流和備選流,從一個流程開始,通過描述經過的路徑來周遊所有的基本流和備選流。

  • 基本流:是指程式的主流程,是實作業務流程最簡單的路徑。
  • 備選流:是指實作業務流程時,因錯誤操作或者是異常操作,導緻最終未達到目的流程。

直線表示基本流;其他曲線表示為備選流。由圖可以看到,一個備選流可以從基本流開始;也可以從備選流開始。備選流的終點,可以是一個流程的出口,也可以是回到基本流,還可以是彙入其他的備選流。可以确認的流程如下所示:

備注:(1)圖中經過用例的每條路徑都用基本流和備選流來表示,直黑線表示基本流,是經過用例的最簡單的路徑;

(2)一個備選流可能從基本流開始,在某個特定條件下執行,然後重新加入基本流中(如備選流1和3);

(3)一個備選流可能起源于另一個備選流(如備選流2);

(4)一個備選流也可能終止用例而不再重新加入到某個流(如備選流2和4)

二、場景法使用步驟場景法的使用步驟如下:

(1)分析需求,根據需求說明描述出程式的基本流及各項備選流

(2)根據基本流和各項備選流生成不同的場景

(3)針對每一個場景生成相應的測試用例

(4)重新稽核生成的所有測試用例,把多餘的測試用例去掉,确定好每一個測試用例,并設計測試資料

小明要在某購物網站上購買一件衣服,使用場景法設計測試用例

前提條件:

1)假設小明在購物網站上的賬号為:ming,密碼:123

2)假設小明的銀行卡賬号為:62282***1216,密碼:123

3)衣服的價格為:180元

步驟一:列出基本流和備選流

類型 場景描述
基本流 小明進入某購物網站,選擇好一件喜歡的衣服->加入購物車->點選付款->輸入該網站正确的賬号密碼登入系統->再次點選付款->輸入正确的銀行卡賬号密碼->支付成功
備選流1 登入使用者名不存在或不正确
備選流2 登入密碼不正确
備選流3 輸入銀行卡賬号不正确
備選流4 輸入銀行卡密碼不正确
備選流5 銀行卡餘額不足
備選流x 使用者退出系統

步驟二:根據基本流和備選流來确定場景

場景 描述1 描述2
場景1-購物成功
場景2-登入使用者名不存在或不正确
場景3-登入密碼不正确
場景4-輸入銀行卡賬号不正确
場景5-輸入銀行卡密碼不正确
場景6-銀行卡餘額不足

步驟三:針對各種場景,設計相應的測試用例

場景/條件 使用者賬号 使用者密碼 銀行卡賬号 銀行卡密碼 銀行卡餘額 預期結果
V 系統提示“登入成功”,系統提示“支付成功”
I N/A 系統提示“輸入的使用者名不存在或者不正确”
場景3-輸入密碼不正确 系統提示“輸入的登入密碼不正确”
系統提示“輸入的銀行卡賬号不正确”
系統提示“輸入的銀行卡密碼不正确”
系統提示“銀行卡餘額不足”

總結

`

繼續閱讀