<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>

            模糊測試的基本思想

            發(fā)表于:2009-05-27來(lái)源:作者:點(diǎn)擊數: 標簽:思想
            先看如下這段代碼 1int func1(int a,char b, char c) 2 3{ 4 5 if(a0a100 b==0 c==255) 6 7 { 8 9 printf("trig a bug "); 10 11 return 0; 12 } 13 14 return 1; 15} 16 這段代碼的意思就是在參數 如何通過(guò) 測試 找到這些bug呢?這是一個(gè)問(wèn)題,如何在一堆API
            先看如下這段代碼

              1int func1(int a,char b, char c)
              2
              3{
              4
              5         if(a>0&&a<100&& b==0 && c==255)
              6
              7         {
              8
              9                   printf("trig a bug");
              10
              11                   return 0;
              12         }
              13
              14         return 1;
              15}
              16

              這段代碼的意思就是在參數

              如何通過(guò)測試找到這些bug呢?這是一個(gè)問(wèn)題,如何在一堆API的參數中找到這樣的bug,這是一個(gè)大問(wèn)題。嗯我們現在就討論這個(gè)問(wèn)題。

              從我們便于理解的角度上看這個(gè)問(wèn)題。其實(shí)我們希望我們的測試用例能夠在一定概率的情況下在整個(gè)參數空間中觸及到這個(gè)bug的觸發(fā)參數區域。

              最笨的辦法就是枚舉測試空間,這個(gè)實(shí)際上并不是一個(gè)可行的方法。參數空間會(huì )隨著(zhù)參數的個(gè)數增加產(chǎn)生參數空間爆炸。

              那到底該怎么辦呢?在有限的資源下最大可能的找到這樣的有問(wèn)題的參數樣本,可行的辦法就是一堆隨機的參數來(lái)然后通過(guò)合適的組合來(lái)盡可能的覆蓋整個(gè)參數空間?,F在問(wèn)題就是如何產(chǎn)生合適的隨機數了。下面我們就討論一下如何或者比較好的隨機數和如何比較好的組合在一起。

              隨機數:

              隨機數在軟件開(kāi)發(fā)中應用很廣泛,在通信,加密,游戲中都需要隨機數發(fā)生器。那什么是隨機數呢?

              隨機數至少應該具備兩個(gè)條件:

              1. 數字序列在統計上是隨機的。

              2. 不能通過(guò)已知序列來(lái)推算后面未知的序列。

              只有實(shí)際物理過(guò)程才是真正隨機的。而一般來(lái)說(shuō),計算機是很確定的,它很難得到真正的隨機數。所以計算機利用設計好的一套算法,再由用戶(hù)提供一個(gè)種子值,得出被稱(chēng)為“偽隨機數”的數字序列,這就是我們平時(shí)所使用的隨機數。



            原文轉自:http://kjueaiud.com

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>