桌面linux操作系统整机兼容性测试方法研究
2017-09-07许侃张志华牟永敏
许侃+张志华+牟永敏
摘要:本论文的研究内容就是按照软件测试的流程对桌面linux操作系统的整机兼容性测试的测试需求及测试对象进行分析,方法为通过对linux内核的硬件管理以及电源管理功能的分析与研究,使用自动化工具结合测试脚本对整机兼容性进行测试,这种测试方法有针对性且覆盖了测试对象的测试点,从而提高桌面linux操作系统的测试质量。
关键词:linux内核;硬件管理;电源管理
中图分类号:TP316.81 文献标识码:A 文章编号:1007-9416(2017)05-0069-02
1 引言
1.1 背景
操作系统作为管理和控制计算机硬件与软件资源的计算机程序,是直接运行在计算机上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
随着社会的发展与进步,电脑在办公自动化中的作用愈发凸显,使人们越来越接近并熟悉了操作系统,尤其是微软开发的windows操作系统。据市场调研结构StarCounter公布的统计报告,中国目前使用的windows各个版本操作系统PC市场份额不低于97.1%。但是随着2014年5月20日中央国家政府采购中心的一则通告“国家机关进行信息类协议供货强制节能产品采购,所有计算机类产品不允许安装windows8操作系统”发布之后,国产桌面linux操作系统产业犹如雨后春笋一般大量涌现,而作为政府采购windows操作系统的继任者,国产桌面linux系统是否可以肩负起替代者的责任就是首先要面对的问题。如果抛开操作系统的易用性以及使用习惯等因素,与整机运行的兼容性就称为了桌面linux系统能否适应办公环境的重要因素。
1.2 研究内容
操作系统也可以视为一种特殊的软件,既然是软件那么在出厂前就应该按照软件测试流程进行全方位的测试。操作系统主要需要完成的两个功能为:
第一,与硬件部分进行交互,未包含在硬件平台上的所有底层可编程部件提供服务;
第二,为运行在计算机系统上的应用程序提供执行环境;
本次研究的主要内容是通过对操作系统整机兼容性测试进行分析,找到一种较为完善的整机兼容性测试方法。只有拥有完善的测试方法,有效的指导测试的进行,测试结果才是有效的且具有说服力,从而更好的保证操作系统的质量,使得国产桌面linux操作系统可以在市场中长期而稳定的存在下去,而不是仅仅作为一个傀儡在政府的强制约束下取代windows系统。
1.3 整机兼容性测试概述
兼容性测试指的是测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上,不同的网络等环境中是否能够正常运行的测试。整机兼容性测试属于兼容性测试范畴中的硬件兼容性测试,具体到本篇报告中测试的核心内容是测试操作系统是否可以在特定的整机平台上长时间稳定的工作。
整机兼容性测试的意义在于:
(1)使用特定硬件平台对操作系统进行测试,发现问题,推动操作系统质量的提升;
(2)通过长时间的带载运行测试系统稳定性,保证了系统存在的价值;
(3)覆盖尽可能多的整机硬件对操作系统进行测试,测试操作系统可实现硬件应有的功能。
2 测试对象研究
2.1 操作系统与硬件关系概述
按照软件测试的流程,首先要对测试对象进行测试需求的分析。对整机兼容性测试进行需求分析的理论基础,是要首先明确操作系统与硬件的关系,只有理解了操作系统与硬件的工作原理,才能有针对性的对测试对象进行测试。
linux作为一个操作系统包含了最主要的内核以及内核提供的工具,它提供了一个完整的操作系统中最底层的硬件控制与资源管理结构。linux系统的内核被称为“kernel”,硬件管理是内核的主要工作之一,它通过设备驱动去“认识”硬件设备对硬件进行管理。内核对硬件进行管理的輸入来自于用户通过用户界面(包括shell,桌面,应用等)的命令,经过命令与内核的沟通产生了系统调用,而最终由系统调用触发内核的函数对硬件进行操作。
2.2 整机兼容性测试需求分析
2.2.1 硬件资源测试对象分析
整机中的硬件资源通过操作系统实现其功能的原理是:
(1)用户通过操作系统界面发出操作指令;
(2)API接口程序接收用户指令并发起系统调用,例如read(),write(),fork();
(3)系统调用通过中断向内核发出请求,内核调用相关函数来完成指令,例如sys_read(),sys_write(),sys_fork();
2.2.2 电源管理模块测试对象分析
高级电源管理(Advanced Power Manager),简称电源管理模块APM。在整机兼容性测试中,电源管理模块主要功能体现为:系统电源管理与设备电源管理。
(1)系统电源管理。linxu系统的电源管理挂起的实现原理为系统收到挂起指令后首先冻结用户态进程和内核态任务,按照注册设备的注册顺序调用suspend的回调函数,挂起核心设备和使CPU进入挂起态由内核将所有进程设置为停止并保存所有进程的相关信息。
挂起的具体流程见图 1。
系统电源管理为挂起提供了两种方式;
1)suspend to mem(挂起到内存)系统把当前信息储存在内存中,只有内存等几个关键部件通电,这时计算机处在高度节电状态,按任意键后,计算机从内存中读取信息很快恢复到原来状态,在运行挂起操作时增加mem参数即可执行suspend to mem操作。
2)suspend to disk(挂起到硬盘)计算机自动关机,关机前将当前数据存储在硬盘上,用户下次按开关键开机时计算机将无须启动系统,直接从硬盘读取数据,恢复原来状态,在运行挂起操作时增加disk参数即可执行suspend to disk操作。endprint
(2)设备电源管理。在Linux系统的硬件设备管理方面,電源管理系统已经封装好了统一的接口,各种类型的设备驱动只需要实现相关的接口函数,操作系统在收到操作信号的时候就会通知驱动完成这些操作。在一般设备驱动基础之上,使用pm_register和pm_unregister进行注册和注销,使用pm_access进行挂起的可行性检测,使用pm_callback函数执行状态通知后的回调响应,以此来控制设备的供电。
2.2.3 明确测试对象
通过了以上分析,我们对操作系统的硬件管理功能有了更深入的了解,有了理论的支持,接下来就可以做整机硬件兼容性的测试需求分析了。整机兼容性涉及到的硬件测试对象为:
(1)中央处理器;
(2)主存储器:内存;
(3)外存储器:硬盘,光驱,U盘;
(4)输出设备:显卡等;
以上设备为普通台式计算机包含的基本硬件,可以概括为一个测试对象既整机硬件,进行整机兼容性测试时测试点与测试用例均应涵盖以上硬件的测试。
(5)电源管理功能作为内核的一个重要功能独立作为一个测试对象,对于该测试对象的测试用例既要涵盖电源管理功能里的系统电源管理中不同挂起方式的测试,还有设备管理的功能实现。
2.3 测试点归纳
通过上述对测试对象的分析我们可得出结论,整机兼容性测试的测试点可归纳为:
(1)对硬件资源的兼容性测试可通过硬件的功能是否实现来验证。1)CPU可正常进行处理指令、执行操作、控制时间,处理数据等操作;2)内存可对数据进行读写;3)硬盘,光驱,U盘均可实现数据读写;4)显卡可正常显示;
(2)对电源管理模块的兼容性测试可通过两部分来测试:1)系统电源管理可通过挂起功能是否实现来验证;2)设备电源管理可通过挂起唤醒后设备是否加电来验证。
3 测试设计
3.1 确定测试方法
整机的兼容性测试需要操作系统长时间在硬件平台上运行,与整机的硬件进行充分的“磨合”,以便容易发现兼容性问题。通过对归纳的测试点分析,发现以下特点:
(1)硬件资源的测试方法固定而且为单一的长时间重复性操作;
(2)电源管理模块的测试方法为单一的长时间重复性操作;
针对上述特点,本次测试比较符合使用自动化工具进行测试的条件,所以可以选择采用自动化测试工具进行测试,好处是可以自动化工具模拟手动测试并施加测试负载,达到长时间手动测试的效果。
硬件资源的自动化测试可以选择适合linux系统的“烧机”软件进行测试,“烧机”软件的测试项基本都包含了整机的常用硬件设备,并且相应设备的测试套件可覆盖该硬件设备的功能测试点。
电源管理模块可使用rtcwake命令来实现测试实施。Rtcwake命令可以用来是系统进入睡眠状态,也可以在制定的时间唤醒系统,可通过脚本的形式使用rtawake命令进行循环来测试电源模块的功能。关于设备电源管理测试时可着重关注板载USB接口的唤醒加电测试,所以可以在使用脚本进行挂起测试时将板载USB接口满插U盘测试唤醒后的加电状态。
3.2 测试的可行性分析
在确定了整机兼容性测试方法后,我们要做的就是对该测试方法进行可行性的分析;
适用于Linux的烤机软件工具目前并不少见,这类软件可同时用于计算机所有及部分子系统的稳定性和兼容性测试,它会通过对各个常用硬件设备进行带载的持续性测试使那些间歇出现或隐藏的问题暴露出来,以便在测试软件运行过后使系统与整机使用起来有更大的把握。
电源管理模块的使用rtcwake命令编写脚本可以长时间(时间可以由脚本设置)重复进入和离开挂起状态,并将运行结果以日志的形式打印出来,以便于人工读取测试结果对其进行判断和分析。因为rtcwake命令使用RTC架构,可驱动任何支持标准驱动模式的设备,所以在对设备电源管理测试时同样可使用rtcwake命令,可通过脚本实现每次系统唤醒后U盘设备需加电自动挂载,每成功挂载一次可向U盘中写入当前挂载次数,当测试结束后将该挂载次数与唤醒次数进行对比来检查设备加电情况。
4 结语
本文按照软件测试流程对整机兼容性测试的测试对象进行分析,通过细化测试点并根据其特点制定了采用自动化工具测试以及编写脚本辅助测试的方法,使测试方法覆盖了对所有测试对象。
从理论上分析,本次研究归纳的测试点与测试项基本符合整机兼容性的测试需求,测试方法基本覆盖了测试对象的功能点,测试工具和脚本均可运行在linux系统环境下运行,所以该整机兼容性测试方法有一定的可行性。在今后的实际测试中,可以按照该方法与思路进行测试并在实践中不断完善,以期为提高桌面linux系统测试质量保驾护航。
参考文献
[1][美] 博韦,西斯特.深入理解LINUX内核(第3版)[M] .(陈莉君,张琼声,张宏伟,译).北京:中国电力出版社,2008.01.01 .
[2]董峰.深入剖析Linux内核与设备驱动[M].北京:机械工业出版社,2015.03.01.
[3][英]萨莫维尔.软件工程(第九版)[M].(程成等 译).北京:机械工业出版社,2011.05.01.
[4][美]佩腾(Rom Patton).软件测试(原书第二版)[M] .(张小松,王钰,曹跃,译).北京:机械工业出版社,2006.04.01.
[5]周焕来,贾海涛.软件功能测试自动化实战教程[M].北京:人民邮电出版社,2015.03.01.endprint