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

嵌入式操作系統自動化測試方法研究

2022-11-26 10:02:20王國華許永建董晗方益棟
電子元器件與信息技術 2022年9期

王國華,許永建,董晗,方益棟

上海微小衛星工程中心,上海 201203

0 引言

近年來,隨著核高基[1]等重大科技專項的展開,我國基礎軟硬件發展的步伐越來越快,部分芯片和操作系統性能已經達到了和國際產品競爭的實力,也逐步形成了自己的軟硬件生態鏈[2-3],為國家的軍事裝備、企事業單位等提供了有力的支撐和保障。

隨著智能化的發展,嵌入式操作系統的應用也越來越廣泛,大到火箭衛星、小到個人電子產品,都可以見到嵌入式操作系統的身影。目前我國在各個領域很大程度上仍依賴國外的操作系統,如風河的VxWorks、蘋果的iOS以及谷歌的Android等。要實現裝備自給自足,有自己的操作系統是非常重要的一環。但是研發操作系統涉及的技術面較廣且過程漫長,保證操作系統的功能、性能、安全性、兼容性等符合使用需求十分重要。

軟件測試是提高嵌入式操作系統軟件質量的有效手段,軟件測試主要是通過對操作系統提供的功能、性能、接口、兼容性、強度等指標的考核,驗證操作系統是否滿足用戶使用的需要[4]。處于產品研制階段的操作系統,版本迭代頻繁,每一次的版本更新,都需要進行充分的測試,每一次的測試都需要將操作系統源碼和測試腳本進行編譯,在通過相關工具將鏡像下載到目標機執行,最后對執行結果進行分析,此過程工作量大,測試人員重復勞動,不但浪費了人力財力,測試充分性也得不到保證。測試的許多操作是重復性的,注重嚴格按照流程進行的動作,故測試在整個軟件研制過程中最容易進行自動化操作。但是目前對嵌入式操作系統自動化測試方法的探討并不多見。為了提高操作系統軟件測試效率,減輕人工操作強度,提升測試自動化水平,本文提出了一種嵌入式操作系統自動化測試方法,該方法利用Python腳本語言,結合版本控制工具、持續集成工具等,構建嵌入式操作系統自動化測試框架。保證嵌入式操作系統質量和可靠性。

1 軟件組成

1.1 嵌入式操作系統測試流程

嵌入式操作系統是一種廣泛用于工業制造、個人電子產品等領域的系統軟件,通常包括外設驅動、系統內核、通信協議等模塊,其開發環境與運行環境分離,宿主機安裝集成開發環境、調試工具等,在宿主機上進行代碼編寫、模塊裁剪、編譯等操作,最終生成可加載文件,通過串口、調試器、網絡等手段加載到目標機中運行,通過串口工具或網絡等對目標機進行控制和監視。這也導致了嵌入式操作系統測試與其他軟件測試的不同,如表1所示。

表1 嵌入式操作系統測試與其他軟件測試區別

嵌入式操作系統測試環境如圖1所示,主要包括宿主機、目標機、網絡設備、串口設備等。

圖1 嵌入式操作系統測試環境

在產品研發階段,操作系統測試流程一般如圖2所示,開發人員提交待測試軟件至版本控制服務器(如SVN、Git等);測試設計人員編寫測試腳本并入測試用例庫;測試執行人員準備測試環境,主要包括宿主機、目標機、電源、串口工具、網線、外設以及代碼加載工具(FTP、TFTP)等。同時從版本控制服務器和測試用例庫獲取最新軟件版本和測試腳本,在宿主機中的集成開發環境中進行編譯生成可加載鏡像,通過代碼加載工具等下載到目標機運行,并記錄測試結果,匯總超時等待、異常等未執行完成以及測試未通過用例。對未通過用例、異常用例以及超時用例進行分析,若為測試腳本問題,修改測試腳本并入庫,重新進行測試;若是軟件問題,則對問題進行詳細描述,將描述提交至問題庫,開發人員對問題進行閉環,進入下一輪迭代,直至問題歸零。最終對測試過程、環境、系統功能、性能、接口等指標滿足情況進行說明,形成階段測試總結報告。在產品研發初期,會涉及多輪軟件的測試過程,也就意味著需要多次重復操作,而上述過程中的代碼編譯、鏡像加載、測試結果分析等在整個測試過程中占用了很多時間,浪費了很多資源。

圖2 嵌入式操作系統測試過程

1.2 系統組成

針對上述問題,本文提出了自動化測試框架,能夠自主實現代碼更新監測、代碼編譯、鏡像加載、結果分析等功能,本框架主要包括持續集成服務器、仿真設備、測試控制主機、被測目標機、電源、版本控制服務器等組成,如圖3所示。

圖3 自動化測試框架

整個自動化測試過程都由“測試控制主機”進行統一管理,測試控制主機安裝有集成開發環境、串口工具、Python腳本等,因此所有和測試過程相關的程序都在“測試控制主機”上統一運行。

測試管理的流程有以下幾個步驟。

(1)測試人員在操作系統新版本提交之前,與開發人員、設計人員等進行溝通,確定測試范圍,通過修改配置文件選擇測試用例工程,即通過配置的方式或命令參數傳入的方式確定本次測試的被測軟件系統,以及本次測試所要執行的測試用例集。

(2)軟件開發人員提交代碼到版本控制服務器之后,持續集成工具檢測到代碼更新,從版本控制服務獲取被測軟件包并編譯,生成操作系統庫文件。

(3)安裝在測試控制主機上的Python腳本文件根據第一步配置的參數從測試用例源碼庫獲取最新的測試用例源碼,并與操作系統庫共同構建生成可加載鏡像文件,同時配置鏡像加載工具參數。

(4)測試調度,將對應的測試用例部署到具備測試條件的被測目標機上,啟動測試用例的執行,生成測試期待的輸入并記錄測試用例的輸出。

(5)測試人員判斷測試用例執行結束、超時、無響應等狀態,并收集測試用例輸出結果。

(6)測試人員匯總并分析所有測試用例的運行結果,生成測試報告。

2 設計與實現

2.1 工具的選取

2.1.1 版本控制工具

軟件在開發完成初期,可能面臨頻繁的版本迭代,此時最重要的問題就是軟件版本的控制,而版本控制的核心任務則是能否查閱歷史操作記錄和實現協同開發。版本控制能追蹤項目從開始到結束的過程,對編程人員而言,版本控制是團隊協作的橋梁,有助于大型程序的多人同步開發。借助版本控制,項目被分割為多個模塊,每個模塊分配給不同的人員并行進行,從而提高了整體編程效率。操作系統產品開發階段采用版本控制工具[5]進行軟件版本管理是避免版本混亂、進行數據備份、提高代碼質量、提高多人協同開發的效率,明確分工責任的有效途徑。主流的版本控制工具包括Git、SVN、HG、CVS等,其中SVN是一款開放源代碼的版本控制工具,具有目錄版本控制、版本歷史瀏覽、自動提交、分支管理、版本回退等功能,其速度快、安全性高、安裝簡單,可實現操作系統的代碼版本控制。

2.1.2 持續集成工具

持續集成是一種軟件開發過程中的連續動作,宗旨是避免集成問題,持續集成[6-8]強調開發人員提交了新代碼之后,立刻進行構建、測試。根據測試結果,我們可以確定新代碼和原有代碼能否正確地集成在一起。目前國內外主流的持續集成工具主要有Jenkins、CircleCI、Travis CI等,其中Jenkins自誕生之日起,至今已發展了近20年,是較為成熟的持續集成工具,從理論上講,可與任何類型的版本控制工具兼容,主要用于持續、自動地構建/測試軟件項目、監控外部任務的運行。

2.1.3 Python簡介

Python語言[9-10]誕生于上個世紀末,是一種解釋型語言,提供了高效的數據結構同時還能支持面向對象編程,能夠在Windows、Linux、macOS等操作系統中運行,其具有簡單易學、易讀、易維護、速度快、可移植性強等優點,同時具有大量的擴展庫,利用擴展庫可快速實現串口讀寫、文件解析等功能。在嵌入式操作系統測試腳本加載、過程監控、結果分析中使用Python語言進行設計,可以簡化開發過程,減少維護成本。

2.1.4 鏡像加載工具

嵌入式操作系統測試大多采用調試模式,即通過網絡、串口等將操作系統鏡像加載到目標機運行,通過串口進行控制以及結果查詢。通過網絡進行操作系統鏡像加載的手段有TFTP或FTP等,不同的目標板配置不同,如龍芯處理器一般采用PMON引導程序,支持TFTP工具進行引導,而PowerPC平臺一般采用FTP工具引導,較常用的TFTP工具是TFTPd32,該工具操作簡單、使用方便。作為TFTP服務端,提供操作系統鏡像加載功能。常用的FTP服務器軟件如FTPserver,工具小巧且無需安裝,此外也可利用嵌入式操作系統開發平臺本身提供的FTP功能,進行操作系統鏡像加載。

2.2 實現過程

首先對測試用例腳本做如下格式約定:在測試用例執行完成后輸出{project:xxx,test_case:yyy,result:TESTFAIL}或{project:xxx,test_case:yyy,result:TESTPASS}。其中“project:xxx”為測試工程,“test_case:yyy”為project工程下的測試用例,如果用例執行失敗則輸出“TESTFAIL”,否則輸出“TESTPASS”。工程內所有測試用例腳本執行完畢后輸出“Tests finished!”作為整個工程運行結束標志。此外,確保測試腳本其余位置不能出現上述描述,Python腳本會根據格式約定的內容進行測試腳本執行結果的統計以及測試是否正常結束。

編寫配置文件args.txt,配置文件用來指定測試用例鏡像加載時相關參數,其中宿主機IP指的是安裝了嵌入式操作系統開發環境的PC的網絡地址,目標機IP指的是運行操作系統鏡像的目標板網絡地址。串口設備用來對目標機進行控制以及測試結果的顯示等;workspace指定測試用例腳本所在工作空間,project指定需要測試的項目,此外還可設置波特率、目標板相關信息等。

#宿主機IP。

#例如:ipaddr=192.168.1.28;

#目標機IP(即目標板卡IP)。

#例如:ipaddr=192.168.1.28;

#變量serial指定串口設備。

#串口1:/dev/com1; 串口2:/dev/com2;......;

#例如:serial=/dev/com1;

#變量workspace指定工作空間目錄;

#例如:workspace=E:workspace;

#變量proj指定需要測試的項目。

#如果不指定該選項,則默認測試工作目錄下的所有項目。

#例如:proj=test_func test_perf test_strong test_safety test_elf;

#變量波特率,8641d 波特率是 9600;

baudrate=115200;

安裝版本控制工具到版本控制服務器,軟件開發人員開發完成代碼后提交最新版代碼至版本控制服務器;安裝持續集成工具到測試控制主機,工具持續監測操作系統版本是否有更新,若有則從版本控制服務器獲取最新版本并進行編譯,更新集成開發環境中的操作系統庫文件。

編寫Python腳本,掃描開發環境中的操作系統庫文件,判斷操作系統庫文件是否有更新,若有則從測試用例庫獲取最新測試用例,與操作系統二進制文件共同編譯生成可加載鏡像。編寫Python腳本讀取args.txt中的相關參數,配置FTP或TFTP工具中的加載參數,如IP地址信息、鏡像路徑信息、加載地址等。

安裝TFTP或FTP工具,用于在Python完成加載參數配置和代碼編譯后,將操作系統鏡像加載到目標機。

編寫Python腳本根據目標機輸出信息實時分析測試用例執行情況,判斷用例是否正常結束、超時、無響應等狀態,對長時間等待或無響應的用例及時做出相應處理,執行后續用例,直至測試用例全部執行完畢。

編寫Python腳本對輸出測試結果進行分析匯總,上報測試執行情況,提交測試問題,形成測試報告。同時為被測目標機清理測試環境并斷電。

Python腳本在首次編寫完成并運行正常后,后續測試無需修改。

在測試開始前將目標機與宿主機通過網線、串口線連接,修改網絡IP地址,使宿主機與目標機在相同網段內,確保網絡通暢;配置串口波特率、奇偶校驗位、數據位、停止位等參數,使串口通信正常;目標機連接電源、配合測試的仿真設備、硬件外設等,電源開始加電。

本測試框架的工作流程如圖4所示,其主要功能在于利用持續集成工具監測操作系統版本更新情況,完成操作系統鏡像自動化編譯,通過Python腳本控制TFTP或FTP工具完成鏡像自動加載,利用Python腳本對串口進行控制,實現測試過程控制、對結果自動分析等。其中,僅在選擇要測試的腳本動作上需進行人工操作,測試用例腳本編譯、鏡像加載、測試結果分析等步驟均可通過本框架自動執行,在一定程度上提高了嵌入式操作系統自動化測試水平,節約了人力成本。

圖4 框架工作流程

3 結語

本文針對嵌入式操作系統自動化測試方法進行了探討,分析了嵌入式操作系統的測試方法、測試過程、結果統計等方面。最終結合嵌入式操作系統測試現狀,提出了依據軟件加載工具、版本管理工具、持續集成工具以及Python語言的嵌入式操作系統自動化測試框架,該方法可實現測試腳本自動編譯、鏡像自動加載、測試自動執行、結果自動分析,測試過程無需人工干預,極大地減輕了測試人員的壓力,提高了自動化程度,為嵌入式操作系統自動化測試提供了良好的途徑。

主站蜘蛛池模板: 国产精女同一区二区三区久| 亚洲无线国产观看| 国产成人精品三级| 2020久久国产综合精品swag| 成人精品视频一区二区在线 | 蜜臀av性久久久久蜜臀aⅴ麻豆| 欧美黄色a| 免费中文字幕在在线不卡| 好紧太爽了视频免费无码| 精品亚洲国产成人AV| 国产精品女主播| 国产成人啪视频一区二区三区| 成人精品在线观看| 国产欧美中文字幕| 久久国产精品麻豆系列| 欧美成人免费一区在线播放| 国产全黄a一级毛片| 五月综合色婷婷| 四虎影视库国产精品一区| 99热这里只有精品在线播放| 亚洲国产清纯| 色婷婷亚洲综合五月| 伊人AV天堂| 亚洲中字无码AV电影在线观看| 在线中文字幕网| 波多野结衣一区二区三区四区| 亚洲啪啪网| 全部毛片免费看| 好吊色国产欧美日韩免费观看| 亚洲综合第一页| 欧美三级自拍| 91视频99| www欧美在线观看| 伊人精品视频免费在线| 亚洲午夜福利精品无码不卡| 波多野结衣一区二区三区四区视频| 国产一区免费在线观看| 国产特级毛片aaaaaa| 99久久国产自偷自偷免费一区| 日本一区二区不卡视频| 精品一区二区三区视频免费观看| 亚洲人成成无码网WWW| 青青热久免费精品视频6| 超清人妻系列无码专区| 久久久91人妻无码精品蜜桃HD| 国产人成网线在线播放va| 97se亚洲综合在线天天| 精品1区2区3区| 无码免费试看| 国产精品第一区| 国内精品久久久久久久久久影视 | JIZZ亚洲国产| 久久动漫精品| 成人国产精品2021| 91精品国产自产91精品资源| 综合人妻久久一区二区精品| 亚洲男人的天堂视频| 在线视频97| 欧美成人怡春院在线激情| 国产麻豆精品在线观看| 视频一区亚洲| 国产精品久久久久久久久| 日韩福利视频导航| 91免费观看视频| 欧美人人干| 91免费观看视频| 国产第四页| 国产AV毛片| 亚洲精品麻豆| 欧美不卡视频在线观看| 欧美日韩国产精品va| 国产乱人免费视频| 精品撒尿视频一区二区三区| 99re在线视频观看| 国产精品久久久久鬼色| 国产成人AV男人的天堂| 久久免费视频6| 亚洲乱伦视频| 99热国产这里只有精品无卡顿"| 久久综合五月| 欧美亚洲国产日韩电影在线| 九九视频免费在线观看|