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