国产化实时操作系统接口集成测试方法研究

作者: 倪啸宇

国产化实时操作系统接口集成测试方法研究0

关键词:国产化;软件工程;实时操作系统;测试用例;集成与测试

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2024)28-0088-04

0 引言

随着海运、航空、通信、交通、工业生产自动化等领域蓬勃发展,实时操作系统在各行业得到广泛关注和应用。相应地,其功能变得愈加复杂,各功能接口数量也急剧增长。接口测试主要针对被测系统各组件功能性和稳定性进行验证,核心在于对数据传递、处理、控制和交互进行全面系统验证,同时还要检查各子系统和功能的逻辑关系[1]。国产化实时操作系统属于行业基本软件,其展现了我国信息化能力和水平的提升,更是保障我国信息安全的重要组成部分,因此其软件测试方法具有重要意义[2]。

许多国内外学者已经对实时操作系统的测试进行了一定程度的研究,石亦磊[3]基于扩展有限状态机(EFSM) 的嵌入式实时操作系统日志分析方法,郁发新[4]则提出一套嵌入式实时操作系统的性能衡量标准,董佳梁[5]等人提出了一个包含五大类评价指标的实时性评价体系,Tung等人[6]基于 AETG 系统提出了另一种参数化测试用例生成算法的工具 TCG,但是关于接口测试方向的研究还是比较少。接口测试是系统测试的重要内容和环节,而接口测试难点就是测试用例设计。本文针对国产化实时操作系统的接口测试流程和技术进行研究,基于基本功能组件划分的接口单元,设计了接口集成测试方案,并设计了集成测试程序用例,使得测试结果具有直观化和简洁化的特点。

1 测试内容

在接口测试活动中,主要任务是设计接口测试用例。接口测试用例的目的是验证接口是否能够按照预期实现,并且是否与接口文档一致,同时能够在存在异常输入参数时返回正确的错误响应状态码。在接口测试中,设计测试用例主要围绕3个方面展开:接口的输入参数、接口的业务逻辑以及接口的输出数据。总体而言,接口测试可以分为功能测试和非功能测试两个方面。其中,非功能测试需要测试接口的性能和安全性等方面,而功能测试则需要根据软件测试理论方法进行测试用例的设计[7]。本文主要关注软件接口的功能测试。

国产化实时操作系统根据接口提供的功能可分为不同类型,包括任务管理接口、任务同步与通信接口(如信号量接口、互斥量接口、条件变量接口、读写锁接口、消息队列接口、信号接口)、中断/异常管理接口、时钟/定时管理接口、内存管理接口、文件系统接口、设备管理接口以及网络通信接口。根据功能组件接口的功能实现必要性,可以将功能组件的接口进一步分为基本接口和扩展接口,如图1所示。

2 接口集成测试流程和方案设计

在国产化实时操作系统接口测试过程中,主要分为两个阶段:测试准备阶段和测试执行阶段,如图2所示。在测试准备阶段,首先需要分析接口测试的需求,然后根据这些需求设计接口集成测试用例,并搭建适当的测试环境,以确保测试用例能够有效执行。在这个过程中,测试环境的搭建和测试用例的设计可以同时进行。而在测试执行阶段,预先设计好的测试用例将在已经搭建完成的测试环境中执行,实时监控整个测试流程的进展和状态,并对测试结果进行全面记录和深度分析。

2.1 确认测试接口

获取被测的国产化实时操作系统接口测试需求,确认不同功能模块所包含测试的接口数量及信息,包括接口定义、输入参数、输出结果等内容,形成接口测试计划文档,保证所测试接口的正确性和一致性。

2.2 梳理测试接口

在操作系统测试的过程中,接口可以根据功能大类拆分为多个子功能模块,每个模块包含一系列实现特定功能的接口。为了有效测试这些接口,需要对其进行系统梳理和分析,具体过程按照接口测试计划文档开展。应依据接口基本信息对输入输出数据进行分析,详细描述测试点,并给出预期返回结果。在逐层深入地梳理与分析后,还须对接口的具体数量进行统计与核验,最终形成一份便于测试的接口说明文档。

2.3 设计合适的接口集成测试用例

在接口功能测试中,设计合理有效的测试用例是重点也是难点。接口测试用例主要关注3个方向:一是对接口输入参数的验证,包括必填项、类型、长度、边界值、有效值、组合及默认值校验;二是深入解析接口业务逻辑;三是对返回的接口响应数据进行详尽检查,重点关注参数返回内容和响应状态码。依据功能模块特点设计出合理的集成测试用例,集成测试用例的重点是通过一个测试程序,就能测试该功能模块包含的所有接口,并根据测试结果直观筛选出符合要求和不符合要求的接口,从而简洁高效地得出测试结论。针对设计的集成测试用例,须进行合理性验证和审查。同时,须给出集成测试的接口测试用例手册,用例手册要对测试用例的测试环境、安装、执行和所测接口信息、预期测试结果等做出详细介绍。

2.4 搭建接口测试环境

与开发者确认被测国产化实时操作系统所部署的硬件和软件环境。硬件环境包括安装此国产化实时操作系统的服务器、网卡、硬盘配置、交换机等;软件环境包括操作系统内核、编译环境等。搭建与使用该系统一致的测试环境,以确保测试结果的准确性、合理性和普遍适用性。

2.5 执行测试

将测试用例程序加载到测试环境中,并检查执行测试用例程序所需的前提条件是否满足。执行测试用例时,应按照测试用例手册中所述的方法进行操作,记录测试过程并形成接口测试记录文档。同时,将实际测试结果与预期测试结果进行对比,生成接口测试报告。对于出现问题的接口,须进行深入分析和记录,生成问题报告单,并进行后续的回归测试。

3 国产化实时操作系统接口集成测试

本文以内存管理功能组件接口作为范例,依据第2节所述的测试流程,从内存管理接口的确认、分析和测试环境3个方面进行主要内容的归纳和介绍,并详细描述了内存管理功能组件接口测试用例的设计思路。在搭建的测试环境中运行测试用例后,得到直观的测试结果。测试人员通过对照预期测试结果,可以便捷地判断被测接口是否通过。

3.1 内存管理接口信息

内存管理包含12个功能接口,主要负责管控内存堆的内部信息,包括动态分配物理内存块的初始化地址、占用大小,以及构建并维护一个分配表。这个分配表详尽指明了已分配使用的内存区域、尚未占用的闲置区域及其各自的具体容量,从而实现对整个内存空间状态的精准追踪与高效利用。部分接口的简要信息如表1所示。

3.2 内存管理接口信息分析

依据提供的接口基本信息表,对接口进行测试分析,结合接口的功能对测试点进行描述,并给出预期测试结果,简要归纳如表2所示。

3.3 内存管理接口的集成测试用例设计和实现

在前有接口信息和接口测试点等内容的基础上,本论文对内存管理接口的测试进行层层设计,将所有接口测试集成在一个测试用例中,并设计如下测试用例方案:1) 调用mpart_create接口函数创建内存分区,然后调用mpart_getinfo接口函数获取内存分区信息,包括已使用内存和空闲内存;2) 调用mpart_alloc接口函数在分区中分配缓存,再次调用mpart_getinfo接口函数获取内存分区使用情况;3) 将第二步分配的缓存区域的第一个字节视为字符‘ a’ 进行处理;4) 调用mpart_alloc接口函数在分区中分配另一个缓存,再次调用mpart_getinfo接口函数获取内存分区使用情况;5) 调用mpart_realloc接口函数对第二步分配的缓存空间重新分配空间大小,调用mpart_getinfo接口函数获取重新划分后的内存分区信息,判断新分区是否仍为‘a’,再次调用mpart_getinfo接口函数获取内存分区信息;6) 调用mpart_free接口函数释放第五步重新划分后分配的缓存,再次调用mpart_getinfo接口函数获取内存分区信息;7) 调用mem_findmax函数接口查找当前用户堆的最大空闲块,并打印信息;8) 调用mpart_realloc函数接口重新分配第四步分配的缓存,调用mpart_getinfo函数接口获取内存分区信息,然后调用mpart_findmaxfree函数接口获取内存分区的最大空闲块;9) 调用xnmalloc接口函数分配16字节大小空间,该空间位于整个用户堆的非已分配内存分区中。调用mpart_addmem接口函数将该16字节空间添加到当前内存分区,再次调用mpart_getinfo接口函数以获取内存分区信息;10) 调用mpart_memalign接口函数以确保分配的缓存空间边界对齐;11) 调用mem_show 接口函数以显示当前用户堆内存情况;12) 调用mpart_delete 接口函数删除当前内存分区;13) 调用mem_show接口函数以显示当前用户堆内存情况。每一步通过判断函数来验证接口是否正确调用,并核对返回参数是否正确,若异常则会出现错误提示,若正常则会按照预期结果输出返回值,部分实现代码如下所示。

3.4 测试环境搭建及测试用例执行

在飞腾2000+架构的服务器(64核128G内存)上安装国产麒麟操作系统,并安装一个8核16G内存的虚拟机。该虚拟机的操作系统为被测的国产化实时操作系统。在完成必要的软件安装和部署后,安装并编译集成测试用例,运行测试用例并输出结果,结果如图3所示。通过分析测试点的描述以及测试用例方案中的步骤,可以直观地判断各接口调用情况。根据测试结果显示,所测试的内存管理接口功能测试均通过。

4 结论

本文为国产化实时操作系统的接口测试设计了一套测试方法,包括整个测试流程和接口集成测试用例方案,并以内存管理功能接口测试为例,详细介绍了接口集成测试的前期准备、测试用例设计、执行测试以及结果分析等方面,并重点阐述了测试用例的测试点和设计思路。经过测试验证,本文提出的整套流程符合测试规范,接口集成测试用例的结果高效且直观,为测试人员从事相关活动提供了可参考的指导方案。

上一篇 点击页面呼出菜单 下一篇