甘興龍 楊英豪
摘要:在信息技術(shù)應(yīng)用創(chuàng)新的大背景下,對自主、安全、穩(wěn)定提出更高要求,操作系統(tǒng)是計算機(jī)軟件和應(yīng)用正常運(yùn)行的必備基礎(chǔ)條件,其穩(wěn)定性與上下游軟硬件可靠性正相關(guān)。操作系統(tǒng)穩(wěn)定性是指在有異常輸入或壓力條件下,系統(tǒng)能夠繼續(xù)正確運(yùn)行的程度,即當(dāng)其上運(yùn)行的應(yīng)用、硬件層或設(shè)備驅(qū)動器錯誤時,操作系統(tǒng)拒絕或反應(yīng)能力的指標(biāo)。當(dāng)前國產(chǎn)操作系統(tǒng)大多沿用Linux技術(shù)體系及成果,Linux作為宏內(nèi)核的典型代表,除最基本的進(jìn)程管理、線程管理、內(nèi)存管理外,文件系統(tǒng)、驅(qū)動、網(wǎng)絡(luò)協(xié)議等均在內(nèi)核模塊,優(yōu)點(diǎn)是效率高,缺點(diǎn)是穩(wěn)定性差,通過國產(chǎn)操作系統(tǒng)穩(wěn)定性測試技術(shù)研究進(jìn)而提升其穩(wěn)定性是信息技術(shù)應(yīng)用創(chuàng)新的重要工作。
關(guān)鍵詞:國產(chǎn);操作系統(tǒng)穩(wěn)定性;測試系統(tǒng);設(shè)計與實(shí)現(xiàn)
引言
智能卡又稱為IC卡,根據(jù)不同的集成電路可以分為存儲器卡、邏輯加密卡、CPU卡和射頻卡。由于CPU卡中集成了微處理器、存儲單元以及芯片操作系統(tǒng)COS(ChipOperatingSystem),從而構(gòu)成一個完整的計算機(jī)系統(tǒng)。CPU卡的操作系統(tǒng)COS是芯片實(shí)現(xiàn)主要應(yīng)用功能最為重要的部分,它是安全芯片中數(shù)據(jù),文件、密鑰等重要信息進(jìn)行安全存儲、訪問的關(guān)鍵。而芯片中實(shí)際功能的應(yīng)用必須依靠COS功能的正常實(shí)現(xiàn),所以對于COS功能的正確實(shí)現(xiàn)與否必須有其針對性的測試,以保證產(chǎn)品的正常高效的使用。
1穩(wěn)定性測試系統(tǒng)設(shè)計與實(shí)現(xiàn)
國產(chǎn)操作系統(tǒng)穩(wěn)定性測試系統(tǒng)主要采用Java語言實(shí)現(xiàn),具備平臺可移植性;各測試腳本具有配置界面,便于在不同的條件下對國產(chǎn)操作系統(tǒng)穩(wěn)定性進(jìn)行測試;各指標(biāo)的穩(wěn)定性通過變異系數(shù)計算求得,該系數(shù)廣泛應(yīng)用于諸多領(lǐng)域中,本系統(tǒng)將該系數(shù)移植到國產(chǎn)操作系統(tǒng)的穩(wěn)定性評估中,具有一定的含義;為了綜合不同的指標(biāo),采用熵值法對不同指標(biāo)分配權(quán)重,更加客觀。在功能實(shí)現(xiàn)方面,操作系統(tǒng)穩(wěn)定性測試工具支持以下功能:(1)測試參數(shù)配置,對于單獨(dú)模塊的測試,可通過修改測試參數(shù)配置實(shí)現(xiàn)自定義測試,配置項(xiàng)和具體使用到的測試工具相關(guān)。(2)穩(wěn)定性分析,通過調(diào)用第三方內(nèi)存測試工具,得到一系列的測試數(shù)據(jù)用于穩(wěn)定性分析,當(dāng)有多個指標(biāo)時,采用熵值法進(jìn)行綜合評估。(3)記錄歷史測試結(jié)果,當(dāng)測試完成時,會將本次測試的一些重要信息記錄在文件中,可用于對比分析。(4)選擇測試模塊,綜合測試模塊中包含各個模塊的測試,用戶可根據(jù)需要選擇不同的測試組合進(jìn)行綜合測試。(5)上傳文件,選擇上傳待分析的測試數(shù)據(jù),一般為文本文件。(6)穩(wěn)定性分析,首先會對上傳的文件做校驗(yàn),檢查其文件內(nèi)容格式是否正確,再對文件內(nèi)容做進(jìn)一步分析,得到各指標(biāo)值。(7)支持測試結(jié)果的持久化保存及管理。
2國產(chǎn)操作系統(tǒng)穩(wěn)定性測試系統(tǒng)介紹
2.1開源軟件測試工具
(1)數(shù)量大:僅在opensourcetesting.org網(wǎng)站上統(tǒng)計的開源軟件測試工具就有超過360種,其中面向Java程序的單元測試開源軟件工具就有70多種。(2)目標(biāo)單一:開源軟件測試工具往往是面向一個非常具體的領(lǐng)域,而不像商業(yè)軟件測試工具會將各種功能模塊集成起來,解決各個領(lǐng)域的問題。例如,每種開源的軟件單元測試工具往往只能支持一種開發(fā)語言。(3)運(yùn)行需求各異:不同的開源軟件測試工具有不同的運(yùn)行需求,包括不同的操作系統(tǒng)版本、不同的腳本語言版本(如不同版本的waitr需要先安裝不同版本的Ruby)。(4)用戶使用不便:很多開源軟件測試工具都缺乏良好的用戶使用界面,也缺乏穩(wěn)定的維護(hù)團(tuán)隊。這些特點(diǎn)決定了將開源測試工具整合起來并不容易。在后面的討論中,我們按照單元測試、功能測試、性能測試的順序推薦了一些較為成熟、使用較為廣泛的開源軟件測試工具。要說明的是,考慮到廣泛使用的國產(chǎn)操作系統(tǒng)一般都是基于Linux或類似產(chǎn)品開發(fā)的,本文中只討論能基于Linux使用的開源測試工具。同時考慮到目前國產(chǎn)操作系統(tǒng)上較常使用的開發(fā)環(huán)境,本文中重點(diǎn)討論針對Java、C和C++的開源測試工具。
2.2COS基礎(chǔ)測試
COS基礎(chǔ)測試雖然無法覆蓋COS的全部命令與功能,但是對COS的基礎(chǔ)功能進(jìn)行了較為細(xì)致、全面的檢測。在當(dāng)前情況下,COS的測試都是由應(yīng)用方或應(yīng)用行業(yè)進(jìn)行測試,其著重點(diǎn)主要在于功能實(shí)現(xiàn),即指令集的功能正常。少數(shù)安全性要求較高的行業(yè)會涉及參數(shù)測試,但是對于COS的錯誤代碼機(jī)制,是否留有隱藏文件/隱藏指令方面關(guān)注較為匱乏。COS中的錯誤代碼是卡片當(dāng)前狀態(tài)的重要參考,而隱藏文件與隱藏指令則會為將來的行業(yè)應(yīng)用帶來使用安全、功能穩(wěn)定性等多種類的風(fēng)險。因此,COS基礎(chǔ)測試可以為COS的研發(fā)提供質(zhì)量參考,促進(jìn)卡片COS質(zhì)量提升。
2.3LPDDR4芯片測試
集成電路產(chǎn)業(yè)是國民經(jīng)濟(jì)和社會發(fā)展的戰(zhàn)略性、基礎(chǔ)性和先導(dǎo)性產(chǎn)業(yè),是培育發(fā)展戰(zhàn)略性新興產(chǎn)業(yè)、推動信息化和工業(yè)化深度融合的核心與基礎(chǔ),是調(diào)整經(jīng)濟(jì)發(fā)展方式、調(diào)整產(chǎn)業(yè)結(jié)構(gòu)、保障國家信息安全的重要支撐。發(fā)展集成電路產(chǎn)業(yè)是信息技術(shù)產(chǎn)業(yè)發(fā)展和工業(yè)轉(zhuǎn)型升級的內(nèi)部動力,同時也是市場激烈競爭的外部壓力,已上升為國家戰(zhàn)略。近幾年,隨著社交網(wǎng)絡(luò)的普及和推廣,使得智能手機(jī)迎來了爆發(fā)式發(fā)展,游戲、照片、視頻等各種應(yīng)用需要更大容量的存儲器和更高帶寬的數(shù)據(jù)傳輸。LPDDR4(第4代低功耗雙倍數(shù)據(jù)速率動態(tài)隨機(jī)存儲器)芯片以其高頻率、高帶寬、低功耗等特點(diǎn)在智能手機(jī)領(lǐng)域被大量使用。因此,設(shè)計一種能夠在各種SoC系統(tǒng)上對LPDDR4芯片進(jìn)行各種邊界條件下功能性能測試的軟硬件系統(tǒng)就變得愈發(fā)重要。LPDDR4具有小體積和低功耗的特點(diǎn),通常應(yīng)用于移動終端。LPDDR4的通信協(xié)議是在2014年8月發(fā)布的,基本構(gòu)架從單通道設(shè)計改進(jìn)為雙通道的設(shè)計,減小了芯片內(nèi)部的走線距離,通過并行操作提高了運(yùn)行速率。工作電壓降低為1.1V,工作頻率最高可提升到2133MHz(數(shù)據(jù)速率為4266Mb/s),帶寬為LPDDR3的兩倍。在提升速度和帶寬的同時,減少了電量的消耗,ECC技術(shù)也是在LPDDR4中引入的。通常情況下,在系統(tǒng)端對LPDDR4芯片進(jìn)行測試時改變的條件有溫度和供電電壓。溫度調(diào)節(jié)通過高低溫試驗(yàn)箱來實(shí)現(xiàn),測試的溫度范圍是-10℃至+55℃或者-40℃至+85℃,這取決于LPDDR4芯片的溫度等級以及客戶的要求。電壓調(diào)節(jié)是本文的重點(diǎn),調(diào)節(jié)范圍通常是正常供電電壓上下浮動5%。因此,針對LPDDR4芯片在系統(tǒng)上的邊界測試就分為高溫高壓、高溫低壓、低溫高壓和低溫低壓4種。常用的內(nèi)存測試軟件有Memtester、Rebooter、3DMark等,另外,還可以使用內(nèi)存眼圖工具在各種邊界條件下測試LPDDR4芯片的眼圖裕度。
2.4安全芯片測試
安全芯片操作系統(tǒng)測試裝置由Python語言構(gòu)建,主要包括PCSC通信接口層、算法庫接口層、功能指令接口層、基本算法接口層、腳本編寫和執(zhí)行層。 PSC通信接口層用于實(shí)現(xiàn)與作為測量對象的安全芯片的通信。 算法接口層主要用于封裝適用于作為測量對象的安全芯片的多種安全算法的接口。 功能接口層主要用于封裝作為測量對象的安全芯片的操作系統(tǒng)內(nèi)的功能指令。 基本的算法接口層主要用于二次組合和封裝所述算法庫接口層的接口,同時添加運(yùn)算函數(shù)。 腳本編寫和執(zhí)行層用于存儲、執(zhí)行和修改測試腳本,以便一鍵切換階段。 腳本編寫執(zhí)行層通過組合調(diào)用PCSC通信接口層、算法庫接口層、功能指令接口層和基本算法接口層,實(shí)現(xiàn)了對測量對象的安全芯片的測試 該安全芯片OS測試裝置通過采用Python語言,與其他程序語言相比,具有語法簡單、可讀性高、用較少的代碼完成復(fù)雜的功能,節(jié)約腳本的開發(fā)時間的優(yōu)點(diǎn)。 整個Python框架的構(gòu)建使得結(jié)構(gòu)更加清晰,各層界面維護(hù)更加清晰的功能更加通用,在構(gòu)建過程中,以基礎(chǔ)功能結(jié)構(gòu)為前提,留下了后期進(jìn)一步開發(fā)的空間,應(yīng)用更加廣泛的PC系統(tǒng)的無狀態(tài)。 腳本的執(zhí)行速度也將提高。通過利用強(qiáng)大的標(biāo)準(zhǔn)庫支持和開源第三方算法庫,您可以完成并處理各種任務(wù),如設(shè)計GUI、生成文檔等。
3國產(chǎn)操作系統(tǒng)穩(wěn)定性測試系統(tǒng)方法實(shí)現(xiàn)
3.1錯誤代碼檢測
錯誤代碼檢測是與指令功能相對的,用于驗(yàn)證COS是否對指令進(jìn)行了辨別,對文件進(jìn)行了區(qū)分。相對于成功執(zhí)行指令的場景,錯誤代碼從IC卡的返回狀態(tài)字SW出發(fā),測試不應(yīng)成功執(zhí)行指令的場景中,指令是否如預(yù)期一樣執(zhí)行失敗,并且返回的SW是否符合標(biāo)準(zhǔn)要求。如:使用SELECT命令選擇不存在的文件,IC卡應(yīng)返回6A82;UPDATERECORD,UPDATEBINARY中發(fā)送數(shù)據(jù)域超出文件的長度,應(yīng)返回6A84;READRECORD,READBINARY所讀文件與指令類型不符應(yīng)返回6981;在無響應(yīng)數(shù)據(jù)時發(fā)送GETRESPONSE命令應(yīng)返回6900;VERIFYPIN認(rèn)證失敗時需要返回63CX等。錯誤代碼檢測從每條指令的錯誤代碼設(shè)計出發(fā),驗(yàn)證IC卡的指令是否按照所聲明設(shè)計。在當(dāng)前文件結(jié)構(gòu)下無法實(shí)現(xiàn)指令的錯誤代碼時,如SW=6A81(不支持此功能),可以考慮構(gòu)建符合此錯誤代碼場景的測試EF,以進(jìn)行此項(xiàng)測試,驗(yàn)證卡片COS指令功能。
3.2對目標(biāo)和當(dāng)前操作系統(tǒng)進(jìn)行依賴要素比對
構(gòu)建好庫函數(shù)模型后'依據(jù)分級好的操作系統(tǒng)兼容性依賴要素'以庫函數(shù)為單位對目標(biāo)和當(dāng)前操作系統(tǒng)進(jìn)行依賴要素比對(比對之前需要確認(rèn)在目標(biāo)操作系統(tǒng)中是否可以找到當(dāng)前操作系統(tǒng)提供的庫文件'在找不到庫文件的情況下'認(rèn)為目標(biāo)操作系統(tǒng)缺少需要的庫文件'不能兼容于當(dāng)前操作系統(tǒng)(在找到所有的庫文件后'按照依賴要素分級'分別對當(dāng)前操作系統(tǒng)以及目標(biāo)操作系統(tǒng)中每一個庫文件94Mb4段%庫文件下庫函數(shù)的94Mb4段%庫函數(shù)簽名的94Mb4段進(jìn)行逐級比對'如果比對過程中有庫文件的94Mb4段一致'則認(rèn)為該庫文件下的所有庫函數(shù)未進(jìn)行修改'可以判定該庫文件下的所有依賴要素未影響操作系統(tǒng)的兼容性#如果庫文件的94Mb4段不一致'則需要對該庫文件下的所有庫函數(shù)進(jìn)行之后的兩個94Mb4段的比對'若比對過程中某一級的94Mb4段一致'則認(rèn)為庫函數(shù)未進(jìn)行對操作系統(tǒng)兼容性有影響的修改'判斷該庫函數(shù)的修改未影響操作系統(tǒng)兼容性(如果所有庫函數(shù)的修改都被判定為未影響操作系統(tǒng)兼容性'則認(rèn)為操作系統(tǒng)的修改沒有影響到程序的運(yùn)行'目標(biāo)操作系統(tǒng)兼容于當(dāng)前操作系統(tǒng)#若對某個庫函數(shù)的比對過程中每一級依賴要素的比對結(jié)果都不一致'則認(rèn)為該庫函數(shù)的修改影響了程序的調(diào)用'對該庫函數(shù)進(jìn)行調(diào)用的應(yīng)用程序無法在目標(biāo)操作系統(tǒng)上正確運(yùn)行'目標(biāo)操作系統(tǒng)不能兼容于當(dāng)前操作系統(tǒng)。
3.3性能測試
性能測試使用測試工具模擬各種正常、高峰和異常的負(fù)載條件,并測試系統(tǒng)的各項(xiàng)性能指標(biāo)。 負(fù)荷測試和壓力測試都是性能測試。 JMeter是Apache開發(fā)的基于Java的性能測試工具,測試靜態(tài)文件、Java小程序、CGI腳本、Java對象、數(shù)據(jù)庫和FTP服務(wù)器等靜態(tài)資源和動態(tài)資源 可以模擬負(fù)載,在不同的壓力下測試服務(wù)器、網(wǎng)絡(luò)或?qū)ο蟮膹?qiáng)度,并分析其整體性能。 DBMonster是一種性能測試工具,通過生成隨機(jī)數(shù)據(jù)來測試SQL數(shù)據(jù)庫。 DBMonster是一個Java開源項(xiàng)目,可以通過JDBC方法連接到數(shù)據(jù)庫,并在支持Java和JDBC的任何平臺上運(yùn)行。 DBMonster的目的是為數(shù)據(jù)庫開發(fā)人員提供服務(wù),可以幫助數(shù)據(jù)庫開發(fā)人員生成大量規(guī)則和不規(guī)則的數(shù)據(jù),從而方便數(shù)據(jù)庫開發(fā)人員根據(jù)這些數(shù)據(jù)進(jìn)行數(shù)據(jù)庫的調(diào)整。 DBMonster控制為表示要連接的數(shù)據(jù)庫、用于連接的用戶名和密碼、需要操作的模式、重試次數(shù)等全局設(shè)置的兩個XML文件,以及為每個數(shù)據(jù)表中的每個字段生成數(shù)據(jù)的規(guī)則。
結(jié)束語
針對國產(chǎn)操作系統(tǒng)設(shè)計并現(xiàn)了一套綜合測試系統(tǒng),可對適配不同廠商的操作系統(tǒng),具備良好的通用性,界面操作簡便,極大地提高了測試效率,無需測試人員編寫測試腳本,降低了測試難度,彌補(bǔ)了對國產(chǎn)操作系統(tǒng)進(jìn)行綜合測試區(qū)域的空白,為對國產(chǎn)操作系統(tǒng)進(jìn)一步測試研究打下了基礎(chǔ)。
參考文獻(xiàn):
[1]梅磊,劉娜.基于國產(chǎn)操作系統(tǒng)的軟件測試方法研究[J].航天標(biāo)準(zhǔn)化,2019(01):34-40.
[2]左蕓,沈雷,張楊.基于Cantata的高安全性操作系統(tǒng)軟件單元測試[J].數(shù)字技術(shù)與應(yīng)用,2019,37(01):202-204.
[3]郝繼鋒,李運(yùn)喜,任曉瑞,徐曉光.一種輕量級操作系統(tǒng)測試框架設(shè)計與實(shí)現(xiàn)[J].航空計算技術(shù),2018,48(05):80-84.
[4]王暉.國產(chǎn)操作系統(tǒng)自動化測試平臺技術(shù)研究[J].無線互聯(lián)科技,2017(10):48-51.
[5]許侃,張志華,牟永敏.桌面linux操作系統(tǒng)整機(jī)兼容性測試方法研究[J].數(shù)字技術(shù)與應(yīng)用,2017(05):69-70+73.
[6]落紅衛(wèi).移動操作系統(tǒng)安全機(jī)制與測試驗(yàn)證[J].保密科學(xué)技術(shù),2017(03):38-41.
[7]劉春梅,韓銳,郭志川.智能電視操作系統(tǒng)組件層自動化測試的實(shí)現(xiàn)[J].網(wǎng)絡(luò)新媒體技術(shù),2016,5(05):45-50.
[8]陳萬橋,杜承烈,江南.操作系統(tǒng)實(shí)時性指標(biāo)研究與測試結(jié)果分析[J].航空計算技術(shù),2014,44(01):109-112.
作者簡介:甘興龍,1979.2 男,漢族,籍貫湖南龍山,研究生,主要研究方向IT專業(yè)技術(shù)研究和項(xiàng)目管理工作;楊英豪,1995.6 男,漢族,籍貫浙江省舟山市,工學(xué)學(xué)士學(xué)位,工程師,研究方向信息化工作