官术网_书友最值得收藏!

第4章 測試用例的設計

除了第2章探討的軟件測試的心理學問題以外,軟件測試中最重要的因素是設計和生成有效的測試用例。

然而,無論軟件測試進行得如何具有創造性、如何完全,也不能保證軟件中不存在任何錯誤。測試用例的設計如此重要,原因在于完全的測試是不可能的,對任何程序的測試必定是不完全的。那么,最顯然的測試策略就是努力使測試盡可能完全。

由于時間和成本的約束,軟件測試的最關鍵問題是:

在所有可能的測試用例中,哪個子集最有可能發現最多的錯誤?對軟件測試用例設計方法的研究為這個問題提供了答案。

一般而言,在所有的方法中效率最低的是隨機輸入測試,即在所有可能的輸入值中隨機選取某個子集來對程序進行測試的過程。就發現最多錯誤的可能性而言,隨機選取而產生的測試用例集很少有可能是理想的或接近理想的子集。在本章中,我們將提出一套思考過程,該過程有助于更加睿智地選取測試數據。

本書第2章已經證明窮舉的黑盒和白盒測試通常都是不可能的,但同時也建議:將這兩種測試的要素組合起來得到一種合理的測試策略。本章將對這種策略進行研究。我們可以通過使用特定的面向黑盒測試的測試用例設計方法,而后使用白盒測試方法對程序的邏輯結構進行檢查以補充這些測試用例,借此來設計出一個相當嚴格的測試。

本章將要討論的測試方法如下:

黑盒測試

白盒測試

等價類劃分

語句覆蓋

邊界值分析

判定覆蓋

因果圖分析

條件覆蓋

錯誤猜測

判定/條件覆蓋

多重條件覆蓋

盡管上述方法將分開來進行討論,但我們建議綜合最多的(如果不能是全部的話)測試方法來設計嚴格的程序測試,因為每一種測試方法都有其獨特的優勢和弱點。舉例來說,某種方法遺漏掉的錯誤,而用其他的方法就可能找出來。

沒有人曾承諾說:軟件測試會是容易的事。引用一位智者的話,“如果你覺得設計和編寫程序很困難,你就并非一無所知”。

我們推薦的步驟是先使用黑盒測試方法來設計測試用例,然后視情況需要使用白盒測試方法來設計補充的測試用例。下面首先討論較為有名的白盒測試方法。

主站蜘蛛池模板: 广昌县| 高要市| 甘孜| 格尔木市| 白水县| 玛沁县| 富顺县| 清流县| 工布江达县| 神池县| 临城县| 兴义市| 宣城市| 长寿区| 大理市| 秦安县| 万州区| 马山县| 休宁县| 汶上县| 依兰县| 定日县| 祥云县| 咸阳市| 彭山县| 临高县| 铜鼓县| 南宁市| 成都市| 英山县| 甘孜| 荔波县| 麦盖提县| 江都市| 合水县| 修武县| 当雄县| 油尖旺区| 北川| 纳雍县| 海城市|