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