《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 國產化嵌入式實時操作系統(tǒng)軟件測試方法研究
國產化嵌入式實時操作系統(tǒng)軟件測試方法研究
2016年微型機與應用第24期
李建軍1,2
1. 中國電子科技集團公司第三十二研究所,上海 201808;2. 國家工程軟件產品質量監(jiān)督檢驗中心,上海 201808
摘要: 隨著自主可控戰(zhàn)略的實施,國內多家基礎軟件廠商推出了相關的國產化嵌入式實時操作系統(tǒng)軟件,作為底層系統(tǒng)級軟件,目前業(yè)界普遍缺少相關的測試經驗和規(guī)范。分析并給出了國產化嵌入式實時操作系統(tǒng)測試內容、測試方法和測試技術等,為從事嵌入式實時操作系統(tǒng)測試驗證活動提供參考指南。
Abstract:
Key words :

  李建軍1,2

 ?。?. 中國電子科技集團公司第三十二研究所,上海 201808;2. 國家工程軟件產品質量監(jiān)督檢驗中心,上海 201808) 

        摘要:隨著自主可控戰(zhàn)略的實施,國內多家基礎軟件廠商推出了相關的國產化嵌入式實時操作系統(tǒng)軟件,作為底層系統(tǒng)級軟件,目前業(yè)界普遍缺少相關的測試經驗和規(guī)范。分析并給出了國產化嵌入式實時操作系統(tǒng)測試內容、測試方法和測試技術等,為從事嵌入式實時操作系統(tǒng)測試驗證活動提供參考指南。

  關鍵詞:國產化;嵌入式實時操作系統(tǒng);驗證與測試;測試規(guī)范

  中圖分類號:TP311.5文獻標識碼:ADOI: 10.19358/j.issn.16747720.2016.24.007

  引用格式:李建軍. 國產化嵌入式實時操作系統(tǒng)軟件測試方法研究[J].微型機與應用,2016,35(24):22-24,29.

0引言

  嵌入式系統(tǒng)已經在眾多行業(yè)和領域獲得了廣泛且成功的應用,比如機載航空、軌道交通、工業(yè)控制等方面。就嵌入式應用開發(fā)來看,目前絕大部分功能較復雜的嵌入式系統(tǒng)都基于嵌入式實時操作系統(tǒng)進行開發(fā),一方面可以使嵌入式應用軟件開發(fā)人員避開繁瑣的硬件管理, 而把主要精力放在目標應用的算法研究以及應用程序自身的構架上,另一方面應用實時操作系統(tǒng)提供的各種服務 , 可以更容易地構建出復雜的嵌入式實時應用系統(tǒng),并且在軟件重用性和開放性方面實時操作系統(tǒng)也起到了非常重要的作用。國產化嵌入式實時操作系統(tǒng)基礎軟件是我國自主信息化能力和水平的重要體現(xiàn),更是保障我國信息安全的重要組成部分,因此研究其軟件測試方法和技術具有重要的意義,國內外研究人員已經對嵌入式實時操作系統(tǒng)的測試進行了一定研究[13],但目前還未形成系統(tǒng)成熟的測試方法。本文主要針對國產化嵌入式實時操作系統(tǒng)的測試內容和測試方法進行研究。

1RTOS測試內容

  國產化嵌入式實時操作系統(tǒng)的測試主要指基本功能組件[4]測試,包括進程管理、異常/中斷管理、時鐘/定時器管理、信號量管理、文件系統(tǒng)、I/O管理、標準符合性、網絡協(xié)議棧等方面的測試。涉及的測試類型包括:文檔審查、代碼審查、功能測試、性能測試、接口測試、余量測試、邊界測試、人機交互界面測試、強度測試、安全性測試、恢復性測試、標準符合性測試、安裝性測試等。

2RTOS組件測試

  2.1進程管理

  系統(tǒng)的分配和運行都是以進程為基本單位的,因而對系統(tǒng)的管理可歸結為對進程的管理。關于進程管理的測試,主要包括進程的創(chuàng)建終止、阻塞喚醒、掛起激活、同步通信、調度機制幾個方面,具體為:

 ?。?)支持進程的創(chuàng)建:支持進程的創(chuàng)建,并包括申請進程控制塊、為進程分配資源、將進程導入相關就緒隊列等一系列功能。

 ?。?)支持進程的終止:支持響應進程正常結束或異常結束,終止進程,以及釋放進程所占有資源,將進程控制塊從隊列中移除等功能。

  (3)支持進程的阻塞和喚醒:準確響應進程阻塞和喚醒的相關條件,將進程排入阻塞和喚醒隊列中去。

 ?。?)支持進程的掛起和激活:準確響應進程的掛起和激活,并根據相關調度機制更改進程狀態(tài)。

 ?。?)支持進程的同步和通信:根據系統(tǒng)的需要設計合理的進程同步和通信機制。

  (6)支持進程的調度:支持調度管理功能,實現(xiàn)可搶占的優(yōu)先級調度、同等優(yōu)先級先進先出調度、同等優(yōu)先級時間片輪轉調度算法、搶占調度控制、任務鎖定調度等功能。采用功能分解法,通過創(chuàng)建多個任務,并設置支持基于優(yōu)先級搶占、同等優(yōu)先級先進先出/時間片輪轉的任務調度方法,通過查看任務切換的日志記錄來驗證是否符合要求。

  2.2異常/中斷管理

  異常/中斷管理模塊的測試通過異常/中斷處理句柄的安裝來實現(xiàn),包括不同級的中斷響應控制、當前系統(tǒng)的中斷信息管理以及及時響應外部產生的中斷幾個方面。測試時應覆蓋以下內容:

  (1)支持中斷任務的創(chuàng)建和刪除,通過創(chuàng)建、執(zhí)行、刪除多個不同的中斷任務,利用獲取任務的屬性信息函數和相應的日志記錄來驗證操作是否正確。

  (2)支持異常發(fā)生時保存現(xiàn)場的異??蚣?,通過在不同任務中插入相應中斷異常,查看異??蚣苣芊癖Wo現(xiàn)場數據,進行異常處理,異常清除后,驗證任務能否從異常中恢復,繼續(xù)執(zhí)行。

 ?。?)支持異常發(fā)生時系統(tǒng)輸出相應診斷數據,包括當前任務信息、內存數據、錯誤類型等,并執(zhí)行系統(tǒng)默認的異常處理,可通過在不同的任務中插入相應中斷異常,查看異常發(fā)生時系統(tǒng)輸出的相應系統(tǒng)診斷數據,驗證能否進行系統(tǒng)默認的異常處理。

 ?。?)支持與體系結構相關聯(lián)的異常處理機制;支持體系結構相關的異常處理,如x86平臺上的除零異常和返回非法地址異常等,可通過在不同的任務中插入與體系架構相關的不同的中斷異常,查看異常發(fā)生時系統(tǒng)輸出的相應系統(tǒng)診斷信息,驗證能否進行系統(tǒng)默認的異常處理。

 ?。?)支持向用戶提供異常處理的掛接函數,對于無法滿足用戶需求的系統(tǒng)默認處理,用戶可以修改異常處理函數,通過在不同的任務中插入不同的中斷異常,查看異常發(fā)生時系統(tǒng)輸出的相應系統(tǒng)診斷信息和系統(tǒng)默認的異常處理,然后通過掛接函數修改異常處理函數,重復執(zhí)行一次,驗證能否進行用戶自定義的異常處理。

  2.3時鐘/定時器管理

  時鐘/定時器管理模塊的測試可以通過系統(tǒng)時鐘的管理來實現(xiàn),包括定時器功能、單調速率周期的計時方式及顯示指定定時器的信息等方面。測試時應覆蓋以下內容:

 ?。?)實現(xiàn)微秒級高精度時鐘,單調速率定時器,并支持絕對時間計時和相對時間計時。

 ?。?)支持時鐘管理,實現(xiàn)基本定時功能,基本粒度范圍,可通過在程序代碼中插樁,顯示系統(tǒng)啟動定時任務時和系統(tǒng)觸發(fā)定時任務時的時間戳,來驗證系統(tǒng)的基本定時功能和基本粒度范圍;顯示系統(tǒng)時間片輪轉調度時刻的時間戳,來驗證系統(tǒng)為輪轉調度提供的時間片,并實現(xiàn)定時觸發(fā)功能。

 ?。?)支持維護系統(tǒng)流逝時間和實時時鐘: 支持維護系統(tǒng)流逝時間,包括系統(tǒng)啟動后的真實時間、邏輯時間等,可通過在程序代碼中插樁,顯示當前系統(tǒng)啟動后的真實時間和邏輯時間的時間戳,以驗證系統(tǒng)支持維護流逝時鐘。

 ?。?)支持定時器的創(chuàng)建、初始化、刪除、取消、啟動等基本操作。

 ?。?)實現(xiàn)為輪轉調度提供時間片,并用于信號量、事件、消息隊列、信號等操作的定時觸發(fā)管理。

  2.4內存管理

  內存用于保存進程運行時的程序和數據,測試時應驗證通過核心工作區(qū)和用戶工作區(qū)控制任務對硬件內存資源的訪問,提供內存的分配及釋放功能、系統(tǒng)內存信息顯示功能等。測試時應覆蓋以下內容:

 ?。?)支持核心工作區(qū)和用戶工作區(qū)的系統(tǒng)動態(tài)內存管理,可通過在程序代碼中插樁,在內存的核心工作區(qū)和用戶工作區(qū)分別進行內存管理等基本操作,來驗證系統(tǒng)支持核心工作區(qū)和用戶工作區(qū)的系統(tǒng)動態(tài)內存管理。

  (2)支持在核心工作區(qū)內分配核心對象控制塊、分配任務棧、分配消息隊列緩存區(qū)等功能,可通過在內存的核心工作區(qū)分配核心對象控制塊、分配任務棧、分配消息隊列緩存區(qū)等,從而驗證系統(tǒng)支持在核心工作區(qū)內分配核心對象控制塊、分配任務棧、分配消息隊列緩存區(qū)等功能。

 ?。?)通過調用顯示系統(tǒng)中內存總數、已使用數以及空閑內存數等信息,來驗證系統(tǒng)支持內存信息顯示功能。

 ?。?)進行內存分配、內存釋放、內存重新分配以及分配內存對齊等操作,驗證內存管理基本功能。

 ?。?)支持硬件MMU,實現(xiàn)虛擬內存與實際內存的一一映射。

  2.5信號量管理

  信號量作為用戶進程之間進行通信同步的原始機制,該模塊可以通過不同種類的信號量通信方式進行測試,包括二進制信號量、計數信號量和互斥信號量,實現(xiàn)多任務間的同步、臨界資源的互斥訪問以及共享資源的有效訪問。

  測試時應覆蓋以下內容:

 ?。?)支持互斥信號量、二進制信號量、計數信號量,實現(xiàn)多任務間的同步,臨界資源的互斥訪問以及共享資源的有效訪問: 二進制信號量只允許一次獲取和釋放;計數器信號量則允許多次獲取或釋放,獲取/釋放的最大次數在信號量創(chuàng)建時設置;互斥信號量是特殊的二進制信號量,支持所有權、遞歸訪問、任務刪除安全,可通過執(zhí)行符合POSIX 1003.13-2003標準的信號量管理模塊的接口函數調用,由此驗證操作系統(tǒng)信號量管理相關接口的符合性和正確性。

 ?。?)支持互斥信號量采用優(yōu)先級繼承或優(yōu)先級天花板方式防止優(yōu)先級逆轉,在使用優(yōu)先級天花板協(xié)議時,可指定所有使用此信號量的任務的最高優(yōu)先級以及優(yōu)先級范圍。

 ?。?)通過在不同類型的不同任務的程序代碼中插樁,顯示信號量擁有者、空閑信號量、已用信號量等信息,從而驗證系統(tǒng)支持信號量信息顯示。

 ?。?)支持獲取信號量、釋放信號量、刪除信號量等功能。

  2.6文件系統(tǒng)

  文件系統(tǒng)用于組織和管理計算機中所存儲的大量的程序和數據。測試文件系統(tǒng)模塊包括對文件的管理以及實現(xiàn)對文件及目錄的常見操作,包括創(chuàng)建、打開、關閉、讀寫文件和注冊文件系統(tǒng)等幾個方面[5]。

  測試時應覆蓋以下內容:

 ?。?)支持根文件系統(tǒng),能夠對硬盤等塊設備實現(xiàn)掛接/卸載多種文件系統(tǒng)(FAT\\NTFS\\EXT2\\EXT3\\VFAT等)。

 ?。?)支持文件系統(tǒng)訪問塊設備操作表,能使用主設備號訪問設備表的信息,可通過執(zhí)行掛接/卸載操作,驗證其是否提供具體文件系統(tǒng)的掛接/卸載函數,能夠對硬盤等塊設備進行文件系統(tǒng)的掛接。

  (3)支持文件句柄操作控制表維護文件的操作,包括目錄、設備、內存文件等,可通過執(zhí)行程序來驗證文件系統(tǒng)訪問塊設備操作表,使用主設備號訪問設備表的信息。

 ?。?)支持顯示當前已注冊文件系統(tǒng)的設備節(jié)點及安裝點信息,通過在程序中調用文件系統(tǒng)信息訪問函數。

 ?。?)通過在程序中調用文件格式化操作相關接口函數,以指定的文件系統(tǒng)類型格式化設備,驗證文件系統(tǒng)格式化功能的正確性。

 ?。?)通過在程序中調用文件操作相關接口進行目錄、設備、內存文件的創(chuàng)建、讀寫、刪除、關閉操作,驗證根文件系統(tǒng)功能的正確性。

 ?。?)支持多分區(qū),在單個分區(qū)下可創(chuàng)建多層目錄結構,可以創(chuàng)建任意數量的文件直至剩余內存空間不足。

 ?。?)支持對塊設備進行格式化,對系統(tǒng)數據的完整性進行檢測。

 ?。?)支持VFAT長文件名。

 ?。?0)支持FAT12、FAT16、FAT32文件分配表類型,可通過設置FAT12、FAT16、FAT32文件分配表類型,驗證對文件分配表類型支持功能的正確性。

  (11)通過在dosfs文件系統(tǒng)中調用文件操作相關接口進行目錄、設備、內存文件的創(chuàng)建、讀寫、刪除、關閉操作,驗證dosfs文件系統(tǒng)實現(xiàn)塊設備的文件操作和目錄操作功能的正確性。

 ?。?2)通過編程進行多任務讀寫操作,驗證系統(tǒng)對多任務讀寫功能的支持。

 ?。?3)兼容廣泛使用的多種塊設備,如軟盤、硬盤、閃存等,通過在各種塊設備,如軟盤、硬盤、閃存等硬件上創(chuàng)建文件系統(tǒng),驗證兼容多種塊設備功能的正確性。

  2.7基本I/O管理

  I/O控制模塊可以通過設備驅動表、設備表、文件描述符表、總線驅動支持、設備中斷處理機制對上層應用程序提供統(tǒng)一的接口,支持對硬件設備的統(tǒng)一訪問等[6]。

  測試時應覆蓋以下內容:

  (1)創(chuàng)建一個或多個任務,調用I/O接口函數(open、close、read、write等)實現(xiàn)掛接設備、打開設備、讀寫設備、關閉設備、控制設備等功能,驗證系統(tǒng)支持設備文件的統(tǒng)一操作。

 ?。?)通過創(chuàng)建一個或多個任務,調用文件接口函數(open、close、read、write等)實現(xiàn)打開文件、創(chuàng)建文件、文件位置指針操作、讀文件、寫文件、修改文件的屬性、獲取文件的信息、刪除文件、顯示文件、截取文件大小等功能,驗證系統(tǒng)支持普通文件的操作。

 ?。?)通過創(chuàng)建一個或多個任務,調用目錄接口函數(open、close、read、change等)實現(xiàn)創(chuàng)建目錄、讀目錄、關閉目錄、改變目錄路徑、打開目錄、刪除目錄、獲取當前目錄、移動目錄、重置目錄等功能,驗證系統(tǒng)支持目錄操作。

 ?。?)通過在系統(tǒng)初始化時實現(xiàn)三個基本的描述符:0(標準輸入,stdin),1(標準輸出,stdout),2(標準錯誤,stderr),以后打開的文件描述符從3開始,創(chuàng)建一個或多個任務,調用接口函數操作文件描述符,驗證系統(tǒng)支持基本描述符統(tǒng)一管理。

 ?。?)支持設置最大文件描述符,支持復制文件描述符,可通過創(chuàng)建一個或多個任務,調用接口函數設置文件描述符,來驗證系統(tǒng)支持任務設置0、1、2的局部文件描述符和全局文件描述符。

 ?。?)通過創(chuàng)建一個或多個任務,調用接口函數實現(xiàn)設備驅動注冊、卸載、顯示等操作,驗證系統(tǒng)支持設備驅動表操作。

  (7)支持設備驅動注冊、卸載、顯示,要求卸載的同時必須釋放所占用的全部資源及設備表維護系統(tǒng)掛接的所有設備,根據主次設備號訪問對應的設備驅動,可通過創(chuàng)建一個或多個任務,調用接口函數實現(xiàn)設備驅動卸載操作,并查看所有占用資源的釋放情況,從而驗證系統(tǒng)能否在設備驅動卸載的同時釋放所占用的全部資源。

  (8)支持顯示當前設備表中已注冊的設備信息,支持動態(tài)安裝/卸載設備,可通過創(chuàng)建一個或多個任務,調用接口函數顯示當前設備表中已注冊的設備信息,驗證系統(tǒng)支持顯示當前設備表中已注冊的設備信息。

 ?。?)支持字符設備的輸入/輸出緩存管理,對于終端輸入提供行規(guī)則和非行規(guī)則處理模式,其中行規(guī)則可以對特殊字符的處理規(guī)則進行定義,實現(xiàn)終端管理程序,可通

  過創(chuàng)建一個或多個任務,調用接口函數實現(xiàn)動態(tài)安裝/卸載設備,來驗證系統(tǒng)支持動態(tài)安裝/卸載設備。

 ?。?0)支持POSIX終端接口,包括設置波特率、設置奇偶校驗、獲取和設置終端屬性、設置規(guī)范模式、設置原始輸入模式、設置輸入奇偶選項、設置軟件控制流、設置原始數據輸出、設置軟件流控制字符、設置阻塞讀寫功能。

  2.8標準符合性測試

  操作系統(tǒng)標準符合性測試主要包括:

 ?。?)POSIX標準符合性測試

  操作系統(tǒng)的系統(tǒng)調用與編程接口支持POSIX規(guī)范的系統(tǒng)調用接口,保障應用的可移植性。具體包括:POSIX_DEVICE_IO、POSIX_NETWORKING等類。

 ?。?)TCP/IP標準符合性測試

  驗證BSD SOCKET套接字的標準函數接口[78]。

  (3)字符集標準符合性測試

  驗證國產操作系統(tǒng)數據及訪問接口是否支持GBK、ASCII、GB18030、UNICODE,并驗證在操作系統(tǒng)文件編碼不一致時數據訪問的正確性。

3結束語

  本文研究了國產化嵌入式實時操作系統(tǒng)的測試方法和要點。對于國產化嵌入式實時操作系統(tǒng)的測試具有一定的參考價值。本研究成果已被用于多個國產化RTOS測試工作中,取得了較好的效果。下一階段的研究方向為如何基于業(yè)界領先的風河公司的VxWorks操作系統(tǒng)的測試結果數據建立基準,對相關國產化同類產品進行評估。

參考文獻

 ?。?] 石亦磊.嵌入式實時操作系統(tǒng)測試方法研究[D]. 長沙:湖南大學,2011.

  [2] 郁發(fā)新.常用嵌入式實時操作系統(tǒng)比較分析[J]. 計算機應用,2006,26(4):761 764.

 ?。?] 董佳梁,李彥峰,楊秋松,等.面向航天系統(tǒng)的嵌入式操作系統(tǒng)實時性評測[J]. 計算機工程與設計,2013,34(1):114 120.

  [4] 王遠方.面向嵌入式操作系統(tǒng)的功能測試方法與實現(xiàn)[D]. 成都:電子科技大學,2011.

 ?。?] 趙輝,劉志勤,胡寶成. 基于嵌入式實時操作系統(tǒng)的文件系統(tǒng)的研究與設計[J]. 航空計算技術,2004,34(3):73 75.

 ?。?] 馬超,尹長青. VxWorks嵌入式實時操作系統(tǒng)的結構研究[J]. 電腦知識與技術,2006(2):133 134.

 ?。?] 何健.嵌入式操作系統(tǒng)網絡協(xié)議棧測試的研究與實現(xiàn)[D]. 西安:西安電子科技大學,2014.

 ?。?] 郝京宇,黃建華,賈風根. 協(xié)議棧的實現(xiàn)方法[J]. 計算機工程,2004,30(14):93 94.


此內容為AET網站原創(chuàng),未經授權禁止轉載。