許侃+張志華+牟永敏
摘要:本論文的研究內容就是按照軟件測試的流程對桌面linux操作系統(tǒng)的整機兼容性測試的測試需求及測試對象進行分析,方法為通過對linux內核的硬件管理以及電源管理功能的分析與研究,使用自動化工具結合測試腳本對整機兼容性進行測試,這種測試方法有針對性且覆蓋了測試對象的測試點,從而提高桌面linux操作系統(tǒng)的測試質量。
關鍵詞:linux內核;硬件管理;電源管理
中圖分類號:TP316.81 文獻標識碼:A 文章編號:1007-9416(2017)05-0069-02
1 引言
1.1 背景
操作系統(tǒng)作為管理和控制計算機硬件與軟件資源的計算機程序,是直接運行在計算機上的最基本的系統(tǒng)軟件,任何其他軟件都必須在操作系統(tǒng)的支持下才能運行。
隨著社會的發(fā)展與進步,電腦在辦公自動化中的作用愈發(fā)凸顯,使人們越來越接近并熟悉了操作系統(tǒng),尤其是微軟開發(fā)的windows操作系統(tǒng)。據市場調研結構StarCounter公布的統(tǒng)計報告,中國目前使用的windows各個版本操作系統(tǒng)PC市場份額不低于97.1%。但是隨著2014年5月20日中央國家政府采購中心的一則通告“國家機關進行信息類協(xié)議供貨強制節(jié)能產品采購,所有計算機類產品不允許安裝windows8操作系統(tǒng)”發(fā)布之后,國產桌面linux操作系統(tǒng)產業(yè)猶如雨后春筍一般大量涌現(xiàn),而作為政府采購windows操作系統(tǒng)的繼任者,國產桌面linux系統(tǒng)是否可以肩負起替代者的責任就是首先要面對的問題。如果拋開操作系統(tǒng)的易用性以及使用習慣等因素,與整機運行的兼容性就稱為了桌面linux系統(tǒng)能否適應辦公環(huán)境的重要因素。
1.2 研究內容
操作系統(tǒng)也可以視為一種特殊的軟件,既然是軟件那么在出廠前就應該按照軟件測試流程進行全方位的測試。操作系統(tǒng)主要需要完成的兩個功能為:
第一,與硬件部分進行交互,未包含在硬件平臺上的所有底層可編程部件提供服務;
第二,為運行在計算機系統(tǒng)上的應用程序提供執(zhí)行環(huán)境;
本次研究的主要內容是通過對操作系統(tǒng)整機兼容性測試進行分析,找到一種較為完善的整機兼容性測試方法。只有擁有完善的測試方法,有效的指導測試的進行,測試結果才是有效的且具有說服力,從而更好的保證操作系統(tǒng)的質量,使得國產桌面linux操作系統(tǒng)可以在市場中長期而穩(wěn)定的存在下去,而不是僅僅作為一個傀儡在政府的強制約束下取代windows系統(tǒng)。
1.3 整機兼容性測試概述
兼容性測試指的是測試軟件在特定的硬件平臺上、不同的應用軟件之間、不同的操作系統(tǒng)平臺上,不同的網絡等環(huán)境中是否能夠正常運行的測試。整機兼容性測試屬于兼容性測試范疇中的硬件兼容性測試,具體到本篇報告中測試的核心內容是測試操作系統(tǒng)是否可以在特定的整機平臺上長時間穩(wěn)定的工作。
整機兼容性測試的意義在于:
(1)使用特定硬件平臺對操作系統(tǒng)進行測試,發(fā)現(xiàn)問題,推動操作系統(tǒng)質量的提升;
(2)通過長時間的帶載運行測試系統(tǒng)穩(wěn)定性,保證了系統(tǒng)存在的價值;
(3)覆蓋盡可能多的整機硬件對操作系統(tǒng)進行測試,測試操作系統(tǒng)可實現(xiàn)硬件應有的功能。
2 測試對象研究
2.1 操作系統(tǒng)與硬件關系概述
按照軟件測試的流程,首先要對測試對象進行測試需求的分析。對整機兼容性測試進行需求分析的理論基礎,是要首先明確操作系統(tǒng)與硬件的關系,只有理解了操作系統(tǒng)與硬件的工作原理,才能有針對性的對測試對象進行測試。
linux作為一個操作系統(tǒng)包含了最主要的內核以及內核提供的工具,它提供了一個完整的操作系統(tǒng)中最底層的硬件控制與資源管理結構。linux系統(tǒng)的內核被稱為“kernel”,硬件管理是內核的主要工作之一,它通過設備驅動去“認識”硬件設備對硬件進行管理。內核對硬件進行管理的輸入來自于用戶通過用戶界面(包括shell,桌面,應用等)的命令,經過命令與內核的溝通產生了系統(tǒng)調用,而最終由系統(tǒng)調用觸發(fā)內核的函數對硬件進行操作。
2.2 整機兼容性測試需求分析
2.2.1 硬件資源測試對象分析
整機中的硬件資源通過操作系統(tǒng)實現(xiàn)其功能的原理是:
(1)用戶通過操作系統(tǒng)界面發(fā)出操作指令;
(2)API接口程序接收用戶指令并發(fā)起系統(tǒng)調用,例如read(),write(),fork();
(3)系統(tǒng)調用通過中斷向內核發(fā)出請求,內核調用相關函數來完成指令,例如sys_read(),sys_write(),sys_fork();
2.2.2 電源管理模塊測試對象分析
高級電源管理(Advanced Power Manager),簡稱電源管理模塊APM。在整機兼容性測試中,電源管理模塊主要功能體現(xiàn)為:系統(tǒng)電源管理與設備電源管理。
(1)系統(tǒng)電源管理。linxu系統(tǒng)的電源管理掛起的實現(xiàn)原理為系統(tǒng)收到掛起指令后首先凍結用戶態(tài)進程和內核態(tài)任務,按照注冊設備的注冊順序調用suspend的回調函數,掛起核心設備和使CPU進入掛起態(tài)由內核將所有進程設置為停止并保存所有進程的相關信息。
掛起的具體流程見圖 1。
系統(tǒng)電源管理為掛起提供了兩種方式;
1)suspend to mem(掛起到內存)系統(tǒng)把當前信息儲存在內存中,只有內存等幾個關鍵部件通電,這時計算機處在高度節(jié)電狀態(tài),按任意鍵后,計算機從內存中讀取信息很快恢復到原來狀態(tài),在運行掛起操作時增加mem參數即可執(zhí)行suspend to mem操作。
2)suspend to disk(掛起到硬盤)計算機自動關機,關機前將當前數據存儲在硬盤上,用戶下次按開關鍵開機時計算機將無須啟動系統(tǒng),直接從硬盤讀取數據,恢復原來狀態(tài),在運行掛起操作時增加disk參數即可執(zhí)行suspend to disk操作。endprint
(2)設備電源管理。在Linux系統(tǒng)的硬件設備管理方面,電源管理系統(tǒng)已經封裝好了統(tǒng)一的接口,各種類型的設備驅動只需要實現(xiàn)相關的接口函數,操作系統(tǒng)在收到操作信號的時候就會通知驅動完成這些操作。在一般設備驅動基礎之上,使用pm_register和pm_unregister進行注冊和注銷,使用pm_access進行掛起的可行性檢測,使用pm_callback函數執(zhí)行狀態(tài)通知后的回調響應,以此來控制設備的供電。
2.2.3 明確測試對象
通過了以上分析,我們對操作系統(tǒng)的硬件管理功能有了更深入的了解,有了理論的支持,接下來就可以做整機硬件兼容性的測試需求分析了。整機兼容性涉及到的硬件測試對象為:
(1)中央處理器;
(2)主存儲器:內存;
(3)外存儲器:硬盤,光驅,U盤;
(4)輸出設備:顯卡等;
以上設備為普通臺式計算機包含的基本硬件,可以概括為一個測試對象既整機硬件,進行整機兼容性測試時測試點與測試用例均應涵蓋以上硬件的測試。
(5)電源管理功能作為內核的一個重要功能獨立作為一個測試對象,對于該測試對象的測試用例既要涵蓋電源管理功能里的系統(tǒng)電源管理中不同掛起方式的測試,還有設備管理的功能實現(xiàn)。
2.3 測試點歸納
通過上述對測試對象的分析我們可得出結論,整機兼容性測試的測試點可歸納為:
(1)對硬件資源的兼容性測試可通過硬件的功能是否實現(xiàn)來驗證。1)CPU可正常進行處理指令、執(zhí)行操作、控制時間,處理數據等操作;2)內存可對數據進行讀寫;3)硬盤,光驅,U盤均可實現(xiàn)數據讀寫;4)顯卡可正常顯示;
(2)對電源管理模塊的兼容性測試可通過兩部分來測試:1)系統(tǒng)電源管理可通過掛起功能是否實現(xiàn)來驗證;2)設備電源管理可通過掛起喚醒后設備是否加電來驗證。
3 測試設計
3.1 確定測試方法
整機的兼容性測試需要操作系統(tǒng)長時間在硬件平臺上運行,與整機的硬件進行充分的“磨合”,以便容易發(fā)現(xiàn)兼容性問題。通過對歸納的測試點分析,發(fā)現(xiàn)以下特點:
(1)硬件資源的測試方法固定而且為單一的長時間重復性操作;
(2)電源管理模塊的測試方法為單一的長時間重復性操作;
針對上述特點,本次測試比較符合使用自動化工具進行測試的條件,所以可以選擇采用自動化測試工具進行測試,好處是可以自動化工具模擬手動測試并施加測試負載,達到長時間手動測試的效果。
硬件資源的自動化測試可以選擇適合linux系統(tǒng)的“燒機”軟件進行測試,“燒機”軟件的測試項基本都包含了整機的常用硬件設備,并且相應設備的測試套件可覆蓋該硬件設備的功能測試點。
電源管理模塊可使用rtcwake命令來實現(xiàn)測試實施。Rtcwake命令可以用來是系統(tǒng)進入睡眠狀態(tài),也可以在制定的時間喚醒系統(tǒng),可通過腳本的形式使用rtawake命令進行循環(huán)來測試電源模塊的功能。關于設備電源管理測試時可著重關注板載USB接口的喚醒加電測試,所以可以在使用腳本進行掛起測試時將板載USB接口滿插U盤測試喚醒后的加電狀態(tài)。
3.2 測試的可行性分析
在確定了整機兼容性測試方法后,我們要做的就是對該測試方法進行可行性的分析;
適用于Linux的烤機軟件工具目前并不少見,這類軟件可同時用于計算機所有及部分子系統(tǒng)的穩(wěn)定性和兼容性測試,它會通過對各個常用硬件設備進行帶載的持續(xù)性測試使那些間歇出現(xiàn)或隱藏的問題暴露出來,以便在測試軟件運行過后使系統(tǒng)與整機使用起來有更大的把握。
電源管理模塊的使用rtcwake命令編寫腳本可以長時間(時間可以由腳本設置)重復進入和離開掛起狀態(tài),并將運行結果以日志的形式打印出來,以便于人工讀取測試結果對其進行判斷和分析。因為rtcwake命令使用RTC架構,可驅動任何支持標準驅動模式的設備,所以在對設備電源管理測試時同樣可使用rtcwake命令,可通過腳本實現(xiàn)每次系統(tǒng)喚醒后U盤設備需加電自動掛載,每成功掛載一次可向U盤中寫入當前掛載次數,當測試結束后將該掛載次數與喚醒次數進行對比來檢查設備加電情況。
4 結語
本文按照軟件測試流程對整機兼容性測試的測試對象進行分析,通過細化測試點并根據其特點制定了采用自動化工具測試以及編寫腳本輔助測試的方法,使測試方法覆蓋了對所有測試對象。
從理論上分析,本次研究歸納的測試點與測試項基本符合整機兼容性的測試需求,測試方法基本覆蓋了測試對象的功能點,測試工具和腳本均可運行在linux系統(tǒng)環(huán)境下運行,所以該整機兼容性測試方法有一定的可行性。在今后的實際測試中,可以按照該方法與思路進行測試并在實踐中不斷完善,以期為提高桌面linux系統(tǒng)測試質量保駕護航。
參考文獻
[1][美] 博韋,西斯特.深入理解LINUX內核(第3版)[M] .(陳莉君,張瓊聲,張宏偉,譯).北京:中國電力出版社,2008.01.01 .
[2]董峰.深入剖析Linux內核與設備驅動[M].北京:機械工業(yè)出版社,2015.03.01.
[3][英]薩莫維爾.軟件工程(第九版)[M].(程成等 譯).北京:機械工業(yè)出版社,2011.05.01.
[4][美]佩騰(Rom Patton).軟件測試(原書第二版)[M] .(張小松,王鈺,曹躍,譯).北京:機械工業(yè)出版社,2006.04.01.
[5]周煥來,賈海濤.軟件功能測試自動化實戰(zhàn)教程[M].北京:人民郵電出版社,2015.03.01.endprint