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

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

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

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

    遺傳算法在黑盒測試中的應用[2]

    發布: 2010-3-29 11:13 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 26次 | 進入軟件測試論壇討論

    領測軟件測試網

      遺傳算法在黑盒測試中的應用[2]   軟件測試

      其中A表示遺傳算法中的適應度Adaptation,P表示該測試用例在實際中發生的幾率Probability,M表示平均失效時間(MTTF),F表示失效等級。因為測試是針對使用的,所以發生幾率高的測試用例適應度高就不難理解了;而M——平均失效時間越長,該測試用例應該不容易發現軟件的錯誤,所以A越低;F則表示某些特殊情況發生使軟件嚴重失效(比如造成死機、損壞儀器等等),此時該測試用例以及其后代必須被重點關注,所以此時A越大。λ、μ是相應于各個具體的被測試軟件模塊而定的系數。在實際應用中,由于軟件失效的可能性不是特別大,所以遺傳結果往往是發生幾率高的測試用例后代較多。所以我們應該針對具體被測試軟件設計準確的發生概率產生算法。具體算法框架如圖1所示。

      對于該算法的說明如下:

      *1.每一個輸入參數往往有一個幾率(可以事先定義),可以簡單相加來求得該測試用例的概率。但是在輸入參數有較強相關性時,此方法并不能準確求得某個測試用例的發生概率,一個解決辦法是設置輸入參數的相關耦合度。在遺傳算法的交叉、變異時其同時進行的幾率與相關耦合度成正比,即對于相關耦合度高的輸入參數,它們同時進行交叉、變異的幾率高,反之則低。

      *2.檢驗是否滿足測試要求時,需要先設置一個計數器。每運行一個新的測試用例,測試計數器加一。當發現第一次失效或故障時,計數器加二。若產生的遺傳后代又使軟件發生失效,則計數器加22。同理遞推,當遺傳算法產生的測試用例連續n次使軟件失效,則計數器加2n。同時,記錄所有的測試情況(此工作由外圍的測試環境完成,比如北大的青鳥黑盒測試環境)。如果出現嚴重錯誤則終止測試,進行對程序的檢查。如果連續k代測試用例的遺傳后代都運行良好,計數器的值加2k。k的值由具體被測試軟件的等價類數量、輸入參數個數等決定。當測試計數器的值達到所有黑盒測試用例等價類的數值時(對于我們上面所舉的例子,該值為55=3125),結束測試。當生成的孫子代、子代與父母代三代完全相同時,算法也必須結束,因為此時測試不會有新的結果。所以我們還要設置一個結束條件。而且該條件強于計數器條件。

      *3.每一組測試用例可以生成多個測試用例,根據適應度函數大小決定留下哪些測試用例組成新的測試用例組。

      從上面的算法框圖和說明可以看出,如果某測試用例使軟件的運行發生了問題(即某個軟件錯誤發作),它的后代也同樣受困于該軟件錯誤,算法很快能發現這些最佳測試用例并給出結果。測試人員就可以將它們交給開發人員解決這些問題。若軟件本身確實質量優良,這些測試用例及其不同的后代無法發現失效,算法也能盡快結束,而不是完成所有測試用例(雖然從理論上,我們希望測試盡可能運行所有測試用例)。

      2 效果

      上節的算法,相對于運行所有測試用例,并沒有比較明顯的優點。尤其對于測試來說,算法并沒有加速運行測試用例,好象還降低了運行速度。其實算法本身的確不是用來加速運行測試用例的,其目的是找到一組最佳測試用例。因為實際上對于很多模塊運行所有測試用例或哪怕是所有等價類都是幾乎不可能的。

      以上一節舉的例子做說明,其輸入等價類大致有55=3125。如果一個模塊有10個輸入、每個輸入有10種等價類,那么輸入等價類為1010。按運行一個等價類需要1分鐘計算(很多循環運行模塊可能不止1分鐘),需要幾個月才能運行一遍所有等價類。這時,運用遺傳算法的優勢就體現出來了。

      綜上所述,本文提出了一種利用遺傳算法尋求最佳測試用例的測試方法原理。它能在較短時間內完成軟件模塊的黑盒測試并給出測試結果和好的測試用例。利用該算法原理,可以在測試集成環境中做一些設置或修改測試集成環境,這樣可以大大提高測試工作的效率。

    延伸閱讀

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

    TAG: 算法 遺傳 應用


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(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>