面試小記--黑盒測試常用方法

【等價類】
1、基本概念
等價類方法:是把程序的輸入域劃分成若干部分/等價類;然後從每個部分/等價類中選取少數/一個代表性數據作爲測試用例,(ps:假設每一類的代表性數據在測試中的作用等價於這一類中的其他值)

有效等價類 :對程序規格有效的、合理的輸入數據的集合;程序接收到有效等價類,可以正確計算、執行

無效等價類:對程序規格無效的、不合理的輸入數據的集合;程序接收到無效等價類,應該給出錯誤提示,或者根本不允許輸入

說明:窮舉測試是最全面的測試,但是是不能採用的方法,時間成本太高,編寫用例的方法主要解決的問題是如何使用最少的數據,達到最大的覆蓋

2、應用場合
只要有數據輸入的地方,就可以使用等價類方法/

3、 使用步驟
1)根據需求,劃分等價類(細化等價類)
2)建立等價類表(熟練後直接做該步)
3)確定測試用例

4、使用要點
確定等價類的6條原則
1)在輸入條件規定了取值範圍或值的個數的情況下,可以確立一個有效等價類和兩個無效等價類。
2)在輸入條件規定了輸入值的集合或者規定了“必須如何”的條件的情況下,可以確立一個有效等價類和一個無效等價類。
3)在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類。
4)在規定了輸入數據的一組值(假定n個),並且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類。
5)在規定了輸入數據必須遵守的規則的情況下,可確立一個有效等價類(符合規則)和若干個無效等價類(從不同角度違反規則)。
6)在確知已劃分的等價類中,各元素在程序處理中的方式不同的情況下,則應再將該等價類進一步地劃分爲更小的等價類。

等價類確定測試用例的原則
1)爲每個等價類規定一個惟一的編號。
2)設計一個新的測試用例,使其儘可能多地覆蓋尚未覆蓋的有效等價類。重複這一步,最後使得所有有效等價類均被測試用例所覆蓋。
3)設計一個新的測試用例,使其只覆蓋一個無效等價類。重複這一步使所有無效等價類均被覆蓋。

無效等價類重點考慮
1)必填項(不能爲空)——爲空
2)不能重複——重複
3)數據要求範圍——超出範圍
如:年齡:18—60,測試<18,>60
4)數據有字符個數要求——超出範圍
如:姓名:1-20字符,測試<1字符,>20字符
5)從數據允許的樣式考慮——小數、字母、符號、漢字
6)小數——小數點保留位數不滿足

無效等價類處理方式:
1)允許輸入無效等價類數據,後面給出錯誤提示
2)允許輸入無效等價類數據,但可以自動糾正成正確數據
3)不允許輸入無效等價類數據

【邊界值】
1、基本概念
1)邊界值方法是補充等價類的方法,它不是選擇等價類的任意元素,而是選擇等價類的邊界的測試用例。
Ps: 本質上屬於等價類的範疇,但是經驗得知,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是在輸入範圍的內部,因此需要單獨進行測試

2、應用場合
只要有數據輸入的地方,一般就可以使用邊界值

3、 使用步驟
1)找到各等價類的變界點(最小值、最大值)
2)選擇該分界點及其兩邊的點(上點和離點),單獨設計測試用例並進行測試

4、使用要點
1、對邊界值設計測試用例,應遵循以下幾條原則:
1)如果輸入條件規定了值的範圍,則應取剛達到這個範圍的邊界的值,以及剛剛超越這個範圍邊界的值作爲測試輸入數據。
2)如果輸入條件規定了值的個數,則用最大個數、最小個數、比最小個數少1、最大個數多1的數作爲測試數據。
3)根據規格說明的每個輸出條件,使用前面的原則1。
4)根據規格說明的每個輸出條件,使用前面的原則2。
5)如果程序的規格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最後一個元素作爲測試用例。
6)如果程序中使用了一個內部數據結構,則應當選擇這個內部數據結構邊界上的值作爲測試用例。
7)分析規格說明,找出其他可能的邊界條件。

2、邊界的類型

【因果圖/判定表】
1、基本概念
因果圖基本概念
1)因果圖
因——輸入條件
果——輸出結果
使用畫圖的方法找出輸入(因)和輸出(果)的關係
2)圖形符號
基本圖形符號——表示輸入和輸出之間的關係

約束(限制)符號——限制的是同一類型的(同時限制的是輸入或者同時限制的是輸出)

說明:互斥和唯一的區別:一般有默認選項—唯一,沒有默認選項—互斥

判定表基本概念

條件樁(輸入項):列出了問題的所有條件。通常認爲列出的條件的次序無關緊要。
動作樁(輸出項):列出了問題規定可能採取的操作。這些操作的排列順序沒有約束。
條件項(輸入值):列出針對它所列條件的取值,在所有可能情況下的真假值。
動作項(輸出值):列出在條件項的各種取值情況下應該採取的動作。
規則:任何一個條件組合的特定取值及其相應要執行的操作。在判定表中貫穿也就有多少條規則,條件項和動作項就有多少列。

判定表的建立因該依據軟件規格說明,步驟如下:
1)確定規則的個數。假如有n個條件,每個條件有兩個取值(0,1),故有2n種規則。
2)列出所有的條件樁和動作樁。
3)填入條件項。
4)填入動作項。制定初始判定表。
5)簡化。合併相似規則或者相同動作。

2、應用場合
當有輸入條件的各種組合時,都可以使用因果圖/判定表。
當應用中有多種輸入條件且組合,並且輸入和輸出間的關係可以明顯表達,可以用因果圖

3、使用步驟
利用因果圖/判定表導出測試用例需要經過以下幾個步驟:
1)分析程序規格說明的描述中,哪些是原因,哪些是結果。原因常常是輸入條件或是輸入條件的等價類,而結果是輸出條件。
2)分析程序規格說明的描述中語義的內容,並將其表示成連接各個原因與各個結果的“因果圖”。
3)標明約束條件。由於語法或環境的限制,並將其表示成連接各個原因與各個結果的“因果圖”。由於語法或環境的限制,有些原因和結果的組合情況是不可能出現的。爲表明這些特定的情況,在因果圖上使用若干個標準的符號標明約束條件。
4)因果法轉換成判定表。(熟練的話直接跳到這一步,就是判斷表法)
5)爲判定表中每一列表示的情況設計測試用例。

【正交試驗】
1、基本概念
依據Galois理論,正交試驗設計方法是從大量的試驗數據中挑選適量的、有代表性的點,從而合理地安排測試的一種科學的試驗設計方法。

正交表中的試驗個數/行數=∑(每列水平數-1)+1 ,例如:6因子5水平試驗,在不重複時,只用6*(4)+1=25次試驗就可以了。

2、應用場合
有很多的控件輸入,且每個控件輸入有多個取值,要考慮不同控件不同取值的組合——如何使用最少、最優化的數據組合達到最大的測試覆蓋和因果圖法的區別:
因果圖法:適用於控件組合數量較少(20種以下),要比較全面的考慮所有情況
正交排列法:適用於控件組合數量龐大,而從代碼角度講又沒有必要全部測試

3、使用步驟
1)分析需求——列出所有輸入控件和取值
2)套用正交表,根據輸入控件的個數和控件的取值,選擇一個合適的正交表並套用(映射對應的值)
3)將正交錶轉換爲測試用例

4、 使用要點
試驗次數
正交表中的試驗個數/行數=∑(每列水平數-1)+1
常用的正交表

常用的正交表可查詢下載,下圖爲部分正交表的舉例

【錯誤推測法】
1、基本概念
錯誤推測法就是基於經驗和直覺推測程序中所有可能存在和容易發生錯誤的特殊情況,有針對地設計測試用例的方法。 例如, 在單元測試時曾列出的許多在模塊中常見的錯誤. 以前產品測試中曾經發現的錯誤等, 這些就是經驗的總結. 還有, 輸入數據和輸出數據爲0的情況. 輸入表格爲空格或輸入表格只有一行. 這些都是容易發生錯誤的情況. 可選擇這些情況下的例子作爲測試用例
2、應用場合
任何場合,都可以使用
3、使用步驟
1)根據經驗,列舉出程序中所有可能存在的各種錯誤
2)根據這些錯誤,有針對的設計測試用例
4、測試要點
1)如設計一些非法、錯誤、不正確和垃圾數據(爲空、不輸入)進行輸入測試是很有意義的
2)開發容易遺漏的地方:如重複點擊
例如:
1)聊天窗口功能
A、輸入特殊字符(全角,半角)後,窗口是否能夠正常顯示
B、輸入空格,是否能夠過濾,是否會算入長度計算
C、輸入html字符
D、輸入腳本語言函數
E、在需要密碼驗證,或者需要二次輸入確認的地方,通過複製粘貼第一次的輸入內容是否能夠通過
2)查詢功能
A、無條件查詢
B、是否支持模糊查詢
C、查詢的關鍵字之間是否可用連接符
D、輸入正確的查詢條件以前加上空格,看是否能正確地查出相應的數據
3)登錄功能
A、輸入的數據前存在空格,是否能夠正常登錄
B、輸入的密碼是否能夠加密顯示
C、用戶在註銷之後是否能夠再登錄成功

【功能圖法】
1、基本概念
功能圖方法是用功能圖形象地表示程序的功能說明,並機械地生成功能圖的測試用例。
測試用例生成規則:爲了把狀態遷移(測試路徑)的測試用例與邏輯模型的測試用例組合起來,從功能圖生成實用的測試用例,需定義下面的規則。一個結構化的狀態遷移中,定義3種形式的循環:順序、選擇和重複。

2、應用場合
對複雜的程序,還要用動態說明描述輸入數據的次序或狀態轉移的次序,因此應用於有多種狀態的場合

3、使用步驟

舉例

【場景法】
1、基本概念
一般軟件是用事件觸發(事件觸發的情景就形成場景)來控制流程,因此可用場景法來模擬流程。有倆個基本概念:
1)基本流(正確流、有效流):模擬用戶正確的操作流程
2)備選流(錯誤流、無效流):模擬用戶錯誤的操作流程
ps:用例場景用來描述流經用例的路徑,從用例開始到結束遍歷這條路徑上所有基本流和備選流

2、應用場合
1)業務流清晰的系統都可以使用場景法
2)界面中有很少(或沒有)填寫項,所有的操作都是通過鼠標的操作(單雙擊、拖動等)來模擬真實的用戶操作,設計出相應的測試點,一般包括兩類:
模擬用戶正確的操作、完成主要業務邏輯的動作——驗證軟件的主要功能是否實現
模擬用戶錯誤的操作——驗證軟件錯誤處理能力

3、使用步驟
1)根據需求,列出基本流和備選流, 此步驟完全基於業務的理解
2)根據基本流和備選流,生成場景(熟練後,直接做該步)
3)根據場景,編寫用例

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