999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2014-08-15 00:44:35陜西凌云電器集團有限公司設計所魏銀英
電子世界 2014年7期
關鍵詞:結構

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

1.引言

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

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

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

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

(3)支持面向對象測試用例的重用;

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

2.單元測試用例的設計

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

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

3.基于cantata的測試用例設計方法

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

3.1 函數的形參為結構體類型

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

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

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

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

3.2 全局變量為結構體類型的數組變量,且其成員為指針

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

(1)使用C語言中數組初始化的方式給結構體數組賦值;

(2)一個數組元素一個數據元素的方式給結構體數組賦值;

(3)使用分配內存的方式給結構體數組賦值。

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

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

其一,假設函數形參是如下兩個結構體變量:

struct DIST* StrCount;

struct FILTER* StrFilter;

在測試用例腳本中可以通過下面的方式給結構體變量賦值:

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; /*結構體成員賦初值*/

free(StrCount) ;

free(StrFilter) ;/*釋放內存*/

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

其二,假定定義如下的結構體數組:

PORT_CB g_PortCbTable[10];

其中:PORT_CB 為如下的結構體類型:

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或無后綴指明所賦常量的類型,強制轉換類型不可以忽略。如此賦值后的測試腳本文件加入測試工程后編譯通過,得到了覆蓋率測試結果,至此全局變量為結構體類型的數組變量,且其成員為指針時,測試用例的設計問題得以解決。

4.小結

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

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

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

猜你喜歡
結構
DNA結構的發現
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
新型平衡塊結構的應用
模具制造(2019年3期)2019-06-06 02:10:54
循環結構謹防“死循環”
論《日出》的結構
縱向結構
縱向結構
我國社會結構的重建
人間(2015年21期)2015-03-11 15:23:21
創新治理結構促進中小企業持續成長
現代企業(2015年9期)2015-02-28 18:56:50
主站蜘蛛池模板: 亚洲Av综合日韩精品久久久| 国产精品成人一区二区不卡| 久久国产精品夜色| 国产黄在线观看| 国产成人精品高清不卡在线| 色婷婷亚洲综合五月| 欧美啪啪一区| 无码精油按摩潮喷在线播放| 直接黄91麻豆网站| 日本免费a视频| 中文字幕欧美日韩高清| 丝袜亚洲综合| 久久精品一卡日本电影| 全部免费特黄特色大片视频| 欧美成人午夜在线全部免费| 亚洲欧州色色免费AV| 欧美一级黄片一区2区| 亚洲国产精品无码久久一线| 国产在线观看91精品亚瑟| 午夜不卡视频| 美女扒开下面流白浆在线试听| 欧洲亚洲一区| 久久www视频| 国产成人在线小视频| 国产精品网址在线观看你懂的| 国产成人h在线观看网站站| 亚洲成A人V欧美综合| 亚洲精品手机在线| 天天综合亚洲| 99久久99视频| 亚洲精品无码av中文字幕| 久久久久88色偷偷| 日韩二区三区| 日本久久免费| 国产精品福利尤物youwu | 久草视频中文| 91视频日本| 99久久婷婷国产综合精| 国产久草视频| 亚洲水蜜桃久久综合网站| 国产一区免费在线观看| 国产00高中生在线播放| 亚洲一区二区视频在线观看| 亚洲第一综合天堂另类专| 精品无码一区二区三区在线视频| 国产尹人香蕉综合在线电影| 亚洲国产黄色| 色婷婷在线影院| 国产97视频在线| 国产大片喷水在线在线视频| 日韩一区精品视频一区二区| 凹凸精品免费精品视频| 美女视频黄又黄又免费高清| 国产成人亚洲无吗淙合青草| 成人毛片在线播放| 91免费精品国偷自产在线在线| 日本一区中文字幕最新在线| 久久国产精品嫖妓| 一级毛片无毒不卡直接观看| 亚洲视频二| yjizz视频最新网站在线| 亚洲综合激情另类专区| 亚洲国产天堂久久综合226114| 国产99精品久久| 亚洲AⅤ无码国产精品| 99这里只有精品在线| 亚洲一区二区无码视频| 99r在线精品视频在线播放| 亚洲成人精品在线| 国产成人精品日本亚洲77美色| 亚洲二区视频| 欧美全免费aaaaaa特黄在线| 在线日本国产成人免费的| 54pao国产成人免费视频| 国产黄色免费看| 黄色a一级视频| 日韩东京热无码人妻| 亚洲精品爱草草视频在线| 成人亚洲视频| 国产二级毛片| av午夜福利一片免费看| 国产va在线观看|