軟體測試方法之所以沒能完全標準化和統一化,主要原因是因為軟體產業產品到軟體測試有各式各樣的軟體。但是目前仍有很多各樣軟體測試方法都基本可用的常用概念和方法。我們這裡介紹的思路和方法就是可用於多數應用軟體的測試。有六個有關軟體測試方法的基本概念是很重要的:白箱測試,黑箱測試,灰箱測試,有效用例和無效用例,邊界條件以及等價類測試。
白箱測試或白盒測試(White-box testing 或glass-box testing)是透過程式的原始碼進行測試而不使用使用者介面。這種型別的測試需要從程式碼句法發現內部程式碼在演算法,溢位,路徑,條件等等中的缺點或者錯誤,進而加以修正。
黑箱測試或黑盒測試(Black-box testing)是透過使用整個軟體或某種軟體功能來嚴格地測試, 而並沒有透過檢查程式的原始碼或者很清楚地瞭解該軟體或某種軟體功能的原始碼程式具體是怎樣設計的。測試人員透過輸入他們的資料然後看輸出的結果從而瞭解軟體怎樣工作。通常測試人員在進行測試時不僅使用肯定出正確結果的輸入資料,而且還會使用有挑戰性的輸入資料以及可能結果會出錯的輸入資料以便了解軟體怎樣處理各種型別的資料。
灰箱測試或灰盒測試(Gray-box testing):灰箱測試就像黑箱測試一樣是透過使用者介面測試,但是測試人員已經有所瞭解該軟體或某種軟體功能的原始碼程式具體是怎樣設計的。甚至於還讀過部分原始碼。 因此測試人員可以有的放矢地進行某種確定的條件/功能的測試。這樣做的意義在於:如果你知道產品內部的設計和對產品有透過使用者介面的深入瞭解,你就能夠更有效和深入地從使用者介面來測試它的各項效能。
有效用例(Valid case)或者叫合法輸入用例:是那些已知軟體程式能正確地處理的測試用例。一般是指軟體輸入的測試用例。比如說,在 Microsoft Excel 中,用鍵盤輸入“=1+1”, 看到的結果是“2”。 這裡輸入的有效用例是“=1+1”。無效用例(Invalid case有人叫不合法輸入用例)或者出錯用例(error case):是那些事先就知道軟體程式不支援處理的測試用例。比如說在 Microsoft Excel 中,用鍵盤輸入“=a+1”, 看到的結果是“#NAME?”。這裡輸入的“=a+1”既是無效用例同時也是出錯用例。
邊界條件(Boundary Cases):環繞邊界值的測試。通常意味著最大值,最小值或者所設計軟體能夠處理的最長的字串等等。比如說某軟體字型的字號支援範圍是:從8到72。那麼邊界測試用例應該包括:小於8, 等於8, 等於72 和大於72。
等價類(equivalent classes):等價類測試用例指的是如果有很多測試用例執行再多也不會找到新的中的缺陷。因為雖然輸入和輸出結果有所不同,但是它們都透過同樣的軟體的原始碼路徑。通常只要一個原始碼程式的路徑是用於處理一定數值範圍內的所有數值,那麼除了邊界值以外,在邊界值範圍以內的所有數值一般都屬於等價類。因為如果軟體程式能正確處理一個值,也就意味著該程式能正確處理在這個範圍內的除了邊界值以外的其他任何有效輸入值。我們來用以上軟體字型的字號來舉例說明。軟體支援的字號範圍是:從8到72。那麼8和72之間的所有支援的字號都可以被認為是等價類的測試用例
軟體測試方法之所以沒能完全標準化和統一化,主要原因是因為軟體產業產品到軟體測試有各式各樣的軟體。但是目前仍有很多各樣軟體測試方法都基本可用的常用概念和方法。我們這裡介紹的思路和方法就是可用於多數應用軟體的測試。有六個有關軟體測試方法的基本概念是很重要的:白箱測試,黑箱測試,灰箱測試,有效用例和無效用例,邊界條件以及等價類測試。
白箱測試或白盒測試(White-box testing 或glass-box testing)是透過程式的原始碼進行測試而不使用使用者介面。這種型別的測試需要從程式碼句法發現內部程式碼在演算法,溢位,路徑,條件等等中的缺點或者錯誤,進而加以修正。
黑箱測試或黑盒測試(Black-box testing)是透過使用整個軟體或某種軟體功能來嚴格地測試, 而並沒有透過檢查程式的原始碼或者很清楚地瞭解該軟體或某種軟體功能的原始碼程式具體是怎樣設計的。測試人員透過輸入他們的資料然後看輸出的結果從而瞭解軟體怎樣工作。通常測試人員在進行測試時不僅使用肯定出正確結果的輸入資料,而且還會使用有挑戰性的輸入資料以及可能結果會出錯的輸入資料以便了解軟體怎樣處理各種型別的資料。
灰箱測試或灰盒測試(Gray-box testing):灰箱測試就像黑箱測試一樣是透過使用者介面測試,但是測試人員已經有所瞭解該軟體或某種軟體功能的原始碼程式具體是怎樣設計的。甚至於還讀過部分原始碼。 因此測試人員可以有的放矢地進行某種確定的條件/功能的測試。這樣做的意義在於:如果你知道產品內部的設計和對產品有透過使用者介面的深入瞭解,你就能夠更有效和深入地從使用者介面來測試它的各項效能。
有效用例(Valid case)或者叫合法輸入用例:是那些已知軟體程式能正確地處理的測試用例。一般是指軟體輸入的測試用例。比如說,在 Microsoft Excel 中,用鍵盤輸入“=1+1”, 看到的結果是“2”。 這裡輸入的有效用例是“=1+1”。無效用例(Invalid case有人叫不合法輸入用例)或者出錯用例(error case):是那些事先就知道軟體程式不支援處理的測試用例。比如說在 Microsoft Excel 中,用鍵盤輸入“=a+1”, 看到的結果是“#NAME?”。這裡輸入的“=a+1”既是無效用例同時也是出錯用例。
邊界條件(Boundary Cases):環繞邊界值的測試。通常意味著最大值,最小值或者所設計軟體能夠處理的最長的字串等等。比如說某軟體字型的字號支援範圍是:從8到72。那麼邊界測試用例應該包括:小於8, 等於8, 等於72 和大於72。
等價類(equivalent classes):等價類測試用例指的是如果有很多測試用例執行再多也不會找到新的中的缺陷。因為雖然輸入和輸出結果有所不同,但是它們都透過同樣的軟體的原始碼路徑。通常只要一個原始碼程式的路徑是用於處理一定數值範圍內的所有數值,那麼除了邊界值以外,在邊界值範圍以內的所有數值一般都屬於等價類。因為如果軟體程式能正確處理一個值,也就意味著該程式能正確處理在這個範圍內的除了邊界值以外的其他任何有效輸入值。我們來用以上軟體字型的字號來舉例說明。軟體支援的字號範圍是:從8到72。那麼8和72之間的所有支援的字號都可以被認為是等價類的測試用例