圖 8 單位正方形技巧
在軟件測試場景中,性能通常不是主要的考慮因素,因此我所提到的三種實現方法都適用。但在軟件開發中,特別是在進行模擬時,性能就成為一個主要問題。盡管 Box-Muller 算法執行起來既高效又相對簡單,但是也有其他替代算法可生成正態/高斯偽隨機數字。有一種高效的替代方法稱為 ziggurat 方法。
總結
讓我進行一下簡單總結。生成隨機測試用例輸入數據是基本的軟件測試技能。.NET Framework 包含一個 System.Random 類,可用于生成某一特定值域內的統一分布的整數型或浮點型偽隨機數字。需要注意的主要問題就是要確保正確指定值域的端點值。
可使用 Wald-Wolfowitz 檢驗方法來分析包含兩個符號的模式以證明它是隨機生成的模式。您可使用此檢驗方法分析隨機測試用例輸入數據或分析所測試系統的輸出數據。
最佳通用混排算法稱為 Fisher-Yates 算法。它非常簡單并且幾乎不需要使用另一種方法。但即使正確算法中存在一絲微小偏差都可能導致算法看似正確但卻存在重大錯誤。
可使用 Box-Muller 算法生成正態分布的偽隨機數字。Box-Muller 算法隱含的數學原理非常深奧,但實現過程卻異常簡單。有幾種方法可用于實現 Box-Muller 算法,但都以降低效率來提高清晰性。
請將您的疑問和意見通過 testrun@microsoft.com 發送給 James。
James McCaffrey 博士供職于 Volt Information Sciences Inc.,在那里他負責管理 Microsoft 的軟件工程師的技術培訓。他已經為多種 Microsoft 產品效過力,包括 Internet Explorer 和 MSN Search??赏ㄟ^ jmccaffrey@volt.com 或 v-jammc@microsoft.com 與 James 聯系。
原文轉自:http://www.uml.org.cn/Test/200611225.htm