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

        ?

        基于VisualUnit的Linux項(xiàng)目單元測(cè)試方法研究

        2017-07-31 19:22:50唐躍川彭汝鳳涂小麗
        微處理機(jī) 2017年2期
        關(guān)鍵詞:單元測(cè)試用例軟件測(cè)試

        唐躍川 彭汝鳳 涂小麗

        (重慶金美通信有限責(zé)任公司,重慶,400030)

        基于VisualUnit的Linux項(xiàng)目單元測(cè)試方法研究

        唐躍川 彭汝鳳 涂小麗

        (重慶金美通信有限責(zé)任公司,重慶,400030)

        首先介紹了VisualUnit的功能特色,然后詳細(xì)介紹了使用該工具構(gòu)建Linux項(xiàng)目測(cè)試工程的方法,最后對(duì)使用過程中的技巧和使用過程中發(fā)現(xiàn)的工具本身的問題進(jìn)行了總結(jié)和分析。該工具已經(jīng)應(yīng)用到了多個(gè)項(xiàng)目的測(cè)試中并取得了良好效果。

        可視化測(cè)試;嵌入式系統(tǒng);單元測(cè)試;白盒測(cè)試;測(cè)試工程;測(cè)試工具

        1 引言

        伴隨著嵌入式軟件行業(yè)的規(guī)模壯大并逐步成熟,嵌入式軟件測(cè)試也在不斷發(fā)展,而嵌入式Linux就是其中的佼佼者[1]。從最初的開發(fā)人員逐行調(diào)試向越來越規(guī)范化、流程化的方向發(fā)展。其活動(dòng)過程也變得越來越復(fù)雜,如果不借助測(cè)試工具,則不僅效率低下、工作量巨大,甚至可能出現(xiàn)無法解決的問題,導(dǎo)致無法進(jìn)行測(cè)試[2]。而單元測(cè)試又對(duì)測(cè)試人員的從業(yè)素質(zhì)提出了更高要求。鑒于以上問題,利用一套好的單元測(cè)試工具來幫助軟件測(cè)試人員提高工作效率和工作質(zhì)量是非常必要的[3]。

        Visual Unit(簡(jiǎn)稱VU)是由廣州凱樂軟件公司研發(fā)的一款C/C++單元測(cè)試、可視編程工具[4]。對(duì)于軟件開發(fā)來說,其支持eTDD開發(fā)模式(易行測(cè)試驅(qū)動(dòng)開發(fā)),能夠提升開發(fā)人員代碼的質(zhì)量及開發(fā)效率;對(duì)于軟件測(cè)試來說,它可以完成100%的語句、條件、分支、路徑覆蓋,并提供詳盡的測(cè)試報(bào)告和測(cè)試數(shù)據(jù)[5]。

        2 功能特色

        VU提供了以下一些特色功能:

        (1)自動(dòng)生成樁代碼、驅(qū)動(dòng)代碼、用例代碼和用例框架;

        (2)使用表格編輯測(cè)試用例數(shù)據(jù);

        (3)提供依據(jù)有效值范圍、分段點(diǎn)、指定組合等方式生成用例;

        (4)提供底層函數(shù)輸入、局部靜態(tài)變量及終端模擬功能;

        (5)提供用例設(shè)計(jì)器,自動(dòng)找出遺漏用例、邊界用例,實(shí)現(xiàn)全面、高效的覆蓋;

        (6)支持內(nèi)部輸出的自動(dòng)判斷。

        3 環(huán)境搭建

        對(duì)于Linux項(xiàng)目來說,為了提供交叉編譯環(huán)境,必須先安裝Cygwin。

        完整的Cygwin可以從官網(wǎng)進(jìn)行下載,目前有12G,這里使用VU技術(shù)支持提供的較低版本,它只包含VU需要使用的庫(kù)文件和頭文件等內(nèi)容,只有120M左右,安裝過程如圖1所示。

        圖1 cygwin安裝方法

        安裝完成后,會(huì)形成一個(gè)C:cygwin目錄文件夾。

        4 構(gòu)建VU工程

        這里,用某型通信控制器的一部分源代碼為例,來說明構(gòu)建Linux項(xiàng)目測(cè)試工程的方法。

        這也是VU的一個(gè)特點(diǎn),只要提供一個(gè)能編譯通過的C/C++文件,就可以使用它進(jìn)行單元測(cè)試,這就為某些大型項(xiàng)目在集成代碼之前進(jìn)行單元測(cè)試提供了基礎(chǔ),也為測(cè)試工程師從某些大型項(xiàng)目中挑選測(cè)試價(jià)值高的部分代碼進(jìn)行測(cè)試提供了有效手段[6]。

        第二步,啟動(dòng)VU4,選擇Linux項(xiàng)目模板,如圖2所示。

        圖2 項(xiàng)目模板選擇

        然后,在“常規(guī)”面板中的“產(chǎn)品項(xiàng)目根目錄”中選擇需要測(cè)試的項(xiàng)目源文件,如圖3所示。

        其它選擇默認(rèn),一直“下一步”到VU自動(dòng)進(jìn)行項(xiàng)目編譯,可以得到如圖4所示的編譯結(jié)果:

        圖3 項(xiàng)目源文件選擇

        圖4 初次編譯結(jié)果

        5 解決編譯問題

        由于Cygwin、Linux、VU4這三個(gè)軟件的版本均較多,所以,它們之間兼容性很差。

        同時(shí),VU是不能指定編譯器的,它使用VC6-Mini編譯器來編譯Linux項(xiàng)目,會(huì)產(chǎn)生很多編譯問題,解決這些問題是單元測(cè)試能做得下去的前提[7]。

        切換到Build Error界面,先來看第一個(gè)錯(cuò)誤,如圖5所示。

        可以看到,錯(cuò)誤類型是:外部申明函數(shù)clock_gettime()的類型有沖突。由于它是一個(gè)外部申明函數(shù),其功能顯然并不會(huì)影響對(duì)這個(gè)C文件進(jìn)行單元測(cè)試,所以,解決問題的方式是:直接屏蔽該行代碼,使用VU的自動(dòng)生成莊代碼功能來替代這個(gè)函數(shù)。如圖6所示。

        圖5 類型沖突錯(cuò)誤

        圖6 屏蔽外部函數(shù)

        重新編譯后,該錯(cuò)誤消失,重新編譯得到結(jié)果,如圖7所示。

        圖7 修改源文件代碼

        直接在測(cè)試文件中增加預(yù)處理命令#include<linux/ip.h>,重新編譯后,可以看到該類型的錯(cuò)誤消失了,得到圖8所示的錯(cuò)誤報(bào)告。

        圖8 符號(hào)未定義錯(cuò)誤

        這是一個(gè)符號(hào)未定義錯(cuò)誤,AF_PACKET這個(gè)符號(hào),可以采用上面的方法,從.h文件里面找到這個(gè)符號(hào)的定義,然后添加這個(gè)頭文件。然而,VU還提供一種更簡(jiǎn)單的解決方案,找到這個(gè)常量的定義之后,直接在測(cè)試文件中定義這個(gè)常量,這是為了避免在包含了這個(gè)符號(hào)定義的頭文件之后,會(huì)引出更多的頭文件包含,由于第5節(jié)開篇所說的原因,可能會(huì)引起更多的編譯錯(cuò)誤,使單元測(cè)試沒法進(jìn)行下去。而直接定義這個(gè)常量不會(huì)影響到測(cè)試結(jié)果,所以,這是一個(gè)比較好的解決方式。如圖9所示。

        圖9 修改測(cè)試文件

        保存之后重新編譯,這個(gè)錯(cuò)誤類型消失了,但是,會(huì)出現(xiàn)亂碼提示的錯(cuò)誤信息。這個(gè)時(shí)候,可以采用一種比較暴力的解決方式。首先,分析一下源代碼,可以看出,這行語句是屬于某一個(gè)語句塊的中間代碼,它并不包含任何的判斷/條件,那就意味著,屏蔽這行代碼之后,不會(huì)對(duì)這個(gè)函數(shù)的單元測(cè)試過程和結(jié)果造成任何影響;其次,這只是一個(gè)單獨(dú)的錯(cuò)誤,屏蔽它的工作量很小,不需要整篇代碼去查找類似的錯(cuò)誤并且作屏蔽工作,所以,可以直接屏蔽代碼,然后重新編譯??梢钥吹剑@個(gè)錯(cuò)誤已經(jīng)消失了,并且沒有引入新的錯(cuò)誤,如圖10-11所示。

        圖10 無效代碼錯(cuò)誤

        圖11 無效代碼錯(cuò)誤

        現(xiàn)在報(bào)告的3個(gè)錯(cuò)誤類型雖然不一樣,但是其實(shí)質(zhì)是一樣的,都是由于中間屏蔽了部分測(cè)試代碼,造成這些測(cè)試代碼無效,那么,既然是無效的測(cè)試代碼,直接刪除就行了。將以上3個(gè)錯(cuò)誤報(bào)告出現(xiàn)的測(cè)試代碼刪除后,重新編譯,得到如圖12所示的結(jié)果。

        圖12 得到正確結(jié)果

        至此,表示編譯鏈接順利通過,已經(jīng)可以開始表格驅(qū)動(dòng)數(shù)據(jù)的測(cè)試用例設(shè)計(jì)了。

        6 VU本身的問題

        通過這個(gè)過程,可以總結(jié)出VU本身存在的一些BUG或者是使用上不太方便的地方,同時(shí),在實(shí)際使用過程中,還發(fā)現(xiàn)一些VU存在的問題,下面分別列舉:

        (1)編譯結(jié)果的錯(cuò)誤提示中有亂碼。

        (2)不支持自選編譯器,所有的嵌入式項(xiàng)目默認(rèn)都使用VC-Mini編譯器。

        (3)測(cè)試VS系列項(xiàng)目時(shí),使用導(dǎo)入工程文件的方式導(dǎo)入項(xiàng)目數(shù)據(jù)會(huì)丟失resouce.h文件。

        (4)VU的多文件搜索功能不能準(zhǔn)確定位查找目標(biāo)。

        (5)VU可能會(huì)自動(dòng)導(dǎo)入多余的LIB庫(kù)。

        7 結(jié)束語

        綜合來講,VU具備兩個(gè)功能,其一是支持eTDD(易行測(cè)試驅(qū)動(dòng)開發(fā)),其二是支持各種嵌入式項(xiàng)目、Linux項(xiàng)目、VC系列項(xiàng)目等的C/C++單元測(cè)試,且其覆蓋標(biāo)準(zhǔn)為目前單元測(cè)試中最嚴(yán)格的歐美航空標(biāo)準(zhǔn)——MC/DC覆蓋[8]。雖然其本身還存在很多BUG,對(duì)Linux項(xiàng)目的支持也不是很好,但是,所有的問題VU基本都提供了對(duì)應(yīng)的解決方法,使得單元測(cè)試可以做得下去,較好的解決了單元測(cè)試“落地”的問題。同時(shí),對(duì)于一直以來困擾企業(yè)單元測(cè)試實(shí)踐的幾個(gè)核心問題,諸如:編寫測(cè)試代碼花銷較高、高標(biāo)準(zhǔn)的測(cè)試覆蓋難以實(shí)現(xiàn)等等,都提供了對(duì)應(yīng)的解決方法,使得其對(duì)提高代碼質(zhì)量和開發(fā)效率及測(cè)試效率、降低測(cè)試成本有很大的促進(jìn)作用。

        [1]余艷.軟件單元測(cè)試技術(shù)研究[D].武漢:華中科技大學(xué),2004. Yu Yan.Software unit testing technology research[D].Wuhan: HuazhongUniversityofScience and Technology,2004.

        [2]黃錚.基于Junit的自動(dòng)單元測(cè)試環(huán)境開發(fā)及應(yīng)用研究[D].上海:上海交通大學(xué),2005. Huang Zheng.Based on the development and application of the automatic test environment unit Junit[D].Shanghai: Shanghai JiaoTongUniversity,2005.

        [3]豐勵(lì).單元測(cè)試技術(shù)研究與應(yīng)用[D].武漢:華中師范大學(xué),2008.Feng Li.Research and application of unit testing technology [D].Wuhan:HuazhongNormal University,2008.

        [4]陳靜.單元測(cè)試在軟件開發(fā)過程中的作用[J].艦船電子對(duì)抗2006,6(4):31-32. Chen Jing.The role of unit testing in software development [J].shipboard electronic warfare 2006,6(4):31-32.

        [5]聚光科技.單元測(cè)試指導(dǎo)手冊(cè)[J].聚光科技股份有限公司,2010,13(1):19-20. Focusing technology.Unit test guidance manual[J].spotlight Polytron Research ofTechnologies Inc,2010,13(1):19-20

        [6]王陳,左雪梅,黃燁明.實(shí)時(shí)嵌入式系統(tǒng)平臺(tái)自動(dòng)測(cè)試工具[J].計(jì)算機(jī)應(yīng)用,2004,23(29):7-8. Wang Chen,Zuo Xuemei,Huang Yeming.Automatic testing tool for real-time embedded system platform[J].computer application,2004,23(29):7-8.

        [7]CemKamer,Jack FaIk,HungQuoc Nguye,著.計(jì)算機(jī)軟件測(cè)試[M].王峰,陳杰,喻琳,譯.北京:機(jī)械工業(yè)出版社2004. Cem Kamer,Jack FaIk,Hung Quoc Nguyen Write,.Computer software testing[M].Wang Feng,Chen Jie,Yu Lin translation.Beijing:Mechanical IndustryPress,2004.

        [8]趙斌.軟件測(cè)試技術(shù)經(jīng)典教程[M].北京:科學(xué)出版社,2007. Zhao Bin.Software testing technology classic tutorial[M]. Beijing:Science Press,2007.

        Research on Linux Project Unit Testing Method Based on VisualUnit

        Tang Yuechuan,Peng Rufeng,Tu Xiaoli
        (Chongqing Jinmei Communication Co.,Ltd.,Chongqing 400030,China)

        This article firstly introduces basic features of VisualUnit,and then particularly details the methods of building Linux project test engineering by the tool.Finally,the author summarizes and analyses techniques and problems of the tool in using.The tool is applied to project tests and achieves good results.

        Visual testing;Embedded system;Unit test;White-box test;Test project;Test instrument

        10.3969/j.issn.1002-2279.2017.02.012

        TP311

        B

        1002-2279-(2017)02-0052-04

        唐躍川(1983-),男,重慶市人,軟件工程碩士,主研方向:軟件測(cè)試。

        2016-10-25

        猜你喜歡
        單元測(cè)試用例軟件測(cè)試
        UML用例模型中依賴關(guān)系的比較與分析
        基于OBE的軟件測(cè)試課程教學(xué)改革探索
        聯(lián)鎖軟件詳細(xì)設(shè)計(jì)的測(cè)試需求分析和用例編寫
        從出土文獻(xiàn)用例看王氏父子校讀古書的得失
        EXCEL和VBA實(shí)現(xiàn)軟件測(cè)試記錄管理
        電子制作(2018年16期)2018-09-26 03:27:18
        關(guān)于軟件測(cè)試技術(shù)應(yīng)用與發(fā)展趨勢(shì)研究
        軟件測(cè)試工程化模型及應(yīng)用研究
        一年級(jí)上冊(cè)第五單元測(cè)試
        一年級(jí)上冊(cè)一、二單元測(cè)試
        第五單元測(cè)試卷
        av男人操美女一区二区三区| 巨茎中出肉欲人妻在线视频| 乱色熟女综合一区二区三区| 高潮毛片无遮挡高清免费| 乱色视频中文字幕在线看| 99久久精品国产一区色| 亚洲网站一区在线播放| 国产av一区二区三区天堂综合网| 老师脱了内裤让我进去| 乱子伦av无码中文字幕| 亚洲av成人一区二区三区不卡| 国产性感午夜天堂av| www国产亚洲精品久久麻豆| 亚洲 自拍 另类小说综合图区| 中文乱码人妻系列一区二区| 欧美片欧美日韩国产综合片| 国产愉拍91九色国产愉拍| 永久免费毛片在线播放| 蜜臀av性久久久久蜜臀aⅴ| 乱子伦av无码中文字幕| 国产人妖一区二区av| 亚洲国产精品婷婷久久| 日韩av激情在线观看| 国产欧美亚洲精品a| 亚洲无码图| 全国一区二区三区女厕偷拍| 亚洲国产亚综合在线区| 亚洲精品无码不卡在线播放he| 五月婷婷激情六月| 国产精品午夜福利天堂| 亚洲人成在久久综合网站| 色播亚洲视频在线观看| 国产精品久久久久免费a∨| 在线观看中文字幕一区二区三区| 精品极品一区二区三区| 肉色欧美久久久久久久免费看| 亚州少妇无套内射激情视频| 欧美亚洲国产精品久久久久| 日韩中文字幕熟女人妻| 亚洲一区二区三区四区五区黄| 亚洲综合色自拍一区|