亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        針對函數(shù)式編程語言的基于屬性的測試方法研究

        2016-03-16 05:50:36熊玉蘭
        中國新通信 2016年3期
        關(guān)鍵詞:樣例軟件測試代碼

        熊玉蘭

        一、概論

        如何提高軟件質(zhì)量是軟件工程致力解決的關(guān)鍵問題之一。軟件測試和驗證是保證軟件正確性和提高可靠性的最基本和最重要的手段,也是工業(yè)界使用的主流技術(shù)。軟件測試有不同的方法,基本可以劃分為基于程序的測試和基于規(guī)范的測試兩大范疇。基于程序的測試根據(jù)程序特征代碼(如:語句、分支、路徑)產(chǎn)生測試樣例,并以相應(yīng)程序代碼特征是否得到充分測試作為測試終止的判定標(biāo)準(zhǔn),即測試充分性準(zhǔn)則?;谝?guī)范的測試要求根據(jù)功能規(guī)范和設(shè)計規(guī)范產(chǎn)生測試用例,針對相應(yīng)的功能和設(shè)計屬性進(jìn)行測試,并以相關(guān)屬性是否得到充分測試作為測試充分性準(zhǔn)則。

        到目前為止,工業(yè)界在軟件開發(fā)過程中采用的測試技術(shù)大多是非系統(tǒng)化的,具有可靠性高、實時性強(qiáng)等要求,通常的完整的軟件測試工作需要耗費(fèi)大量的人力物力,基本上會占據(jù)軟件開發(fā)周期50%甚至更多的時間。特別地,對于一些特殊的軟件,比如:安全攸關(guān)實時軟件(火箭控制等),他們的高復(fù)雜性和高安全需求使得傳統(tǒng)的基于程序代碼的測試在技術(shù)上難以實現(xiàn),開銷上難以接受。

        對于特定目的,采用某些特定結(jié)構(gòu)的程序可以采用一類稱為隨機(jī)測試的方法。隨機(jī)測試是一種有效的測試策略,該策略簡單易行、成本低,不需要過多了解軟件的內(nèi)部結(jié)構(gòu)的信息,只是按照一定的規(guī)則在整個輸入域中隨機(jī)產(chǎn)生測試用例,因而被廣泛地用于軟件測試和可靠性評估中。同時,高昂的測試代價不斷促進(jìn)研究人員考慮能否有自動化測試的方法,不管是全部自動化還是部分自動化。自動化的測試工具可以幫助編程人員在很短的時間內(nèi)完成測試,并且很容易在每次程序修改過之后重復(fù)測試。目前為止,有一類QuickCheck的工具,可以用于測試Haskell程序。

        二、 研究方法

        一個屬性為基礎(chǔ)的測試框架通常會一遍又一遍地運(yùn)行相同的生成測試數(shù)據(jù),這個設(shè)置和當(dāng)前基于樣例的測試架構(gòu)不太一樣,在基于樣例的測試中,每個單元測試都設(shè)置了一個輸入的情況,然后運(yùn)行測試的代碼,最后檢查輸出(以及然后代碼應(yīng)該有的其他的影響)。相反的是,一個屬性為基礎(chǔ)的測試通常會運(yùn)行數(shù)百次不同的輸入,這個測試的框架通常會考慮一些比較邊緣的情況,比如:傳遞空列表、負(fù)值、所有可能的邊緣情況,來使測試發(fā)生失敗,以達(dá)到學(xué)習(xí)的目的。

        基于屬性的測試人員必須非常仔細(xì)地考慮各種各樣的規(guī)范和細(xì)節(jié)。比如:支持什么樣的輸入?輸入如何產(chǎn)生?可以對輸入做哪些申明?這些考慮都是非常必要的。

        基于屬性的測試主要分為以下八個步驟:

        屬性選擇(selecting a property)。它需要從一堆屬性池子中根據(jù)一些準(zhǔn)則選擇一個屬性來進(jìn)行測試。

        靜態(tài)分析(Static analysis and slicing),它主要做的工作是為源代碼生成一個基于數(shù)據(jù)流的圖,這個圖通常在基于屬性的其他步驟中有很多作用。

        程序?qū)耄≒rogram instrumentation),它的主要工作是:導(dǎo)入以及定位到與第一步中選擇的屬性有關(guān)的代碼片段,然后編譯這段代碼片段。

        初步測試(Initial test execution),它的主要工作是:使用之前產(chǎn)生的各種各樣的測試數(shù)據(jù)進(jìn)行初步測試。

        范圍測試(Coverage evaluation),它的主要工作是:根據(jù)第四部測試執(zhí)行過程中產(chǎn)生的代碼片段執(zhí)行的歷史記錄來分析哪些路徑是被執(zhí)行的,以此來得到一個所謂的范圍。

        額外測試(Additional test case),它的主要任務(wù)是:根據(jù)第五步返回的結(jié)果進(jìn)行進(jìn)一步的測試。

        正確性評估(Correctness evaluation),它的主要任務(wù)是:將之前的測試結(jié)果與期望結(jié)果進(jìn)行比較,依次來判斷基于該屬性的測試是否成功。

        三、實驗評估

        為了驗證基于屬性的測試的有效性,我們設(shè)計了如下實驗對其進(jìn)行驗證,選擇二項堆(Binomial Heap)作為測試對象對其進(jìn)行基于屬性的測試。

        二項堆是一種支持快速合并的堆數(shù)據(jù)結(jié)構(gòu),采用二項樹(Binomial Tree)的集合進(jìn)行實現(xiàn)。二項樹遞歸定義如下:

        階為k的二項樹是由階為k-1, k-2, , 2, 1, 0的二項樹的根節(jié)點作為k階二項樹的節(jié)點構(gòu)成的。

        二項堆是有二項樹的集合構(gòu)成的,滿足如下二項堆性質(zhì):

        堆中的每一棵二項都樹滿足最小堆性質(zhì),即結(jié)點的值大于其父節(jié)點的值;

        堆中具有某階的二階樹具有唯一性。

        我們采用Scala實現(xiàn)了中的二項堆,并且設(shè)計實現(xiàn)了5種具有缺陷的二項堆,對這6種二項堆進(jìn)行了屬性測試。具有缺陷的二項堆對原二項堆的實現(xiàn)進(jìn)行了變種,使其在某些特定情況下會不滿足二項堆的性質(zhì)。

        我們還設(shè)計了6個屬性,采用基于屬性的測試方法對這6種堆實現(xiàn)進(jìn)行測試,這些屬性都是根據(jù)二項堆的性質(zhì)進(jìn)行設(shè)計的,所以正確的二項堆實現(xiàn)會全部滿足這些屬性,而我們設(shè)計實現(xiàn)的具有缺陷的二項堆將會違背某個屬性。

        這是因為第二種變種實現(xiàn)改變了鏈接二項樹的操作,會影響到堆的插入、刪除等各項操作,對產(chǎn)生的堆的結(jié)構(gòu)產(chǎn)生了影響;而第一種變種實現(xiàn)僅會影響到findMin操作,不會對堆的結(jié)構(gòu)產(chǎn)生影響。

        四、結(jié)論

        本文對基于屬性的測試進(jìn)行了研究,實驗中采用Scala編程語言對純函數(shù)式二項堆進(jìn)行了實現(xiàn),并設(shè)計實驗了五種具有缺陷的二項堆,并定義了六種滿足二項堆性質(zhì)的屬性,采用基于屬性的測試對二項堆進(jìn)行測試,通過實驗結(jié)果證明了基于屬性的測試的有效性。

        猜你喜歡
        樣例軟件測試代碼
        樣例復(fù)雜度與學(xué)習(xí)形式對不同數(shù)量樣例學(xué)習(xí)的影響
        樣例呈現(xiàn)方式對概念訓(xùn)練類別表征的影響
        基于OBE的軟件測試課程教學(xué)改革探索
        “樣例教學(xué)”在小學(xué)高年級數(shù)學(xué)中的應(yīng)用
        創(chuàng)世代碼
        動漫星空(2018年11期)2018-10-26 02:24:02
        創(chuàng)世代碼
        動漫星空(2018年2期)2018-10-26 02:11:00
        創(chuàng)世代碼
        動漫星空(2018年9期)2018-10-26 01:16:48
        創(chuàng)世代碼
        動漫星空(2018年5期)2018-10-26 01:15:02
        EXCEL和VBA實現(xiàn)軟件測試記錄管理
        電子制作(2018年16期)2018-09-26 03:27:18
        關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
        電子測試(2017年15期)2017-12-18 07:19:20
        bbbbbxxxxx欧美性| 大肉大捧一进一出视频出来呀| 久久精品国产亚洲av高清色欲| 亚洲加勒比无码一区二区在线播放| 最好的99精品色视频大全在线 | 丰满熟妇人妻av无码区| 日日猛噜噜狠狠扒开双腿小说| 乱人伦人妻中文字幕无码| 国产女主播在线免费看| 国产欧美在线观看不卡| a级毛片无码免费真人| 欧美高清视频一区| 中文字幕精品久久一区二区三区| 亚洲综合网国产精品一区| 欧美日韩中文国产一区发布| 久久久精品456亚洲影院| 日本成人中文字幕亚洲一区 | 一区二区激情偷拍老牛视频av | 国产精品欧美一区二区三区| 最新国产在线精品91尤物| 人妻免费黄色片手机版| 亚洲av精二区三区日韩| 人人澡人人澡人人看添av| 亚洲另在线日韩综合色| 国产三级不卡在线观看视频| 亚洲精品无码永久在线观看| 亚洲暴爽av天天爽日日碰| 亚洲精品无人区一区二区三区| 一二三区亚洲av偷拍| 国产又黄又爽又色的免费| 亚洲国产成人手机在线观看| 亚洲熟女少妇精品久久| 无码乱肉视频免费大全合集 | 亚洲素人日韩av中文字幕| 国产99一区二区三区四区| 国产精品18久久久久久麻辣| 97久久综合区小说区图片专区| 亚洲精品国产亚洲av| 青青国产揄拍视频| 久久精品国产99久久丝袜| 亚洲无人区一码二码国产内射 |