黑盒測試
黑盒測試被稱為 功能測試或數據測試,在測試時,將被測軟件視為一個不能打開的盒子,在完全不考慮程序內部結構和內部特性的情況下來進行測試,采用·黑盒測試的主要目的是在已有軟件產品所應具有的功能等基礎上進行下列操作:
1、檢查程序功能是否按照需求規格說明書的要求正常使用,測試每個功能是否有遺漏,測試性能特性是否滿足要求。
2、測試人機交互是否錯誤,檢測數據結構或外部數據庫訪問是否錯誤,程序是否能適當的輸入數據而產生正確的輸出結果,保持外部信息(如數據庫或文件)的完整性。、
3、檢測程序初始化和終止方面的錯誤。
等價類划分法
定義。
是指輸入域的子集合。在該子集合中,各個輸入數據對於揭示程序的錯誤是等效的。
分類。
有效等價類和無效等價類。
有效等價類就是由哪些對程序員規格說明有意義的、合理的輸入數據所構成的集合,利用有效等價類可檢驗程序是否實現了規格說明中所規定的功能和性能。
無效等價類就是那些程序規格說明不合理的或是無意義的輸入數據構成的集合。
方法。
在輸入條件規定了取值范圍或值的個數的情況下,則可以確立一個有效等價類和兩個無效等價類。Eg:要求輸入的數字在1~50之間,則有效等價類是1~50 而無效等價類是<=1 和>=50
在輸入條件規定了輸入值的集合或者是規定了“必須如何”的條件的 情況下,可確立一個有效等價類和一個無效等價類。
輸入條件是布爾量的情況下,可確定一個有效等價類。
Eg:在vb中option按鈕中選擇一項。
在規定了輸入數據的一組值(假定是n個),並且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類。
Eg:輸入數據為地方的顯示,eg:當輸入廊坊的時候輸入其他的均為錯誤的。
在規定對了輸入數據必須遵守的規則的情況下,可確立一個有效的等價類和若干個無效等價類。
Eg:輸入非0 的正整數。
可以把這個拆成為 非0 、數字、整數、正數。
所以無效等價類是:輸入的是0 、有數字,不是整數(包括小數、字符),輸入的是負數等,都是無效的等價類。
在確知划分的等價類中各個元素在程序中處理的方式不同的情況下,則應再將該等價類進一步的划分為更小的等價類。
eg:在日期中核對日期的正確性時,初步的有效等價類是 1<=Month<=12,1<=day<=31 可是還要考慮到2月以及閏年、閏月、長月、短月等,需要進一步細分。
測試用例設計原則
優缺點。
等價類划分方法優點是:考慮了輸入域的各類情況,避免了盲目或隨機的選取輸入數據的不完整性和覆蓋的不穩定性。
等價類划分方法簡單易用,但是沒有對組合情況進行充分的考慮。需要結合其他測試用例設計的方法進行補充。
等價類划分法簡單的例子。
設計的登錄帳號的密碼要求:是6---10位的自然數。來設計測試用例。
從中分析得出:
有效的是:
(1)輸入的長度是位數是 6~10 位。
(2)輸入的類型是0~9 的自然數。
無效的是:
輸入長度小於6
輸入的長度大於10
輸入的是負數
輸入的是小數
輸入的是英文字母
輸入的是中文
輸入為空
輸入條件 |
有效等價類 |
無效等價類 |
輸入長度為6~10 的自然數 |
1)輸入長度為6~10位 |
3)長度小於6 |
4)長度大於10 |
||
5)輸入負數 |
||
6)輸入小數 |
||
2)輸入的為0~9 的自然輸入 |
7)輸入英文字母 |
|
8)輸入漢字 |
||
9)輸入為空 |
覆蓋用例編號 |
輸入 |
預期結果 |
1)2) |
123456 |
正確 |
3) |
33 |
提示錯誤 |
4) |
2222222222222222222 |
提示錯誤 |
5) |
-23455555 |
提示錯誤 |
6) |
1.2323434 |
提示錯誤 |
7) |
ABCDEFG |
提示錯誤 |
8) |
輸入的是中文的密碼 |
提示錯誤 |
9) |
沒有任何的輸入 |
提示錯誤 |
邊界值分析法
這種方法通常是對等價等價類划分法的補充,使程序更加健壯。是用來測試等價類的邊界值。
使用邊界值分析方法設計測試用例,首先應確定邊界情況。通常輸入和輸出等價類的邊界,就是應着重測試的邊界情況。應當選取正好等於,剛剛大於或剛剛小於的邊界值作為測試數據,而不是選取等價類中的典型值或是任意值作為測試數據。
例如,我們上述中所說的密碼的格式是6~10個的自然數,我們可以根據等價類的划分法來確定邊界值的測試用例表示。
測試用例 |
預期的結果 |
999999 |
提示正確 |
9999999999 |
提示正確 |
Abce34 |
提示錯誤 |
輸入的是漢字的格式 |
提示錯誤 |
000000 |
提示錯誤 |
000000 |
提示錯誤 |
00000.0 |
提示錯誤 |
99999.9 |
提示錯誤 |
0 |
提示錯誤 |
23456789000 |
提示錯誤 |
因果圖方法
上述所說的等價類划分法和邊界值分析法都只是考慮了輸入的條件但是沒有考慮到輸入的條件之間的組合,因果圖的方法是用來描述多種條件組合產生相應的動作的測試方法。
因果圖的四種符號所表示的因果關系。
C1表示原因而e1表示的是結果。
在實際問題當中輸入的狀態之間可能還存在某些依賴關系,稱之為”約束”。在因果圖中用特定的符號來表示。
E約束:a和b最多有一個可能為1,即a和b不能同時為1.
I約束:a和b中至少有一個必須是1,即 a b c 不能同時為0 。
O約束:a和b中必須有一個且有一個為1.
R約束:a為1的時候b必須為1,即a是1的時候b不能是0.
M約束:a為1的時候b強制為0.
在畫因果圖的時候首先是要分析原因和結果,原因通常是輸入條件或是輸入條件的等價類。結果是輸出條件。
分析程序規格中的語義含義,找出原因與結果之間,原因與原因之間的對應關系,將其連接成線。
然后再將因果圖轉換成為決策表。
判定表也稱為決策表,判定表通常是由四個部分組成的。
條件樁:列出了問題的所有的條件,通常是認為列出的條件的次序無關緊要。
動作樁:列出針對問題規定可能采取的操作,這些操作的排列順序沒有約束。
要求是用戶名和密碼的長度都在6~10之間,並且用戶名和密碼都是數字的格式。