?

面向多處理器架構的計算機智能化測試系統設計

2023-04-05 07:19張超陳小春孫亮周強
計算機與網絡 2023年4期
關鍵詞:自動化測試

張超 陳小春 孫亮 周強

摘要:隨著國產計算機產業鏈融合創新高質量發展,自主可控新研設備量產不斷加速,迫切需要相關測試平臺要與其量產速度相配合。面向計算設備硬件、固件、操作系統以及遠程網絡服務測試需求,在現有計算機固件測試技術沉淀基礎上,研制了可支持各類型計算機和嵌入式設備的自動化測試框架,并通過基于測試根的雙層跨平臺自動化測試技術實現了測試環境與硬件平臺的解耦,通過腳本動態測試執行技術實現了多處理器平臺下的全兼容性。目前,該框架已經完成了原型開發,并應用于國產計算機項目,在對部署了昆侖BIOS和昆侖BMC系列固件的各類計算設備測試過程中,取得了良好的效果。

關鍵詞:自動化測試;國產計算機;BIOS;BMC

中圖分類號:TP309.1文獻標志碼:A文章編號:1008-1739(2023)04-64-7

0引言

隨著我國信息技術高速發展、經濟社會深刻變革,萬億級的新基建聚焦工業互聯網、云計算和物聯網等領域,為國產計算機產業帶來了跨越式發展的歷史機遇。新基建[1]的核心是信息基礎設施、融合基礎設施和創新基礎設施3類基礎設施。其中,任何一類信息基礎設施都可能包括小到傳感器、大到服務器等各類型的計算設備。我國自主可控計算機的研制經歷了從“無”到“有”,從“小”到“大”的過程,正在從“可用”向“好用”的方向發展。雖然在功能和性能上距離國際前沿仍有一定差距,但已基本滿足黨政軍核心要求[2]。隨著信息技術應用創新的推進,自主可控的創新發展已經到了新的階段,在新基建的歷史機遇下,必然會大量出現全國產的服務器、筆記本、臺式機和嵌入式設備新產品,并進入批量部署階段。

但是,計算設備從設計到推向市場,需要經歷一個完整的研制周期。其中,軟件測試是研制過程中的一個重要環節[3]。面對新基建的歷史機遇,新需求和新產品必然產生爆發式增長。對于國產計算機設備,充分和快速的測試已經成為制約國產計算設備快速研制和推廣的關鍵瓶頸。僅僅依靠手工逐項測試的方法,已不能滿足當前快速研制效率的要求,自動化軟件測試成為國產計算機產業界的迫切需求[4]。

目前,市場上仍然缺少可普適應用于國產化計算設備的自動化測試軟件。國產處理器包括龍芯、飛騰、申威、兆芯、海光和鯤鵬等多種架構。受指令集和配套操作系統所限,大多現有測試軟件缺乏足夠支撐各類國產平臺的兼容能力,并且市場上的自動化測試軟件大多以軟件測試為主,缺少硬件測試能力。因此,在以往計算機固件測試的基礎上,融合計算設備硬件、固件、操作系統以及遠程網絡服務測試需求,研制了可支持計算機和嵌入式計算設備的自動化測試框架,并通過基于測試根的雙層跨平臺自動化測試技術實現了測試環境與硬件平臺的解耦,通過腳本動態測試執行技術實現了多處理器平臺下的全兼容性。目前,該框架已經完成了原型開發,并應用于國產化計算機項目,在對部署了昆侖BIOS和昆侖BMC系列固件的各類計算設備測試過程中,取得了良好的效果。

1國產計算設備自動化測試的需求分析

1.1國內外研究現狀

使用成熟和自動化的測試工具已經是大型軟件企業和整機廠商的常態[5]。目前,市面中流行的自動化測試工具都來自國外,如Loadrunner、QTP、RFT、Selenium、Watir和Robot Framework等,涵蓋了軟件、網絡服務以及嵌入式設備[6]。目前,Intel公司的智能測試系統(ITS)是目前已知唯一具有完備的UEFI固件自動化測試商用解決方案,涉及軟件和硬件,支持BIOS自動化測試。

但是,國外的硬件或固件的測試工具大多僅支持X86平臺,難以滿足國產處理器多種架構并存的現實需求。目前,國內已出現了較為成熟的軟件自動化測試工具,如國產操作系統自動化測試平臺[7]、筆記本電腦自動化測試系統[8]、用例驅動自動化測試系統[9]等。但是,以上測試工具大多針對軟件服務的測試,缺少對底層硬件、固件的測試方法。

綜上,面對國產計算機產業的快速發展,實現支持國產處理器平臺硬件、固件和軟件于一身的自動化測試平臺,是計算機產業鏈當前迫切需要解決的問題。

1.2國產計算設備的測試需求

目前,國產計算設備正處于新研機型不斷出現的爆發式增長階段。這些計算設備的CPU處理器多樣、機型種類豐富、功能定制各不相同[10]。我國國產計算機產業鏈中,在測試方面仍然主要以采用人工手動單項測試,無法適應當前急劇增長的測試要求。以國產服務器測試為例說明。

①國產服務器處理器平臺眾多,配套軟件定制化強。目前,國產處理器已經包括龍芯、飛騰、申威、兆芯、海光和鯤鵬等多種架構,并且各平臺配套的操作系統存在互不兼容的情況,需要測試人員對每類處理器平臺和配套軟件都十分了解,才能制定出全面覆蓋功能、性能等方面的測試用例[9]。

②國產新研服務器機型迅速增加,需要進行硬件、固件和操作系統3方面測試。每種處理器平臺都可能對應十多種服務器機型,每個機型對應一個專用的BIOS,BMC和操作系統版本,造成服務器測試工作量大、重復性工作多、效率低。

③測試人員水平不同,存在測試質量波動。測試質量與測試人員技能、經驗強相關,因而造成一定質量波動性,影響設備BIOS,BMC和操作系統的測試質量。

④服務器需要多臺集群測試。服務器對穩定性要求苛刻,為保證出廠質量,需要多臺服務器同時進行測試,并且測試時間長、測試用例眾多,手工逐臺測試不可行。

⑤服務器測試問題需要盡快反饋和修復。由于研發階段缺乏相應的檢測手段,導致很多低級問題在測試階段才能被發現,頻繁修改代碼,既影響代碼繼承性、穩定性,又影響服務器整機設備研制和產品化進度。

盡管國產計算機測試遇到了很大的挑戰,但同時也存在全國產自動化測試軟件的巨大機遇。新研國產機型的大量出現,表明當前國產化趨勢正在進一步加強。研發全國產的自動化測試軟件有利于打破國外技術壟斷,構建穩固的國產計算機供應鏈測試環節,為自主可控供應鏈提供測試技術保障。

2國產計算設備自動化測試的關鍵技術

根據以上需求,設計了面向國產計算設備的自動化測試框架,其中涉及雙層跨平臺自動化測試技術、腳本動態測試技術2項關鍵技術。

2.1雙層跨平臺自動化測試技術

面對國產處理器多樣化和異構化的問題,為了將國產計算機設備中的自動化測試環境與硬件平臺解耦,本文提出基于測試根的雙層跨平臺自動化測試技術,將自動化測試客戶端劃分為測試根和測試代理2個層面,測試根用于檢測計算機處理器等關鍵部件的硬件平臺環境,并通過網絡回傳到自動化測試平臺服務器,以分析和提供與處理器平臺相適應的自動化測試啟動和運行環境;測試代理用于執行測試的具體任務。該技術通過自動識別處理器軟硬件平臺關鍵信息,可以自動匹配和部署對應的測試環境,解決了國產多樣化處理器平臺和定制化軟件造成的測試環境復雜的問題。

面向國產計算設備的自動化測試框架首先需要滿足對主流國產處理器平臺的兼容性需求,需要滿足對以下3類測試的支持:

①硬件級測試。支持對處理器平臺關鍵元件的測試,如重啟測試、硬件配置信息準確性測試、CPU性能測試、內存壓力測試和分辨率測試等。

②固件級測試。支持對BIOS、BMC等固件測試,如SMBIOS測試、UEFI合規性測試和IPMI合規性測試等。

③操作系統級測試。支持對操作系統內核、應用和Web Service等進行測試。

國產計算設備自動化測試平臺需要在操作系統級和BIOS級2個運行環境,分別部署相應的測試支撐軟件。其中,在操作系統中,現有處理器平臺中的系統軟件運行環境復雜,各類運行庫的支持不一,但基本已經支持Python環境;在BIOS層面,雖然各處理器平臺BIOS受限于指令集,不能直接互換使用,但是一般都支持UEFI規范,并且,針對BIOS測試一般需要UEFI運行環境的支持。因此,為滿足多平臺對自動化測試的兼容性要求,并降低軟件復雜度,設計了可集中管控的自動化測試平臺,包括客戶端和服務器2個部分,如圖1所示。

圖1展示了自動化測試平臺服務端和待測計算機客戶端之間的邏輯結構。在待測計算機中,包括了Linux操作系統運行環境和UEFI固件運行環境2個層面。其中,在操作系統中安裝了操作系統級測試客戶端,用于實現與自動化測試平臺的網絡交互、操作系統級測試用工具的獲取和安裝、測試環境的部署和執行,以及測試報告的自動生成和發送;在UEFI固件環境中,有BIOS級測試客戶端,用于實現BIOS級的自動化測試。

雙層跨平臺自動化測試技術將自動化測試客戶端劃分為測試根和測試代理2個層面,測試根用于檢測硬件平臺環境、測試代理用于執行測試;并且,為了簡化整個系統的復雜度,操作系統和BIOS的客戶端架構保持一致。雙層跨平臺自動化測試技術框架如圖2所示。

①測試根。測試根的作用是獲取待測計算設備的處理器平臺、操作系統版本等測試環境中的重要信息,為隨后的測試環境自動化部署提供準確的信息支撐。測試根包括操作系統級測試根和BIOS級測試根,二者的功能基本相同,都是獲取處理器平臺環境的重要信息。

②測試代理。測試代理是自動化測試平臺在待測計算設備中測試環境的核心,用于完成測試腳本的解析和測試工具的下載、安裝。

在自動化測試平臺的服務端,構建了按處理器平臺劃分的測試用例庫,包括各處理器平臺的配套固件和操作系統之間的對應關系以及配套測試用例。每個測試用例庫都包括針對硬件、固件和操作系統的基線測試用例集和定制測試用例集?;€測試用例集針對于該平臺的基礎功能,定制測試用例集為用戶提供可擴展及自定義的測試用例。

2.2腳本動態測試執行技術

由于國產化計算設備存在處理器多樣化、配套軟件定制化的現狀問題,測試人員必須要首先了解平臺的差異性,才能夠進行測試腳本代碼編寫。受限于測試人員水平不一,測試腳本編寫的質量也參差不齊,制約了國產計算設備的測試效率。因此,結合當前的國產化計算機現狀,本文提出腳本動態測試執行技術。該技術的核心是將腳本邏輯結構與自動測試平臺軟件結構相對應,屏蔽了底層硬件細節,測試人員只需要編寫測試功能,就可以根據硬件平臺執行相應的測試功能。圖3展示了腳本動態測試執行技術中涉及的軟件模塊映射關系圖。從邏輯上來看,自動化測試的模塊架構包括適配層、模塊層、組件層、邏輯層和腳本層,其主要功能如下:

圈5腳本層:由可執行的測試腳本構成,每個腳本中包括了操作系統層或固件層中可運行的腳本命令。

圈4邏輯層:由測試邏輯部件構成,每個邏輯部件都對應了計算設備的某個功能或性能指標。

圈3組件層:由單元測試構成,每個測試單元都對應了一段封裝具體功能的測試代碼。

圈2模塊層:由支持測試的具體模塊構成,每個模塊都對應了測試環境中的測試工具或支撐函數模塊。

圈1適配層:由每個處理器平臺定制的支撐軟件代碼構成,每個適配層的模塊都可以屏蔽底層硬件,保證腳本能夠在對應的處理器平臺環境中運行。

在測試過程中,自動測試客戶端將解析測試腳本中的內容,并動態加載各平臺適用的測試環境,調用測試工具集中的相關接口,按照測試邏輯次序完成相關的測試工作。

自動測試引擎主要包括腳本解析模塊和腳本執行模塊2個部分,如圖4所示。

腳本解析模塊需要包括標簽解析、標簽類型處理和測試指令翻譯3個部分。

①標簽解析。自動化測試平臺的測試腳本包括4個標簽:包括“預置條件”“操作步驟”“結果比對”“恢復環境”。在解析腳本的具體內容之前,需要判斷當前的腳本內容是哪個標簽,而后按照對應的操作規則執行腳本中的命令語句。

②標簽類型處理。在解析標簽類型后,需要按照不同的標簽類型,進入相應的分支進行執行。

③標簽指令翻譯。該模塊用于將腳本中的文本翻譯為可直接執行的指令,包括指令和相應參數。

腳本執行模塊用于執行腳本解析模塊發送的測試指令序列。在收到測試指令序列后,該模塊將通過指令庫查找該指令調用的路徑和接口。通過逐個調用工具接口或調用標準庫函數,完成每個測試步驟。

以BMC固件的遠程關機測試為例,說明自動化測試引擎的過程流程。首先,自動化測試引擎收到測試腳本,對腳本進行解析。一般地,會先執行帶有“預置條件”的腳本內容,包括測試環境依賴的軟件是否完備、測試前置條件數據是否完整。其次,根據測試腳本中“操作步驟”的腳本內容,執行“管理員登錄”“遠程關機”的配套指令。通過測試指令翻譯模塊,將腳本映射為特定的代碼模塊調用命令序列,并從指令庫中查找對應的指令,并順序進行指令。如遠程關機指令就包括了“調用Selenium模塊”“訪問管理員頁面”“自動輸入用戶名和口令”“進入電源管理頁面”“點擊遠程關機選項”等命令序列,并分別調用對應的軟件模塊進行執行。再次,完成指令調用后,將生成的計算結果與“結果比對”中的測試基線數據進行比對,自動生成測試報告。最后,執行“恢復環境”標簽的腳本內容,刪除已經安裝的軟件模塊,恢復測試前的計算環境。

2.3 BIOS自動化測試執行技術

目前計算機產業鏈中,在BIOS測試方面仍然以主要采用人工手動單項測試。BIOS界面中的選項眾多,存在大量重復性、耗時性工作占據測試人員大部分工作量,造成計算機設備測試工作耗時長、耗費大、效率相對低下,無法適應當前急劇增長的測試要求。

通過BIOS自動化測試執行技術,能夠設計包含BIOS可執行命令的測試腳本,將測試腳本發送到待測計算機,并自動檢測返回的測試結果,判斷測試腳本是否成功執行,最終自動生成測試報告;并且該技術針對同款計算機BIOS,可以直接重復利用進行測試即可;若針對不同款計算機BIOS,可以根據BIOS差異,修改測試腳本后即可進行測試。

BIOS自動化測試技術框架如圖5所示,包括測試主機和待測計算機。BIOS測試腳本通過測試指令庫,將BIOS測試腳本轉換為BIOS可執行的測試命令序列;而后通過BIOS通信模塊,將測試命令序列發送到待測計算機的BIOS中進行執行,并返回測試結果;BIOS碼流解析模塊對返回的測試數據進行解析,并通過測試結果分析模塊,確定返回的測試結果是否正確,測試結果由測試結果存儲模塊進行存儲。

BIOS自動化測試主機中部署了BIOS運行腳本模塊、BIOS通信模塊、BIOS碼流解析模塊、BIOS測試結果分析模塊、測試結果存儲模塊和測試指令庫。

BIOS運行腳本模塊用于啟動BIOS自動化測試腳本執行的模塊,根據測試場景需求,執行測試過程。

BIOS通信模塊用于模擬通信交互工具的模塊,測試主機與被測主機進行通信,包括接收BIOS傳輸碼流信息和向被測主機發送模擬按鍵指令等操作。

BIOS碼流解析模塊用于對接收BIOS返回的碼流信息進行解析,對碼流中顏色信息,查找并截取碼流中的關鍵信息,轉成可視化和可分析的數據。

BIOS測試結果分析模塊用于對解析后的結果數據進行分析,檢測其與基準值數據是否一致。

測試結果存儲模塊用于對測試結果進行保存,輸出測試報告。

測試指令庫用于存儲可用于BIOS測試的指令合集,將按鍵名稱與對應的ASCII碼進行映射,例如上下左右方向按鍵、ENTER鍵、三鍵重啟、ESC鍵和F1(BIOS啟動熱鍵)等。

3國產計算設備自動化測試平臺的設計和實現

基于測試根的雙層跨平臺自動化測試技術、腳本動態測試技術2項關鍵技術,結合國產計算機測試的現實需求,設計了國產計算設備自動化測試平臺的總體框架,并完成了原型系統開發。

3.1國產計算設備自動化測試平臺總體結構設計

自動測試平臺總體架構如圖6所示,包括部署在內網的自動化測試服務端和部署在待測計算設備中的測試客戶端(測試根和測試代理)。其中,對服務器而言,BMC固件內置了嵌入式操作系統,BMC測試根和測試代理組成了高度定制化的嵌入式操作系統級測試客戶端。

猜你喜歡
自動化測試
基于Java反射的APP自動化混合測試框架的研究與實現
Hadoop性能測試自動化研究
數據驅動和關鍵字驅動的研究與應用
淺談空調控制器自動化測試
基于多總線結構的電路板測試系統設計研究
航空航天與國防電子新形勢下自動化測試系統的應用
基于CTI—TET和SeleniumWebdriver的Web應用自動化測試框架的設計與實現
自動化測試實現研究
一種航空交換機中CAN總線的自動化測試方法
基于Selenium進行Web應用測試研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合