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

        ?

        一種基于cantata的單元測試用例設(shè)計方法

        2014-08-15 00:44:35陜西凌云電器集團有限公司設(shè)計所魏銀英
        電子世界 2014年7期
        關(guān)鍵詞:數(shù)組測試用例軟件測試

        陜西凌云電器集團有限公司設(shè)計所 魏銀英 楊 苗

        1.引言

        隨著軟件系統(tǒng)越來越復(fù)雜,在產(chǎn)品開發(fā)各階段進行完全的軟件測試也越來越重要,大多數(shù)軟件開發(fā)者都已意識到這一點。但考慮到測試費用問題,軟件開發(fā)者往往面臨著在提高產(chǎn)品質(zhì)量與減少費用之間進行選擇的問題。IPL提供的Cantata測試軟件應(yīng)這種需要,在合理的費用下提供給軟件開發(fā)者的強有效的軟件測試工具。Cantata可以同時支持C和C++語言的測試,能夠滿足開發(fā)者進行高效的單元和集成測試的需求,該產(chǎn)品不僅能提高產(chǎn)品質(zhì)量,還能幫助提高生產(chǎn)率。

        作為專業(yè)軟件測試工具,Cantata++除包含一些標(biāo)準的特征之外,還提供了一些新功能:

        (1)支持語句、判定和布爾代碼覆蓋率度量;

        (2)支持運用白盒測試技術(shù),自動獲取私有類數(shù)據(jù);

        (3)支持面向?qū)ο鬁y試用例的重用;

        (4)圖形化和XML形式的結(jié)果報告。[1]

        2.單元測試用例的設(shè)計

        軟件質(zhì)量的好壞很大程度上取決于測試用例的設(shè)計質(zhì)量。不論程序員的編程水平、軟件設(shè)計水平有多高,軟件工程化執(zhí)行得多好,如果沒有通過合適質(zhì)量的測試用例進行測試,其最終軟件質(zhì)量都是難以保證的。因此,測試用例設(shè)計是軟件測試的最核心和最重要的內(nèi)容之一。[2]

        單元測試主要使用白盒測試技術(shù),測試用例的設(shè)計方法一般分兩種類型,即測試人員自己編寫測試腳本和借助測試工具生成測試腳本框架后維護測試數(shù)據(jù)。Cantata++測試工具可用于生成和維護測試腳本,編譯并運行測試可執(zhí)行程序,查看測試結(jié)果和覆蓋率數(shù)據(jù)。

        3.基于cantata的測試用例設(shè)計方法

        在cantata工具中常見的單元測試用例的實現(xiàn)方法很簡單,不再贅述。本文主要介紹復(fù)雜函數(shù)實現(xiàn)的單元測試用例的設(shè)計方法。如單元測試的被測單元函數(shù)使用的函數(shù)形參是結(jié)構(gòu)體變量和全局變量是結(jié)構(gòu)體數(shù)組且結(jié)構(gòu)體的成員是指針時,在設(shè)計測試用例時如何給結(jié)構(gòu)體變量賦值?

        3.1 函數(shù)的形參為結(jié)構(gòu)體類型

        Cantata測試工具自動生成的測試用例中,函數(shù)形參的默認值都是“NOT_SET”,編譯測試腳本時不能被識別,給函數(shù)的形參賦正確的參數(shù)值是得到正確的測試結(jié)果的前提。設(shè)計帶有結(jié)構(gòu)體類型的形參的測試用例時,我們分別做了如下實驗:

        (1)按照在C語言中結(jié)構(gòu)體變量成員賦值的方式給測試用例中的結(jié)構(gòu)體變量賦值;

        (2)使用改造C語言結(jié)構(gòu)體變量成員賦值的方式把“->”改為“·”給測試用例中的結(jié)構(gòu)體變量賦值。

        編譯結(jié)果證明兩種賦值方式均不能被正確識別。

        3.2 全局變量為結(jié)構(gòu)體類型的數(shù)組變量,且其成員為指針

        Cantata在自動生成測試用例時使用其本身封裝的INITIALISE()函數(shù)給全局變量賦初值為0x55,以滿足一般的測試需要。為達到充分測試的目的,需要給全局變量賦相應(yīng)的數(shù)值,當(dāng)全局變量為結(jié)構(gòu)體類型的數(shù)組變量,且其成員為指針時,我們進行了如下實驗:

        (1)使用C語言中數(shù)組初始化的方式給結(jié)構(gòu)體數(shù)組賦值;

        (2)一個數(shù)組元素一個數(shù)據(jù)元素的方式給結(jié)構(gòu)體數(shù)組賦值;

        (3)使用分配內(nèi)存的方式給結(jié)構(gòu)體數(shù)組賦值。

        編譯結(jié)果證明三種賦值方式均不能被編譯器識別。

        結(jié)構(gòu)體形參賦值時是不是因為該形參在賦值之前沒有被分配內(nèi)存空間所以無法賦值?結(jié)構(gòu)體數(shù)組賦值的情況會不會因為cantata測試工具對編碼規(guī)則要求較嚴格,必須按照相應(yīng)的編程規(guī)則才可以編譯通過?帶著這種疑問我們查閱了大量編程規(guī)則的資料,通過反復(fù)實踐,最終找到了解決該兩個問題的辦法。

        其一,假設(shè)函數(shù)形參是如下兩個結(jié)構(gòu)體變量:

        struct DIST* StrCount;

        struct FILTER* StrFilter;

        在測試用例腳本中可以通過下面的方式給結(jié)構(gòu)體變量賦值:

        StrCount = malloc(sizeof(struct DIST));

        StrFilter = malloc(sizeof(struct FILTER));

        memset(DIST_COUNT,0,sizeof(struct DIST));

        memset(DIST_FILTER,0,sizeof(struct FILTER));

        StrCount->cnt = 100; /*結(jié)構(gòu)體成員賦初值*/

        free(StrCount) ;

        free(StrFilter) ;/*釋放內(nèi)存*/

        如此賦值后的測試腳本文件加入測試工程后編譯通過,得到了覆蓋率測試結(jié)果,函數(shù)形參是結(jié)構(gòu)體類型變量的測試用例設(shè)計的問題得以解決。

        其二,假定定義如下的結(jié)構(gòu)體數(shù)組:

        PORT_CB g_PortCbTable[10];

        其中:PORT_CB 為如下的結(jié)構(gòu)體類型:

        typedef struct

        {

        char num[16]; /* 端口名稱*/

        CONNOBJ* pObj; /* 端口句柄指針*/

        }PORT_CB;

        在測試用例腳本中,修改指針成員變量的方式為:

        g_PortCbTable[0].pObj = (CONNOBJ*)-1;

        g_PortCbTable[1].pObj = (CONNOBJ*)1U;

        g_PortCbTable[2].pObj = (CONNOBJ*)1U;

        g_PortCbTable[3].pObj = (CONNOBJ*)1U;

        g_PortCbTable[4].pObj = (CONNOBJ*)1U;

        g_PortCbTable[5].pObj = (CONNOBJ*)-12;

        g_PortCbTable[6].pObj = (CONNOBJ*)2U;

        g_PortCbTable[7].pObj = (CONNOBJ*)2U;

        g_PortCbTable[8].pObj = (CONNOBJ*)2U;

        g_PortCbTable[9].pObj = (CONNOBJ*)2U;

        其中有后綴U或無后綴指明所賦常量的類型,強制轉(zhuǎn)換類型不可以忽略。如此賦值后的測試腳本文件加入測試工程后編譯通過,得到了覆蓋率測試結(jié)果,至此全局變量為結(jié)構(gòu)體類型的數(shù)組變量,且其成員為指針時,測試用例的設(shè)計問題得以解決。

        4.小結(jié)

        本文介紹了測試工具cantata的功能特性及其在單元測試中的應(yīng)用,在此基礎(chǔ)上提出了一種復(fù)雜單元函數(shù)的測試用例設(shè)計方法,該方法在類似的軟件測試項目中得到了應(yīng)用,在實踐中取得了良好效果。

        [1]Cantata++ Reference Manual v6.1 2011,3.

        [2]周偉明著.軟件測試實踐[M].電子工業(yè)出版社,2008:46.

        猜你喜歡
        數(shù)組測試用例軟件測試
        JAVA稀疏矩陣算法
        電腦報(2022年13期)2022-04-12 00:32:38
        基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
        基于OBE的軟件測試課程教學(xué)改革探索
        計算機教育(2020年5期)2020-07-24 08:53:20
        JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
        電腦報(2020年24期)2020-07-15 06:12:41
        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
        軟件測試工程化模型及應(yīng)用研究
        尋找勾股數(shù)組的歷程
        基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
        色拍自拍亚洲综合图区| 亚洲中文字幕免费精品| 全国一区二区三区女厕偷拍| 中文字幕精品一区久久| 扒开腿狂躁女人爽出白浆| 国产色秀视频在线播放| 国产精品久久久久久久久免费观看 | 日本a级免费大片网站| 色综合久久久无码中文字幕| 成人免费毛片aaaaaa片| 在线播放国产女同闺蜜| 青青草一级视频在线观看| 亚洲国产一区二区网站| 欧洲成人一区二区三区| 熟妇人妻av中文字幕老熟妇| 久久国产欧美日韩高清专区| 国内精品国产三级国产avx| 美女主播福利一区二区| 亚洲色成人网站www永久| 日本免费人成视频播放| 无码人妻少妇久久中文字幕| 日本频道一区二区三区| 色婷婷一区二区三区四区成人网| 欧洲熟妇色xxxxx欧美老妇伦| 亚洲日韩欧美一区二区三区| 男女视频网站免费精品播放| 亚洲精品一品区二品区三区| 97精品久久久久中文字幕| 正在播放国产对白孕妇作爱| 激情亚洲综合熟女婷婷| 一区二区三区日韩精品视频| 亚洲va欧美va日韩va成人网| 亚洲精品久久久久久动漫 | 无码少妇一区二区浪潮av| аⅴ天堂一区视频在线观看 | 亚洲天堂av在线免费观看| 在线亚洲高清揄拍自拍一品区| 国产70老熟女重口小伙子| 成年女人片免费视频播放A| 福利视频偷拍一区二区| 国产亚洲精品成人aa片新蒲金 |