等價類劃分法
1.1概念
等價類劃分法就是把程序的輸入域劃分成若幹個部分(子集),然後從每個部分中選取少數代表性數據作為測試用例。每一類的代表性數據在測試中的作用等價于這一類中的其他值。
1.2應用
等價類是指某個輸入域的子集合。等價類劃分可有兩種不同的情況:有效等價類和無效等價類。
有效等價類:對程序規格有意義、合理地輸入數據集合,程序接收到有效等價類數據,可以正确執行、計算。
無效等價類:對程序規格無意義、不合理地輸入數據集合,程序接收到無效等價類數據,應該給出錯誤提示,或者根本不讓用戶輸入。
設計測試用例時,要同時考慮這兩種等價類,因為,軟件不僅要能接收合理的數據,也要能經受意外的考驗。這樣的測試才能确保軟件具有更高的可靠性。
1.3等價類劃分實例
某程序規定:"輸入三個整數 a 、 b 、 c 分别作為三邊的邊長構成三角形。通過程序判定所構成的三角形的類型,當此三角形為一般三角形、等腰三角形及等邊三角形時,分别作計算 … "。用等價類劃分方法為該程序進行測試用例設計。(三角形問題的複雜之處在于輸入與輸出之間的關系比較複雜。)
分析題目中給出的和隐含的對輸入條件的要求:
(1)整數 (2)三個數 (3)非零數 (4)正數
(5)兩邊之和大于第三邊 (6)等腰 (7)等邊
如果 a 、 b 、 c 滿足條件( 1 ) ~ ( 4 ),則輸出下列四種情況之一:
1)如果不滿足條件(5),則程序輸出為 " 非三角形 " 。
2)如果三條邊相等即滿足條件(7),則程序輸出為 " 等邊三角形 " 。
3)如果隻有兩條邊相等、即滿足條件(6),則程序輸出為 " 等腰三角形 " 。
4)如果三條邊都不相等,則程序輸出為 " 一般三角形 " 。
列出等價類表并編号
覆蓋有效等價類的測試用例:
a b c 覆蓋等價類号碼
3 4 5 (1)–(7)
4 4 5 (1)–(7),(8)
4 5 5 (1)–(7),(9)
5 4 5 (1)–(7),(10)
4 4 4 (1)–(7),(11)
覆蓋無效等價類的測試用例:
邊界值分析法
概念
邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。 所謂邊界條件,是指輸入和輸出等價類中那些恰好處于邊界、或超過邊界、或在邊界以下的狀态。
應用
采用邊界值分析測試的基本思想是:故障往往出現在輸入變量的邊界值附近。
通常情況下,軟件測試所包含的邊界檢驗有幾種類型:
數字、字符、位置、質量、大小、速度、方位、尺寸、空間等
相應地,以上類型的邊界值應該在:
最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最長、 空/滿等情況下 。
邊界值分析法與等價類分析法的區别:
1)邊界值分析不是從某等價類中随便挑一個作為代表,而是使這個等價類的每個邊界都要作為測試條件。
2)邊界值分析不僅考慮輸入條件,還要考慮輸出空間産生的測試情況。
例:測試計算平方根的函數
–輸入:實數
–輸出:實數
–需求說明:當輸入一個0或比0大的數的時候,返回其正平方根;當輸入一個小于0的數時,顯示錯誤信息"平方根非法-輸入值小于0"并返回0;庫函數Print-Line可以用來輸出錯誤信息。
A.等價類劃分:
I.可以考慮作出如下劃分:
a、輸入 (i)<0 和 (ii)>=0
b、輸出 (a)>=0 和 (b) Error
II.測試用例有兩個:
a、輸入4,輸出2。對應于 (ii) 和 (a) 。
b、輸入-10,輸出0和錯誤提示。對應于 (i) 和 (b) 。
B.邊界值分析:
劃分(ii)的邊界為0和最大正實數;劃分(i)的邊界為最小負實數和0。由此得到以下測試用例:
a、輸入 {最小負實數}
b、輸入 {絕對值很小的負數}
c、輸入 0
d、輸入 {絕對值很小的正數}
e、輸入 {最大正實數}
注:能用邊界值測試的時候,一般都可以用等價值測試。
錯誤推斷法概念
基于經驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法。
應用
基本思想:列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例。
例如,測試手機終端的通話功能,可以設計各種通話失敗的情況來補充測試用例:
1)無SIM 卡插入時進行呼出(非緊急呼叫)
2)插入已欠費SIM卡進行呼出
3)射頻器件損壞或無信号區域插入有效SIM卡呼出
4)網絡正常,插入有效SIM卡,呼出無效号碼(如1、888、333333、不輸入任何号碼等)
5)網絡正常,插入有效SIM卡,使用“快速撥号”功能呼出設置無效号碼的數字
因果圖法概念
因果圖法是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,它适合于檢查程序輸入條件的各種組合情況。
應用
因–原因,輸入條件
果—結果,輸出結果
用圖形的方式,來分析軟件 輸入和輸出的對應關系
邊界值分析和等價類劃分的一個弱點是未對輸入條件的組合進行分析。對輸入組合進行測試并不是簡單的事情,因為即使對輸入條件進行了等分,這些組合的數量也是天文數字。如果在選擇輸入條件的子集時沒有采用一個系統的方法,很可能選擇出一個任意的輸入條件子集,這樣會使測試沒有什麼成效。
因果圖介紹
1)4種符号分别表示了規格說明中的4種因果關系。
2)因果圖中使用了簡單的邏輯符号,以直線聯接左右結點。左結點表示輸入狀态(或稱原因),右結點表示輸出狀态(或稱結果)。
3)C1表示原因,通常置于圖的左部;e1表示結果,通常在圖的右部。C1和e1均可取值0或1,0表示某狀态不出現,1表示某狀态出現。
因果圖涉及的概念
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。“與”也可有任意個輸入。
2)約束
輸入狀态相互之間還可能存在某些依賴關系,稱為約束。例如, 某些輸入條件本身不可能同時出現。輸出狀态之間也往往存在約束。在因果圖中,用特定的符号标明這些約束。
輸入條件的約束有以下4類:
E約束(異):a和b中至多有一個可能為1,即a和b不能同時為1。
I約束(或):a、b和c中至少有一個必須是1,即 a、b 和c不能同時為0。
O約束(唯一);a和b必須有一個,且僅有1個為1。
R約束(要求):a是1時,b必須是1,即不可能a是1時b是0。
說明:唯一的情況是有一個默認值:而互斥沒有默認值
輸出條件約束類型
輸出條件的約束隻有M約束(強制):若結果a是1,則結果b強制為0。
總結:當有輸入數據的時候,可以把需求中要求的每一個輸入項當做一個條件
判定表驅動概念
判定表是分析和表達多邏輯條件下執行不同操作的情況的工具。
判定表驅動法
判定表的優點
能夠将複雜的問題按照各種可能的情況全部列舉出來,簡明并避免遺漏。因此,利用判定表能夠設計出完整的測試用例集合。
判定表(因果圖)也是考慮控件組合,但是組合數量較少(一般不會超過20種),而且測試全面
正交試驗法概念
依據Galois理論,從大量的(實驗)數據(測試例)中挑選适量的,有代表性的點(例),從而合理地安排實驗(測試)的一種科學實驗設計方法.類似的方法有:聚類分析方法,因子方法方法等。
應用
正交表:一種特制的表,一般正交表記為:Ln(m^K)
n是表的行數,也就是需要測試組合的次數
K是表的列數,表示控件的個數(因素的個數,或因子個數)
m是每個控件包含的取值個數(因因素的水平數,即因素的狀态數)
功能圖法概念
功能圖由狀态遷移圖和布爾函數組成.狀态遷移圖用狀态和遷移來描述.一個狀态指出數據輸入的位置(或時間),而遷移則指明狀态的改變.同時要依靠判定表或因果圖表示的邏輯功能。
場景法概念
現在的軟件幾乎都是用事件觸發來控制流程的,事件觸發時的情景便形成了場景,而同一事件不同的觸發順序和處理結果就形成事件流。這種在軟件設計方面的思想也可以引入到軟件測試中,可以比較生動地描繪出事件觸發時的情景,有利于測試設計者設計測試用例,同時使測試用例更容易理解和執行。
測試用例設計綜合策略Myers提出了使用各種測試方法的綜合策略:
1)在任何情況下都必須使用邊界值分析方法,經驗表明用這種方法設計出測試用例發現程序錯誤的能力最強。
2)必要時用等價類劃分方法補充一些測試用例。
3)用錯誤推測法再追加一些測試用例。
4)對照程序邏輯,檢查已設計出的測試用例的邏輯覆蓋程度,如果沒有達到要求的覆蓋标準,應當再補充足夠的測試用例。
5)如果程序的功能說明中含有輸入條件的組合情況,則一開始就可選用因果圖法。
測試用例的設計步驟
1)構造根據設計規格得出的基本功能測試用例;
2)邊界值測試用例;
3)狀态轉換測試用例;
4)錯誤猜測測試用例;
5)異常測試用例;
6)性能測試用例;
7)壓力測試用例。
優化測試用例的方法
1)利用設計測試用例的8種方法不斷的對測試用例進行分解與合并;
2)采用遺傳算法理論進化測試用例;
3)在測試時利用發散思維構造測試用例;
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!