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

基于IBM RTRT的嵌入式軟件單元測試

2013-04-12 00:00:00汪萍萍,洪濤,錢曉耀,葉嘉義
教育教學論壇 2013年27期

摘要:單元測試是對嵌入式軟件進行測試的最低級別的活動,是保障整個測試效果、保證產品質量的基礎。RTRT(Rational Test RealTime)是IBM Ratioanl提供的典型嵌入式軟件代碼級自動化測試工具,可同時對宿主機和目標機進行測試和調試,自動生成測試腳本、測試樁和測試報告。通過研究應用表明利用RTRT進行嵌入式軟件單元測試實現自動化,能大量減少測試工作量,有效提高測試效率和軟件質量。

關鍵詞:單元測試;嵌入式軟件;RTRT

信息技術的飛速發展帶動在嵌入式系統中軟件越來越多地取代硬件的功能,研究嵌入式軟件測試技術用以保證軟件質量成為近年來關注的熱點。單元測試作為軟件測試過程中的第一階段,是軟件測試的基礎,效果會直接影響后期測試;另外,從修復軟件缺陷與花費的成本關系考慮,在單元測試階段修復缺陷將比在后一個階段發現缺陷節約5~10倍的成本,可見無論從質量還是成本的角度單元測試都是非常關鍵的。但在實際測試中,僅依靠人工編寫函數并統計分析結果的測試方法已不能滿足測試準確性和測試效率的要求,要引進自動化的測試工具。RTRT是一個跨平臺組件和運行時分析測試工具,支持測試的各個階段,其單元測試自動生成測試用例模板,自動生成測試樁程序,自動運行測試程序,自動生成測試報告。

一、單元測試基本理論

(一)單元測試定義

單元測試是對每個最小的軟件模塊進行的正確性檢驗的測試,在于發現各模塊內部可能存在的各種差錯。包含模塊接口測試、局部數據結構測試、路徑測試、錯誤處理測試和邊界測試,依據詳細設計說明書和源程序清單,從程序的內部結構出發設計測試用例。主要采用白盒測試的測試用例,輔之以黑盒測試,使之對任何合理和不合理的輸入,都能鑒別和響應。

(二)單元測試環境

單元是軟件的基本組成模塊,但本身不是一個獨立的程序,在考慮測試模塊時,同時要考慮它和外界的聯系,必須為每個單元測試開發驅動模塊和樁模塊。驅動模塊相當于被測模塊的主程序,它接收測試數據,把這些數據傳送給被測模塊,然后輸出實測結果。樁模塊是指用來替代被測模塊調用的子模塊。所以被測模塊、與它相關的驅動模塊及樁模塊,同時包括測試用例是共同構成一個單元測試測試環境必需的要素。基于交叉開發環境,嵌入式軟件單元測試環境分為基于宿主機和目標機環境兩種。宿主機中單元測試與通用軟件測試相同。目標機中的單元測試被測模塊運行在目標機中,所有驅動模塊和被測模塊的數據傳遞都需要網線或者串口線完成,測試工具還要將測試結果再傳送到宿主機中。單元測試都可以在宿主機平臺完成,對特別指定在目標機中進行的測試必須在目標機完成。

(三)單元測試的覆蓋評測

單元測試中主要的評價方法是覆蓋評測,指所測試的源代碼占代碼總數的百分比。為了保證軟件代碼都被執行到,防止從不執行到的代碼存在潛在的缺陷,導致產品失效。主要包括語句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋等。語句覆蓋指設計較少的測試用例,使被測程序中每個語句至少執行一次;判定覆蓋,即程序中每個判定的每個可能的結果都應該至少執行一次;條件覆蓋,要求程序中每個判定的條件的所有可能值至少執行一次。由上述內容可知,一個完整的單元測試若完全利用人工來執行,則需要開發相應的測試驅動和樁程序,根據需求設計不同測試用例或大量測試用例組合,在宿主機和目標機環境下運行測試程序,判斷測試用例是否正確,是否達到需要的測試覆蓋率,最后編寫測試報告。在代碼修改的情況下,還要進行回歸測試。測試過程比較繁瑣且不受控,這導致很多程序員迫于時間和成本壓力,逃避單元測試,結果本應單元測試解決的軟件缺陷在后續的測試中較難查找和定位,花費更多的時間和成本來修復問題。自動化測試工具解決了由傳統手工測試帶來的困擾,典型的嵌入式軟件測試工具包括CodeTest、Testbed和RTRT,即Rational Test RealTime的首字母縮寫,具有強大的測試分析功能。

二、IBM RTRT嵌入式軟件單元測試

(一)RTRT簡介

RTRT是IBM Ratioanl提供的嵌入式軟件代碼級自動化測試工具集,成功地提供了自動化的、可重復的、可追蹤判定的、標準化的測試,對提高嵌入式軟件可靠性和開發測試速度起著巨大的幫助作用。所具有的突出特性如下:

1.支持廣泛的測試功能,覆蓋測試的各個階段,包括靜態度量、代碼規則檢查、單元測試、內存分析、覆蓋率分析、代碼運行時跟蹤、性能分析和基于消息的系統測試。

2.為單一的測試環境中的宿主機和目標機進行自動化的單元測試、運行時分析。

3.自動創建和部署單元的測試樁模塊和測試驅動程序。

4.繪制內存和性能曲線并對運行時追蹤進行可視化顯示。

5.支持代碼的靜態分析和基于MISRA標準的代碼規則檢查。

6.直接在目標機上進行測試和分析,支持所有從8位微芯片到64位RTOS。

(二)RTRT單元測試工作原理分析

RTRT單元測試工具支持C、C++、Jave和Ada語言編寫的代碼,提供全自動化的解決方案,大幅度提高了測試效率。分析RTRT的單元測試工作原理如下圖1(以.c文件為例)。

圖1顯示了RTRT單元測試時測試程序經編譯、鏈接、運行到測試報告產生的整個過程。開發人員在自動生成的測試腳本的編輯環境中根據需求開發測試用例,設計輸入和預期輸出。在模擬環境或目標機環境下自動運行測試程序,測試報告產生器自動生成測試報告,展示通過或失敗的測試用例和代碼覆蓋率分析報告,發現錯誤可直接修改,自動進行回歸測試。RTRT的變量測試包括所有的全局變量、函數間傳遞參數和函數返回值。RTRT基于TDP的目標機部署技術,通過對該技術進行定制可以支持全面的嵌入式目標系統,使RTRT可以同時對宿主機和目標機進行測試和調試,并對兩者進行有效協調。RTRT單元測試階段支持絕大多數項目要求的語句覆蓋率、決策覆蓋率、MC/DC覆蓋率。

(三)基于RTRT的單元測試步驟設計

通過以上分析結合幾個項目單元測試之后,我們總結了使用RTRT進行單元測試的基本步驟如下圖2所示。

三、RTRT單元測試實例

以電器嵌入式軟件豆漿機代碼為例。目前電器產品由傳統機械式控制向嵌入式的智能化控制轉型,電器產品的安全也不僅限于傳統的電氣、電磁、機械及環境等方面,軟件也成為需要檢測的重點。選取豆漿機Relay單元,主要功能為繼電器控制。部分代碼如下:

void Relay(void)

{〓if(irq_r)〓〓〓〓//處理繼電器動作請求

{〓if(lr_on)〓〓〓//轉換繼電器開

{

if(!f_lr_on)

{

〓〓f_lr_on=1;

〓〓hms3=2;〓〓〓〓//延時200ms

〓〓t2ms=0;

〓〓〓}

〓else

〓{

〓〓〓〓if(!hms3)〓〓//轉換繼電器確認打開

〓〓〓…………….

}

RTRT自動生成relay函數的測試例用設計模板,包含函數中出現的每個全局變量,編寫上述if語句為真的測試用例,只需要編寫測試輸入與預期輸出。如下:

VAR irq_r,〓init = 1,〓ev=init

VAR lr_on,〓init = 1,〓ev=init

VAR f_lr_on,,init=0,ev=1

VAR hms3,init=2,ev=init

VAR 2ms,init=0,ev=init

預期值與實際測試運行結果比較,生成測試報告會自動判斷測試用例是否通過,可根據代碼路徑的覆蓋要求,在測試模板中設計不同測試用例,達到需要的覆蓋率,并在測試覆蓋率報告中查看覆蓋率百分比。為獲得可靠的代碼質量保證,繼續根據未執行到的代碼情況,編寫合適的測試用例,使代碼覆蓋率得以提高。

四、總結

本文首先分析了嵌入式軟件單元測試的基本理論,測試過程復雜,工作量較大,所以在實際的測試中,完全依靠人力確保單元測試有效實施存在困難,自動化的測試工具RTRT提供了全套自動的解決方案,自動生成測試腳本、測試程序、樁,減少了測試工作量,能自動進行回歸測試,并且自動生成測試報告,以圖形的形式使測試結果一目了然。不僅提高了測試效率,而且保證了測試質量。強大的TDP定制使RTRT可以支持大多數嵌入式產品的軟件測試,在嵌入式領域已逐漸被廣泛應用。

參考文獻:

[1]蔡建平.嵌入式軟件測試實用技術[M].北京:清華大學出版社,2010.

[2]姜龍,王冬星.使用IBM Rational Test RealTime進行嵌入式軟件測試[J].電腦學習,2010,32(3):135-136.

[3]徐潤德,陳亞,趙慕奇.基于LDRA Testbed的軟件單元測試[J].海軍航空工程學院學報,2011,26(3):356-360.

[4]http://www-306.ibm.com/software/awdtools/realtime.

[5]馬可.嵌入式車載電子系統軟件測試方法的研究與應用[D].重慶:重慶大學,2008.

基金項目:浙江省大學生科研創新團隊資助項目(編號:2012R409046);2011國家公益性質檢行業科研專項資助項目(編號:201110059);2012國家公益性質檢行業科研專項資助項目(編號:201210101)

作者簡介:汪萍萍(1987-),女,碩士在讀,研究方向:嵌入式軟件測試技術。

主站蜘蛛池模板: 国产精品美女免费视频大全 | 丰满人妻中出白浆| 91精品久久久无码中文字幕vr| 国产成人亚洲无吗淙合青草| 在线日韩日本国产亚洲| 黄色不卡视频| 精品1区2区3区| 婷婷色中文| 91娇喘视频| 在线免费观看AV| 欧美一级高清免费a| 欧美在线导航| 日韩欧美网址| 99精品视频在线观看免费播放| 国产在线91在线电影| 久久夜夜视频| 国产99视频免费精品是看6| 国产福利免费视频| 中文字幕免费播放| 影音先锋亚洲无码| 国产精品一区不卡| 色色中文字幕| 91精品啪在线观看国产91| 九九久久99精品| 91免费在线看| 77777亚洲午夜久久多人| 狼友av永久网站免费观看| 无码高潮喷水专区久久| 亚洲网综合| 国产精品伦视频观看免费| 欧美午夜在线观看| 一本色道久久88| 97在线免费视频| 性喷潮久久久久久久久 | 国产精品va| 日韩免费视频播播| 日韩欧美91| 国产视频 第一页| 色妞www精品视频一级下载| 国产成人久视频免费| 国内精品免费| 99热这里只有精品在线播放| 国产精品综合久久久| 欧美在线导航| 亚洲天堂在线视频| 超清无码熟妇人妻AV在线绿巨人| 在线另类稀缺国产呦| 91尤物国产尤物福利在线| 亚洲成人动漫在线| 四虎国产精品永久一区| 国产69精品久久| 国产乱子伦一区二区=| 国产精品99久久久| 91激情视频| 99这里精品| 四虎永久在线精品影院| 国产丝袜第一页| 国产成人精品三级| 亚洲最黄视频| 一级片免费网站| 一级全免费视频播放| 欧美国产日产一区二区| 国产网站黄| 色老头综合网| 国产精品成人啪精品视频| 亚洲欧美一区二区三区蜜芽| 色婷婷狠狠干| 精品五夜婷香蕉国产线看观看| 亚洲精品福利网站| 1769国产精品视频免费观看| 久久福利网| 色婷婷国产精品视频| 久草网视频在线| 爽爽影院十八禁在线观看| 中文字幕日韩久久综合影院| 亚洲日本中文字幕乱码中文 | 白浆视频在线观看| 免费黄色国产视频| 91在线精品麻豆欧美在线| 91色在线视频| 亚洲性日韩精品一区二区| 亚洲综合日韩精品|