邵紅李,李亞偉
(中國軟件評測中心,北京,100044)
(1)依據相關標準進行測試
參照《軍用服務器操作系統技術要求》、《軍用桌面服務器操作系統安全要求》、《軍用桌面服務器操作系統硬件兼容性要求》、《軍用桌面服務器操作系統硬件編程接口》、《軍用桌面服務器操作系統應用編程接口》、《軍用服務器操作系統測評要求》、《Linux 服務器操作系統測試方法》等國軍標編寫。
(2)自動方式與手工方式相結合
操作系統的測試在手工方式基礎上加入自動或半自動測試工具輔助進行,在功能測試方面采用腳本錄制回放工具執行部分功能測試;性能測試方面采用性能基準測試工具LMBench、UnixBench 等評估操作系統綜合性能,采用X11perf 工具測試圖形處理性能。
(3)測試和審查相結合
對于可測性指標,通過測試驗證;對于文檔一致性等需求項,采用文檔審查等方法驗證。有些指標或需求項也可采用兩者綜合的辦法驗證。
(4)功能覆蓋
完全覆蓋指標要求,逐項設計測試用例,對每一個功能點至少執行一次。
在測試實施過程中,將針對被測軟件的指標和需求項進行分析,視重要程度或關鍵性確定測試項的優先等級,合理分配測試資源。同時認真執行GJB2725A-2001《測試實驗室和校準實驗室通用要求》和《軍用軟件測試實驗室測試過程和技術能力要求》[1],確保測試的質量。
(1)文檔審查
對國產服務器操作系統(龍芯版、飛騰版、申威版)所有技術文檔按照GJB2786A《軍用軟件開發通用要求》、GJB438B《軍用軟件開發文檔通用要求》進行檢查,同時利用文檔審查單的形式對文檔的完整性、準確性,以及文檔與軟件的一致性、文檔與文檔的一致性等情況采取分類、分層等方式逐一進行審查。
(2)功能測試
在操作系統功能測試中,將廣泛使用通用的黑盒測試技術,包括功能分解、等價類劃分、邊界值分析、錯誤猜測法等方法,針對操作系統每個功能的正常操作流程和異常操作情況進行測試。在進基本行功能測試時主要采用如下方法:
每個軟件功能必須被至少一個測試用例或一個被認可的異常所覆蓋;
用基本數據類型和數據值進行測試;
用一系列合理的數據類型和數據值運行,測試超負荷、飽和及其它“最壞情況”的結果;
用假想的數據類型和數據值運行,測試排斥不規則輸入的能力;
每個功能的合法邊界值和非法邊界值都必須被作為測試用例。
此外,針對操作系統基礎的、特定的功能,要開展專門的測試方法研究。
內核功能測試:主要通過編寫測試程序,調用相應接口實現任務調度、任務間通訊、內核同步、異步中斷、存儲管理、進程管理等內核功能,驗證其實現的正確性以及與標準的一致性;
系統管理功能測試:通過圖形化界面提供的操作入口,驗證圖形與命令行、設備管理、系統監視、系統日志、圖形化系統工具、系統服務配置等功能的正確性;
網絡服務測試:驗證操作系統對各種網絡協議的支持能力;通過圖形化界面提供的操作入口,驗證代理服務、網絡文件系統服務、網絡時間服務、網絡郵件服務、WEB 服務、網絡域名服務等各類服務實現的正確性;
桌面環境功能測試:通過圖形化界面提供的操作入口,驗證登錄認證、文件操作、磁盤管理、桌面布局、觀感設置、用戶管理、應用工具等功能實現的正確性;
文件系統支撐能力測試:通過圖形化界面提供的操作入口或編寫測試程序,驗證不同文件系統的分區、讀寫功能,以及虛擬文件系統、文件系統日志、高速緩存、文件系統檢查與修復、目錄操作、文件管理等功能實現的正確性;
中文支持能力:通過鍵盤輸入、屏幕及打印輸出,驗證中文鍵盤輸入、中文字體、格式以及編碼等中文支持能力實現的正確性。
(3)性能測試
對相關標準、軟件需求規格說明中規定的性能需求逐項進行測試[2],以驗證其性能是否滿足要求。在進行性能測試時,要求:
測試程序在有速度要求時完成功能的時間;
測試程序完成功能所能處理的數據量;
測試程序各部分的協調性,如高速、低速操作的協調;
測試軟/硬件中因素是否限制了程序的性能;
測試程序的負載能力;
測試程序運行占用的空間。
(4)人機交互界面測試
根據用戶的感官體驗和功能要求,對照系統提供的《需求規格說明》、《用戶手冊》等文檔要求,設定符合用戶實際使用習慣的數據和流程,測試系統的人機交互界面是否能完成用戶的請求,正常執行操作流程,并返回正確結果。同時,對人機交互界面的操作與風格進行考核,測試與用戶習慣和通用準則是否一致。
操作系統是基于X 平臺實現的,Windows 平臺下的圖形界面測試工具無法使用,課題組將針對操作系統各種GUI 對象進行研究,完成X 協議下用戶所有動作的記錄、存儲,利用腳本回放功能實現被測系統圖形界面下的功能自動化測試。通過自動化測試一方面可以提高測試的效率,另一方面可以更準確和嚴格地執行用戶的操作流程,驗證人機交互界面在處理用戶正常輸入和異常輸入的處理能力。
(1)安全性測試
服務器操作系統安全性測試主要依據GJB 7698-2012中第一級安全要求的內容開展,同時依據GJB 7696-2012 的要求,增加用戶密碼保護、應用安裝控制、應用執行控制、網絡傳輸加密、網絡端口保護、網絡攻擊行為監測、數據存儲加密等安全保護能力的測試。
(2)安裝性測試
安裝性測試主要針對多種安裝方式、不同的安裝配置等內容開展測試,在測試過程中,要注重操作系統安裝后的穩定性驗證,即安裝成功后并不終止測試,使用終端命令、圖形界面菜單項執行操作系統基本功能,當基本功能能夠正確完成操作時,安裝性測試才能正常終止。
針對系統升級,擬在回歸測試時,以首輪測試版本為基礎,驗證系統升級功能的實現情況。
(3)標準符合性測試
標準符合性測試是操作系統測試很重要的一項測試內容,在本次測試中執行執行GB18030、GB2312 測試集驗證操作系統在中文編輯、中文輸入等方面與GB18030 標準、GB2312 標準的一致性。
(4)兼容性測試
測試操作系統與硬件、操作系統與軟件、操作系統對文件格式的兼容性。
硬件兼容性主要考慮被測操作系統是否能夠兼容總線、計算設備、內存設備、存儲設備、網絡設備以及鍵盤鼠標等的主流型號,這些硬件通過驅動安裝到被測操作系統上是否能夠正常工作。
軟件兼容性主要考慮被測操作系統能否對數據庫管理系統、中間件平臺、辦公軟件以及其他32 位和64 位應用程序的適配性,在操作系統應用程序支持能力測試中,編制僅依賴于glibc 基礎庫的測試程序,編譯成32 位、64 位二進制可執行文件,驗證操作系統對32 位及64 位應用的支持能力(能夠說明具備相應的支持能力即可,實際的應用需要開發方編寫相應的32 位或64 位運行依賴庫,超出glibc 基礎庫以外的內容需要操作系統廠商配合單獨開發)。
文件格式兼容性主要考慮圖形/圖像文件、版式文件、壓縮文件等類型文件主要格式的兼容性。
(5)互操作性測試
操作系統互操作性測試主要采用如下方法:設置網絡連接、http 服務測試操作系統與Windows、主流Unix、其它Linux 的網絡互通性。使用網絡鄰居、瀏覽器或命令行方式進行訪問;互相拷貝文件,打開拷貝后的文檔能正常顯示。設置FTP 服務測試操作系統與其它系統之間的文件互相訪問,使用瀏覽器或FTP 客戶端軟件互相訪問;互相拷貝文件,打開拷貝后的文檔能正常顯示。
(6)接口測試
在操作系統接口測試中,等價類劃分和邊界值分析是最常用的測試方法。針對操作系統提供的每一個API,要分析該函數調用的輸入參數和輸出參數,對每個參數確定它的邊界值,定義它的等價類,對正常值、異常值、邊界值、臨界值設計測試用例,執行測試程序后分析結果,判斷該函數是否正確實現了它的定義以及對各種異常數據是否能夠進行正確地判斷。例如,在操作系統類故障檢測中,針對操作系統多個API 進行失效率測試,通過向系統調用輸入異常參數來檢測與進程終止或系統崩潰等有關系統健壯性的問題。系統調用使用事先構造好的參數用例庫,在每次調用中,將各種合法的和非法的參數組合以產生大量測試用例,通過收集測試用例的執行結果,來評測操作系統接口實現的正確性。
接口測試要考慮任務管理接口、資源管理接口、通信管理接口、數據處理接口、圖形處理接口、字符處理接口、增強接口、硬件編程接口測試。
(7)可靠性測試
測試操作系統在核心API 的魯棒性、系統長時間運行能力和開關機穩定性方面的情況。
核心API 的魯棒性方面,通過編制測試用例,向操作系統提供的核心API 輸入合法范圍值、臨界范圍值、不合法范圍值(合法范圍內各區間外的參數)測試系統調用接口非法參數以及臨界參數的處理能力[3]。
長時間不間斷運行能力方面,分別構造空載、隨機負載和重負載實驗條件,測試系統168 小時長時間開機運行的能力,重點考察是否存在內存泄漏以及網絡響應相關故障。其中重負載采用運行ltpstress 軟件進行加壓,整機CPU 平均負載不低于95%、內存平均負載不低于95%、外存平均負載不低于95%。
開關機穩定性方面,在空載條件下,無硬件故障及人為故障時,測試非正常關機導致的外存不一致性故障全程修復時間不超過1 分鐘的次數概率;考察連續正常、啟動關閉系統(啟動至顯示登錄界面即關機),不執行任何額外應用進程,直至出現故障,記錄無故障啟動次數及概率。
(8)高可用性測試
測試操作系統在單機和集群情況下的高可用能力。
單機方面,主要測試操作系統是否提供硬件故障的檢測、預警、診斷、隔離和故障處理后的服務恢復能力;測試是否提供單節點和網絡環境下靜態數據備份和動態實時數據同步能力;測試是否提供檢查點與恢復機制;測試是否提供基于日志文件的高可用文件系統支持能力。
集群方面,主要驗證操作系統的負載均衡、雙機熱備等支持能力。雙機熱備方面,采用keepalived 雙機熱備機制,通過在兩臺服務器上分別進行配置部署,通過心跳線的方式監聽兩臺服務器的活躍狀態,并在兩臺服務器上分別采用nginx 部署應用,后端采用共享存儲,對外提供虛擬ip 進行網頁訪問。在訪問過程中,通過斷掉一臺網絡連接驗證應用是否能正常訪問。
重點考察國產服務器操作系統(龍芯版、飛騰版、申威版)的功能、性能、接口、安全性、兼容性測試等,總結了測試策略和測試方法,為國產服務器操作系統的測試工作提供思路。