• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    軟件測試中的隨機性

    發布: 2010-12-17 09:19 | 作者: 不詳 | 來源: 領測測試網采編 | 查看: 149次 | 進入軟件測試論壇討論

    領測軟件測試網

      在后臺,重載的 Random.Next 方法將使用 Knuth 偽隨機數字生成方法。這也稱作“相減法”。Knuth 在《The Art of Computer Programming》(計算機程序設計藝術)(Addison-Wesley, 1981) 第 2 卷的“Seminumerical Algorithms”(半數值算法)中發表了此算法。生成統一的偽隨機數字相當有難度,但幸好 .NET Framework 會負責為您實現 Knuth 算法。

      大約在首次開發 .NET Framework 時,Matsumoto 和 Nishimura 就發現了一種新的偽隨機數字生成算法。他們的算法一般被稱作 Mersenne Twister(馬其賽特旋轉)方法,并正因其通常所具有的卓越性能和數學特性而迅速取代原來的偽隨機數字生成算法。請參閱“Mersenne Twister:A 623-Dimensionally Equidistributed Uniform Pseudo-Random Number Generator”,《ACM Transactions on Modeling and Computer Simulation》(美國計算機學會模型和計算機仿真匯刊),第 8 卷,第 1 號,1998 年 1 月。

      生成偽隨機浮點數與生成偽隨機整數類似。假定有以下代碼:

      double x = (6.25 * objRan.NextDouble()) + 1.50;

      Console.WriteLine("[1.50,7.75) 值域中的隨機雙精度值是 " +

      x.ToString("0.00"));

      對 Random.NextDouble 的調用將返回一個大于或等于 0.0 且絕對小于 1.0 的數字。要生成在值域 [下限值,上限值) 之內(其中,兩個括號符號表示大于或等于“下限值”且絕對小于“上限值”)的浮點型數字,則可使用小型公式:

      double result = ((high-low) * objRan.NextDouble()) + low;

      因為除 0.0 外,大多數浮點型數值都為近似值,所以從技術上說,您不能在包含端點值的值域 [下限值,上限值] 內生成浮點型數字,而必須將其改為不包含端點值的值域 [下限值,上限值)。該公式與接受完整值域的 Next 重載中所用的公式幾乎相同,只不過轉換為整數的結果不同。

      返回頁首

      分析模式隨機性

      有時候,您可能需要檢查某個測試用例輸入或輸出模式,以證明它是隨機生成的(例如,檢驗并確定某一賭博模擬事實上正輸出隨機結果)。有幾個統計方法可用于實現此目的,但最簡單的是 Wald-Wolfowitz 檢驗。該檢驗有時稱為單樣本游程檢驗(其中,“游程”為一連串相同數字或字符)。Wald-Wolfowitz 檢驗適用于由兩個符號組成的序列,例如:

      A B B A A A B B B A B B

      其中的原理是,對于模式中指定數量的每個符號類型(共兩個符號類型),如果符號為隨機生成(在本例中,意味著模式中每個位置出現 A 或 B 的幾率各為 50%),則您可計算該模式中的預期游程數。模式游程是一個由相同符號類型組成的序列。因此,在剛才所示的模式中,共有六個游程:A、BB、AAA、BBB、A、BB。如果模式中的實際游程數過大或過小,則證明該模式不是隨機生成。

      盡管 Wald-Wolfowitz 檢驗僅適用于只包含兩種符號類型的模式,但您通?梢詫⑷我饽J接成錇 Wald-Wolfowitz 形式。例如,如果您有一個 {7, 9, 3, 4, 1, 6} 之類的整數序列,則可以算出其平均值為 (5.0),然后將該序列映射到符號 H 和 L,其中 H 代表大于該平均值的數,而 L 代表小于該平均值的數:H H L L L H。如果您需要分析更復雜的模式,則可以使用 Chi-Square 檢驗或 Kolmogorov 檢驗之類的一些檢驗方法。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>