軟件測試的基本概念和方法 軟件測試
軟件測試的基本概念
軟件測試方法之所以沒能完全標準化和統一化,主要原因是因為軟件產業產品到軟件測試有各式各樣的軟件。但是目前仍有很多各樣軟件測試方法都基本可用的常用概念和方法。我們這里介紹的思路和方法就是可用于多數應用軟件的測試。有六個有關軟件測試方法的基本概念是很重要的:白箱測試,黑箱測試,灰箱測試,有效用例和無效用例,邊界條件以及等價類測試。
白箱測試或白盒測試(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之間的所有支持的字號都可以被認為是等價類的測試用例。再比如:測試超鏈接時兩個用例http://www.yahoo.com/ 和 http://www.yahoo2.com/ 也是等價類的測試用例。
?
軟件測試的基本方法
軟件測試方法在不同的書籍中可能有不同的分類,不同的叫法和不同的解釋。比如,從測試人員角度看,可分為手動測試和自動測試。從源代碼的角度可分為單元測試和功能測試。從理論定義來分,可分為黑箱測試,白箱測試和灰箱測試。這里要討論的基本軟件測試方法主要側重于軟件功能的黑箱測試方法:功能測試(Functionality Test),可接受性測試(Acceptance Test),用戶界面(User interface或UI)測試,Ad hoc一般指‘探討或開放’型測試,邊界條件測試(Boundary Condition),性能測試(Performance Test),回歸測試(Regression Test),強力測試(Stress Test),配置和安裝測試(Configuration and Setup Test),兼容性測試(Comparability Test),國際化支持測試(International Sufficiency)以及本地化語言測試(Localization)。
文章來源于領測軟件測試網 http://www.k11sc111.com/