APP下载

国产服务器操作系统测试策略及测试方法研究

2021-04-04邵红李李亚伟

电子测试 2021年16期
关键词:测试程序功能测试测试用例

邵红李,李亚伟

(中国软件评测中心,北京,100044)

1 测试策略

(1)依据相关标准进行测试

参照《军用服务器操作系统技术要求》、《军用桌面服务器操作系统安全要求》、《军用桌面服务器操作系统硬件兼容性要求》、《军用桌面服务器操作系统硬件编程接口》、《军用桌面服务器操作系统应用编程接口》、《军用服务器操作系统测评要求》、《Linux 服务器操作系统测试方法》等国军标编写。

(2)自动方式与手工方式相结合

操作系统的测试在手工方式基础上加入自动或半自动测试工具辅助进行,在功能测试方面采用脚本录制回放工具执行部分功能测试;性能测试方面采用性能基准测试工具LMBench、UnixBench 等评估操作系统综合性能,采用X11perf 工具测试图形处理性能。

(3)测试和审查相结合

对于可测性指标,通过测试验证;对于文档一致性等需求项,采用文档审查等方法验证。有些指标或需求项也可采用两者综合的办法验证。

(4)功能覆盖

完全覆盖指标要求,逐项设计测试用例,对每一个功能点至少执行一次。

在测试实施过程中,将针对被测软件的指标和需求项进行分析,视重要程度或关键性确定测试项的优先等级,合理分配测试资源。同时认真执行GJB2725A-2001《测试实验室和校准实验室通用要求》和《军用软件测试实验室测试过程和技术能力要求》[1],确保测试的质量。

2 测试技术与方法

(1)文档审查

对国产服务器操作系统(龙芯版、飞腾版、申威版)所有技术文档按照GJB2786A《军用软件开发通用要求》、GJB438B《军用软件开发文档通用要求》进行检查,同时利用文档审查单的形式对文档的完整性、准确性,以及文档与软件的一致性、文档与文档的一致性等情况采取分类、分层等方式逐一进行审查。

(2)功能测试

在操作系统功能测试中,将广泛使用通用的黑盒测试技术,包括功能分解、等价类划分、边界值分析、错误猜测法等方法,针对操作系统每个功能的正常操作流程和异常操作情况进行测试。在进基本行功能测试时主要采用如下方法:

每个软件功能必须被至少一个测试用例或一个被认可的异常所覆盖;

用基本数据类型和数据值进行测试;

用一系列合理的数据类型和数据值运行,测试超负荷、饱和及其它“最坏情况”的结果;

用假想的数据类型和数据值运行,测试排斥不规则输入的能力;

每个功能的合法边界值和非法边界值都必须被作为测试用例。

此外,针对操作系统基础的、特定的功能,要开展专门的测试方法研究。

内核功能测试:主要通过编写测试程序,调用相应接口实现任务调度、任务间通讯、内核同步、异步中断、存储管理、进程管理等内核功能,验证其实现的正确性以及与标准的一致性;

系统管理功能测试:通过图形化界面提供的操作入口,验证图形与命令行、设备管理、系统监视、系统日志、图形化系统工具、系统服务配置等功能的正确性;

网络服务测试:验证操作系统对各种网络协议的支持能力;通过图形化界面提供的操作入口,验证代理服务、网络文件系统服务、网络时间服务、网络邮件服务、WEB 服务、网络域名服务等各类服务实现的正确性;

桌面环境功能测试:通过图形化界面提供的操作入口,验证登录认证、文件操作、磁盘管理、桌面布局、观感设置、用户管理、应用工具等功能实现的正确性;

文件系统支撑能力测试:通过图形化界面提供的操作入口或编写测试程序,验证不同文件系统的分区、读写功能,以及虚拟文件系统、文件系统日志、高速缓存、文件系统检查与修复、目录操作、文件管理等功能实现的正确性;

中文支持能力:通过键盘输入、屏幕及打印输出,验证中文键盘输入、中文字体、格式以及编码等中文支持能力实现的正确性。

(3)性能测试

对相关标准、软件需求规格说明中规定的性能需求逐项进行测试[2],以验证其性能是否满足要求。在进行性能测试时,要求:

测试程序在有速度要求时完成功能的时间;

测试程序完成功能所能处理的数据量;

测试程序各部分的协调性,如高速、低速操作的协调;

测试软/硬件中因素是否限制了程序的性能;

测试程序的负载能力;

测试程序运行占用的空间。

(4)人机交互界面测试

3 根据用户感官体验和功能要求,开展图形界面的功能测试

根据用户的感官体验和功能要求,对照系统提供的《需求规格说明》、《用户手册》等文档要求,设定符合用户实际使用习惯的数据和流程,测试系统的人机交互界面是否能完成用户的请求,正常执行操作流程,并返回正确结果。同时,对人机交互界面的操作与风格进行考核,测试与用户习惯和通用准则是否一致。

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 进行网页访问。在访问过程中,通过断掉一台网络连接验证应用是否能正常访问。

重点考察国产服务器操作系统(龙芯版、飞腾版、申威版)的功能、性能、接口、安全性、兼容性测试等,总结了测试策略和测试方法,为国产服务器操作系统的测试工作提供思路。

猜你喜欢

测试程序功能测试测试用例
某内花键等速传动轴八功能测试夹具设计
基于SmartUnit的安全通信系统单元测试用例自动生成
基于混合遗传算法的回归测试用例集最小化研究
基于Castle型机械手的三温量产测试平台实现
手机APP交互界面人因适合性测试程序的设计与实现
电气自动化控制设备可靠性测试探讨
基于依赖结构的测试用例优先级技术
软件回归测试用例选取方法研究