一、黑盒測試:
1、定義:
把被測程序視為一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下進行測試,也叫做功能測試或者是數據驅動測試。
黑盒測試並不是無知的測試,它意味着產品內部知識在測試中不起重要作用,同時強調有關軟件的用戶和環境知識。
2、目的:
在已知軟件產品所應具有的功能的基礎上進行測試:
(1)、檢查程序功能能否按需求規格說明書的規定正常使用,測試各個功能是否有遺漏,檢測性能等特性要求是否滿足;
(2)、檢測人機交互是否錯誤,檢測數據結構或外部數據庫訪問是否錯誤,程序是否能適當地接收輸入數據而產生正確的輸出結果;
(3)、檢測程序初始化和終止方面的錯誤。
3、優缺點:
優點:
(1)、針對性地尋找問題,並且定位問題更准確。
(2)、黑盒測試可以證明產品是否達到用戶要求的功能,符合用戶的工作要求。
(3)、能重復執行相同的動作,測試工作中最枯燥的部分可交由機器完成。
缺點:
(1)、需要充分了解產品用到的技術,測試人員需要具有較多經驗。
(2)、在測試過程中很多是手工測試操作。
(3)、測試人員要負責大量文檔、報表的編制和整理工作。
4、靜態黑盒和動態黑盒:
(1)、靜態黑盒:文檔測試,特別是產品需求文檔、用戶手冊、幫助文件等的審查。
(2)、動態黑盒:通過數據輸入並運行程序來檢驗輸出結果。
二、黑盒測試用例設計方法:
1、等價類划分:
一種重要的、常用的黑盒測試方法,它將不能窮舉的測試過程進行合理分類,從而保證設計出來的測試用例具有完整性和代表性。
等價類划分法一般把所有可能的輸入數據(有效的和無效的)划分成若干個等價的子集,使得每個子集中的一個典型值在測試中的作用與這一子集中所有其它值的作用相同,再從每個子集中選取一組數據來測試程序。
有效等價類:
對於程序的需求規格說明書來說是合理的、有意義的輸入數據組成的集合。
利用有效等價類可以檢驗程序是否實現了規格說明書中所要求的功能或性能。
(正面用例)
無效等價類:
與有效等價類正好相反,無效等價類指對程序的規格說明是不合理的或無意義的輸入數據所構成的集合。
無效等價類至少應有一個,也可能有多個。
(負面用例)
采用等價類划分法設計測試用例通常分兩步進行:
(1)、確定等價類,列出等價類表。
(2)、確定測試用例。
例子:
輸入條件為整數num應該大於等於20小於等於100,整數num2應該大於等於50小於等於80,輸出為num和num2的和。
此時有效等價類為:20<=num<=100和50<=num2<=80
無效等價類為:num<20、num>100、num2>80、num2<50
輸入條件 | 有效等價類 | 標識 | 無效等價類 | 標識 |
整數num | 20<=num<=100 | ① | num<20 | ② |
num>100 | ③ | |||
整數num2 | 50<=num<=80 | ④ | num<50 | ⑤ |
num>80 | ⑥ |
測試用例:
序號 | 輸入條件 | 覆蓋等價類 | 輸出結果 | |
num | num2 | |||
1 | 25 | 55 | ①④ | 80 |
2 | 10 | 55 | ②④ | num不合理 |
3 | 150 | 60 | ③④ | num不合理 |
4 | 50 | 30 | ①⑤ | num2不合理 |
5 | 60 | 90 | ①⑥ | num2不合理 |
2、邊界值分析:
邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法,通常邊界值分析法是作為對等價類划分法的補充,這種情況下,其測試用例來自等價類的邊界。
大量的錯誤往往是發生在輸入或輸出范圍的邊界上,而不是發生在輸入輸出范圍的內部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。
使用邊界值分析方法設計測試用例,首先應確定邊界情況。通常輸入和輸出等價類的邊界,就是應着重測試的邊界情況。應當選取正好等於,剛剛大於或剛剛小於邊界的值作為測試數據,而不是選取等價類中的典型值或任意值作為測試數據。
步驟:
(1)、確定邊界min和max
(2)、取值min(正好等於最小邊界)、min+(剛剛大於最小邊界)、nom(常規項)、max-(剛剛小於最大邊界)、max(正好等於最大邊界)
例子:
有二元函數f(x,y),其中x∈[1,12],y∈[1,31],則采用邊界值分析法設計的測試用例是:
{ <1,15>, <2,15>, <11,15>, <12,15>, <6,15>, <6,1>, <6,2>, <6,30>, <6,31> }
對於一個含有n個變量的程序,采用邊界值分析法測試程序會產生4n+1個測試用例。
擴充:
健壯性測試是在邊界值分析法基礎上添加max+(剛剛大於最大邊界)和min-(剛剛小於最小邊界)
3、因果圖法:
一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,它適合於檢查程序輸入條件的各種組合情況。
步驟:
(1)、分析軟件規格說明中哪些是原因(輸入),哪些是結果(輸出),並給每個原因和結果賦予一個標識符。
(2)、分析軟件規格說明中的語義,找出原因與結果之間、原因與原因之間對應的關系, 根據這些關系畫出因果圖。
(3)、由於語法或環境的限制,有些原因與原因之間、原因與結果之間的組合情況不可能出現。為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件。
(4)、把因果圖轉換為決策表。
(5)、根據決策表中的每一列設計測試用例。
優點:
(1)、考慮到了輸入情況的各種組合以及各個輸入情況之間的相互制約關系。
(2)、能夠幫助測試人員按照一定的步驟,高效率的開發測試用例。
(3)、因果圖法是將自然語言規格說明轉化成形式語言規格說明的一種嚴格的方法,可以指出規格說明存在的不完整性和二義性。
關系畫法:
恆等:
非:
或:
與:
ci表示輸入狀態(或稱原因),ei表示輸出狀態(或稱結果)。
約束:
(1)、E約束(互斥):原因a和原因b中最多有一個可能成立,即a和b不會同時成立。
(2)、I約束(包含):a、b這兩個原因中至少有一個必須成立。
(3)、O約束(唯一):原因a和b中必須有一個,且僅有一個成立。
(4)、R約束(要求):原因a出現時,原因b也必須出現,a出現時,不可能b不出現。
(5)、M約束(強制):若結果a為1,則結果b強制為0。
例子:
一個處理單價為1元5角錢的盒裝飲料自動售貨機。
若投入1元5角的硬幣,按下“可樂”、“雪碧”或“紅茶”按鈕,相應的飲料就送出來。
若投入的是兩元硬幣,在送出飲料的同時退出5角硬幣。
c1:投幣2元;c2:投幣1.5元;c3:按可樂按鈕;c4:按雪碧按鈕;c5:按紅茶按鈕;
I1:已投幣;I2:已按鈕;
e1:找5毛;e2:出可樂;e3:出雪碧;e4:出紅茶
4、錯誤推測法:
在單元測試時曾列出的許多在模塊中常見的錯誤、以前產品測試中曾經發現的錯誤等,這些就是經驗的總結。
輸入數據和輸出數據為0的情況、輸入表格為空格或輸入表格只有一行等。
這些都是容易發生錯誤的情況,可選擇這些情況下的例子作為測試用例。
5、判定表法:
判定表是分析和表達多邏輯條件下執行不同操作的情況的工具,判定表法是最為嚴格、最具有邏輯性的測試方法。
優點:
能夠將復雜的問題按照各種可能的情況全部列舉出來,簡明並避免遺漏,利用判定表能夠設計出完整的測試用例集合。
組成:
條件樁、動作樁、條件項、動作項及規則。
(1)、條件樁:列出了問題的所有條件,通常認為列出的條件的次序無關緊要;
(2)、動作樁:列出了問題規定可能采取的操作,這些操作的排列順序沒有約束;
(3)、條件項:列出針對它所列條件的取值,在所有可能情況下的真假值;
(4)、動作項:列出條件項的各種取值情況下應該采取的動作;
(5)、規則:任何一個條件組合的特定取值及其相應要執行的操作。
在判定表中貫穿條件項和動作項的一列就是一條規則。
步驟:
(1)、確定規則的個數;
(2)、列出所有的條件樁和動作樁;
(3)、填入條件項;
(4)、填入動作項,得到初始判定表;
(5)、 簡化決策表,合並相似規則。
例子:
某學生成績管理系統,要求“對平均成績在90分以上,且沒有不及格科目的學生,或班級成績排名在前5位的學生,在程序中將學生的姓名用紅色標識。”
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||
條件 |
平均成績大於90 |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
沒有不及格的科目 |
1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | |
成績排名在前5名 |
1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | |
動作 |
姓名用紅色處理 |
√ | √ | √ | √ | √ | |||
姓名不做特殊處理 |
√ | √ | √ |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||
條件 |
平均成績大於90 |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
沒有不及格的科目 |
1 | 1 | 0 | 0 | - | - | 0 | 0 | |
成績排名在前5名 |
- | 0 | 1 | 0 | 1 | 0 | 1 | 0 | |
動作 |
姓名用紅色處理 |
√ | √ | √ | √ | √ | |||
姓名不做特殊處理 |
√ | √ | √ |
6、正交試驗法:
正交實驗設計方法是依據Galois理論,從大量的數據中挑選適量的、有代表性的點,從而合理地安排實驗的一種科學實驗設計方法。
類似的方法有:聚類分析方法,因子方法方法等。
指標:通常把判斷試驗結果優劣的標准叫做試驗的指標;
因子:影響實驗指標的條件稱為因子;
因子的狀態:影響實驗因子的條件。
步驟:
(1)、提取功能說明,構造因子-狀態表;
(2)、加權篩選,生成因素分析表;
(3)、利用正交表構造測試數據集,正交表的推導依據Galois理論;
(4)、利用正交表每行數據構造測試用例。
試驗次數計算公式:
在行數為mn型的正交表中,試驗次數(行數)=∑(每列水平數-1)+1。
對這樣的正交表計算試驗次數公式為: (第一個因子數*(第一個水平數-1)+第二個因子數*(第二個水平數-1))+1 = 試驗次數。
例子:
為提高某化工廠產品的轉化率,選擇了3個有關因素進行條件試驗,反應溫度(A),反應時間(B),用鹼量(C),並確定了他們的試驗范圍如下: A:80°C ~ 90°C B:90 ~ 150分鍾 C:5% ~ 7% 對於A、B、C三個因子,在試驗范圍內都選了3個水平,如下所示: A:A1 = 80°C , A2 = 85°C , A3 = 90°C B:B1 = 90m , B2 = 120m , B3 = 150m C:C1 = 5% , C2 = 6% , C3 = 7%
因子1 | 因子2 | 因子3 | 因子4 | |
水平1 | 1 | 1 | 1 | 1 |
1 | 2 | 2 | 2 | |
1 | 3 | 3 | 3 | |
水平2 | 2 | 1 | 2 | 3 |
2 | 2 | 3 | 1 | |
2 | 3 | 1 | 2 | |
水平3 | 3 | 1 | 3 | 2 |
3 | 2 | 1 | 3 | |
3 | 3 | 2 | 1 |
A | B | C | ==> | 試驗號 | 水平組合 | 實驗條件 | ||||
1 | 2 | 3 | 4 | 溫度 | 時間 | 加鹼量 | ||||
1 | 1 | 1 | 1 | 1 | 1 | A1B1C1 | 80 | 90 | 5 | |
2 | 1 | 2 | 2 | 2 | 2 | A1B2C2 | 80 | 120 | 6 | |
3 | 1 | 3 | 3 | 3 | 3 | A1B3C3 | 80 | 150 | 7 | |
4 | 2 | 1 | 2 | 3 | 4 | A2B1C2 | 85 | 90 | 6 | |
5 | 2 | 2 | 3 | 1 | 5 | A2B2C3 | 85 | 120 | 7 | |
6 | 2 | 3 | 1 | 2 | 6 | A2B3C1 | 85 | 150 | 5 | |
7 | 3 | 1 | 3 | 2 | 7 | A3B1C3 | 90 | 90 | 7 | |
8 | 3 | 2 | 1 | 3 | 8 | A3B2C1 | 90 | 120 | 5 | |
9 | 3 | 3 | 2 | 1 | 9 | A3B3C2 | 90 | 150 | 6 |
7、場景法:
現在的軟件都是用事件來觸發流程的,事件觸發時的情景並成了場景,而同一事件不同的觸發順序和處理結果就形成事件流。
用例場景用來描述流經用例的路徑,從用例開始到結束,遍歷這條路徑上所有基本流和備選流。
基本流用直黑線表示,備選流用不同的彩色表示。
相關鏈接: