黎劍愛(ài) 許喬娜 萬(wàn)澤超
摘 要:在當(dāng)今數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)快速發(fā)展的時(shí)代,嵌入式系統(tǒng)已廣泛滲透到科學(xué)研究,工程設(shè)計(jì),工業(yè)過(guò)程監(jiān)控,交通管理以及人們?nèi)粘I畹姆椒矫婷妗;诤诵木W(wǎng)絡(luò)的運(yùn)營(yíng)商級(jí)設(shè)備也是一種嵌入式系統(tǒng),并且對(duì)這種系統(tǒng)進(jìn)行測(cè)試非常具有挑戰(zhàn)性。嵌入式軟件在航空電子系統(tǒng)中變得越來(lái)越重要,代碼尺寸也逐漸擴(kuò)大。完美的軟件測(cè)試已成為確保航空電子軟件質(zhì)量的重要手段。自動(dòng)化技術(shù)的引入可以縮短測(cè)試時(shí)間并確保測(cè)試質(zhì)量。
關(guān)鍵詞:嵌入式安全平臺(tái);軟件自動(dòng)化測(cè)試;方法應(yīng)用
一、嵌入式安全平臺(tái)及軟件自動(dòng)化測(cè)試介紹
嵌入式安全平臺(tái)是基于應(yīng)用程序并基于計(jì)算機(jī)技術(shù)的專用計(jì)算機(jī)系統(tǒng)。軟件和硬件可以定制,以滿足應(yīng)用系統(tǒng)對(duì)功能,可靠性,成本,體積和功耗的嚴(yán)格要求。嵌入式軟件的開(kāi)發(fā)速度一直高于軟件產(chǎn)業(yè)的發(fā)展速度和全球的發(fā)展速度。它在國(guó)內(nèi)工業(yè)和世界上變得越來(lái)越重要,已超過(guò)三分之一。嵌入式安全平臺(tái)最典型的特征是它實(shí)際上與人們的日常生活息息相關(guān)。任何普通人都可能擁有使用嵌入式技術(shù)的各種電子產(chǎn)品,就像之前使用MP3,PDA一樣小。微型數(shù)字設(shè)備足以增加信息,智能家電等。更具體地說(shuō),嵌入式安全平臺(tái)是一種有效的計(jì)算機(jī)保護(hù)系統(tǒng),可以避免惡意攻擊。在您的系統(tǒng)中添加篡改檢測(cè)以保護(hù)敏感數(shù)據(jù)和密鑰,當(dāng)然也可以保護(hù)您的IP和R&D投資免于在未經(jīng)授權(quán)的情況下被克隆或使用。嵌入式安全平臺(tái)的安全管理器與微控制器協(xié)同工作以保護(hù)您的信息,并且身份驗(yàn)證設(shè)備具有強(qiáng)大的加密驗(yàn)證功能。自動(dòng)化測(cè)試可以更好地利用測(cè)試資源,測(cè)試速度快,效率高,可以縮短軟件測(cè)試周期,提高測(cè)試效率,從而縮短測(cè)試時(shí)間,彌補(bǔ)大型項(xiàng)目的手動(dòng)測(cè)試的效益不足。在許多嵌入式測(cè)試項(xiàng)目中,動(dòng)態(tài)測(cè)試通常是手動(dòng)完成的。事實(shí)上,重復(fù)測(cè)試工作的很大一部分可以自動(dòng)實(shí)現(xiàn)。自動(dòng)化技術(shù)已集成到嵌入式軟件密鑰測(cè)試過(guò)程中。它對(duì)嵌入式軟件的質(zhì)量,成本和周期產(chǎn)生重大影響。今天的大多數(shù)自動(dòng)化測(cè)試工具都是軟件功能測(cè)試工具(也稱為錄制回放工具),例如Rational的Robot,Mercury的WinRunner,這些工具價(jià)格昂貴,可自動(dòng)捕獲,檢測(cè)和重放用戶交互。減少測(cè)試人員的重復(fù)工作。但是,配方能力薄弱,不能滿足設(shè)備嵌入式軟件產(chǎn)品測(cè)試環(huán)境的要求。
二、嵌入式平臺(tái)自動(dòng)化測(cè)試方法的應(yīng)用
2.1 測(cè)試總線及硬件接口
在嵌入式軟件自動(dòng)化測(cè)試系統(tǒng)中,測(cè)試總線是非常重要的組成部分,擔(dān)負(fù)著至關(guān)重要的作用。測(cè)試總線的主要功能是對(duì)測(cè)試數(shù)據(jù)進(jìn)行傳送,同時(shí)還能夠傳送控制指令,是嵌入式軟件自動(dòng)化測(cè)試系統(tǒng)中的中樞神經(jīng)。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展以及對(duì)各個(gè)領(lǐng)域的深入滲透,自動(dòng)化測(cè)試領(lǐng)域的總線技術(shù)也取得了極大的進(jìn)步。其主要發(fā)展歷程經(jīng)歷了通用接口總線、VXI、PXI 以及基于 LAN 接口面向儀器的擴(kuò)展等幾個(gè)階段。在嵌入式軟件自動(dòng)化測(cè)試系統(tǒng)中,包括多種硬件平臺(tái),用于連接各硬件平臺(tái)的硬件接口具有重要的作用。目前,測(cè)試領(lǐng)域一直在致力于建立一種標(biāo)準(zhǔn)化接口,使硬件接口實(shí)現(xiàn)規(guī)范化和標(biāo)準(zhǔn)化發(fā)展。美國(guó)國(guó)防部對(duì)自動(dòng)測(cè)試系統(tǒng)已制定了相關(guān)標(biāo)準(zhǔn),在該標(biāo)準(zhǔn)中,對(duì)硬件接口標(biāo)準(zhǔn)也做出了相應(yīng)的規(guī)定和規(guī)范。
2.2 嵌入式系統(tǒng)及自動(dòng)化測(cè)試的實(shí)現(xiàn)
嵌入式系統(tǒng)通常使用C語(yǔ)言實(shí)現(xiàn),并且多個(gè)任務(wù)一起完成不同的功能,通常作為事件驅(qū)動(dòng)程序。嵌入式系統(tǒng)的重點(diǎn)是所有任務(wù)狀態(tài)是否正確,以及是否對(duì)事件有準(zhǔn)確而快速的響應(yīng),這也是測(cè)試的重點(diǎn)。對(duì)于其他方面,例如人機(jī)界面可以通過(guò)其他測(cè)試方法完成,但自動(dòng)化測(cè)試往往不是很有效。每項(xiàng)任務(wù)都有一個(gè)唯一的條目。如果您提供所有可能的輸入,則可以通過(guò)此條目覆蓋所有代碼。因此,應(yīng)根據(jù)各種輸入下的所有任務(wù)的狀態(tài)檢查狀態(tài)轉(zhuǎn)換是否合理。關(guān)鍵數(shù)據(jù)結(jié)構(gòu)是否可以保持正確以及是否可以正確地確保事件的處理。基于此,可以發(fā)現(xiàn)嵌入式系統(tǒng)的測(cè)試成為任務(wù)進(jìn)入功能的測(cè)試。此策略適用于與單元測(cè)試類似的方法,但仍存在根本差異。單元測(cè)試需要將功能接口中的所有功能實(shí)現(xiàn)為存根。關(guān)鍵目的是在函數(shù)內(nèi)部執(zhí)行邏輯測(cè)試,本文給出的自動(dòng)測(cè)試僅用于任務(wù)的輸入功能,只需要那些和設(shè)備。主要包括網(wǎng)絡(luò)設(shè)備,顯示設(shè)備,存儲(chǔ)設(shè)備和相關(guān)接口可以實(shí)現(xiàn)一堆。戰(zhàn)略實(shí)施主要包括:建立工程,配置工程,實(shí)施測(cè)試用例,構(gòu)建和運(yùn)行。它通過(guò)一種相當(dāng)簡(jiǎn)單的腳本語(yǔ)言實(shí)現(xiàn)測(cè)試用例,淡化測(cè)試用例的開(kāi)發(fā),并將測(cè)試用例測(cè)試代碼和堆棧編譯在一起生成可執(zhí)行文件,并直接運(yùn)行執(zhí)行文件,并進(jìn)行相應(yīng)的測(cè)試結(jié)果生成。因此,該解決方案不需要額外的硬件,只需很少的投資即可開(kāi)發(fā)測(cè)試用例,并且編譯和運(yùn)行所需的時(shí)間非常短。可以快速檢測(cè)代碼的邏輯,這使得自動(dòng)化測(cè)試對(duì)于嵌入式系統(tǒng)來(lái)說(shuō)具有很好的問(wèn)題處理。
2.3使用VectorCAST / C ++自動(dòng)化嵌入式C / C ++單元和集成測(cè)試
VectorCAST / C ++解析源代碼并使用代碼生成器自動(dòng)構(gòu)建測(cè)試代碼(pig函數(shù)和驅(qū)動(dòng)程序),以生成完整和可執(zhí)行的測(cè)試套件。構(gòu)建測(cè)試套件時(shí),可以使用VectorCAST / C ++構(gòu)建和執(zhí)行測(cè)試用例,顯示代碼覆蓋率并報(bào)告靜態(tài)檢查。測(cè)試數(shù)據(jù)和測(cè)試套件是獨(dú)立的,易于自動(dòng)化回歸測(cè)試,如下圖:
2.4嵌入式軟件自動(dòng)化黑盒測(cè)試技術(shù)
目前,自動(dòng)化黑盒測(cè)試技術(shù)主要包括基于記錄和回放的自動(dòng)測(cè)試技術(shù)以及數(shù)據(jù)驅(qū)動(dòng)的自動(dòng)測(cè)試技術(shù)。1)基于記錄和回放的自動(dòng)測(cè)試技術(shù)基于記錄和回放的自動(dòng)測(cè)試技術(shù)的步驟是:記錄腳本,腳本編輯(添加同步點(diǎn)和等待時(shí)間;添加檢查點(diǎn)),回放腳本(獲得相應(yīng)的結(jié)果)。代表工具是WinRunner。2)數(shù)據(jù)驅(qū)動(dòng)的自動(dòng)測(cè)試技術(shù)數(shù)據(jù)驅(qū)動(dòng)的自動(dòng)測(cè)試技術(shù)從數(shù)據(jù)文件中讀取輸入測(cè)試數(shù)據(jù),然后將其傳遞到測(cè)試腳本,測(cè)試腳本由測(cè)試程序控制腳本運(yùn)行。測(cè)試腳本是一種“驅(qū)動(dòng)程序”,一種自動(dòng)獲取數(shù)據(jù),輸入刺激并獲得測(cè)試結(jié)果和記錄的機(jī)制。在此過(guò)程中,將數(shù)據(jù)文件讀取,測(cè)試狀態(tài)和測(cè)試信息寫(xiě)入測(cè)試腳本,測(cè)試數(shù)據(jù)包含在數(shù)據(jù)文件中。通常,當(dāng)組織測(cè)試數(shù)據(jù)文件時(shí),根據(jù)數(shù)據(jù)模型對(duì)它們進(jìn)行分類,即建立數(shù)據(jù)模型以描述同一組測(cè)試用例。這些測(cè)試用例之間具有一定的關(guān)系,并且測(cè)試數(shù)據(jù)與被測(cè)對(duì)象的功能和結(jié)構(gòu)之間的關(guān)系有關(guān)。
三、結(jié)束語(yǔ)
自動(dòng)化測(cè)試技術(shù)仍處于開(kāi)發(fā)過(guò)程中,應(yīng)用范圍也有限。它僅適用于某些軟件功能的測(cè)試,有必要構(gòu)建自動(dòng)測(cè)試環(huán)境并為測(cè)試軟件準(zhǔn)備測(cè)試腳本。在當(dāng)前的嵌入式軟件測(cè)試領(lǐng)域,測(cè)試工程師的手動(dòng)測(cè)試仍處于主流,嵌入式平臺(tái)的自動(dòng)化測(cè)試仍然只是手動(dòng)測(cè)試的輔助手段,并不能完全取代手動(dòng)測(cè)試。
參考文獻(xiàn):
[1] 面向嵌入式系統(tǒng)自動(dòng)化測(cè)試平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[M]《新技術(shù)新產(chǎn)品》 2018.6
[2] 淺談Windows嵌入式平臺(tái)的測(cè)繪軟件開(kāi)發(fā)應(yīng)用[M]《計(jì)算機(jī)技術(shù)應(yīng)用》 2018.1.1
[3] 對(duì)嵌入式系統(tǒng)自動(dòng)化測(cè)試的方法研究[M]《科學(xué)與財(cái)富》2019.02
(作者單位:珠海格力電器股份有限公司)