SCI论文(www.lunwensci.com)
摘要:为解决软件开发周期过长而导致测试困难的问题,本案例将基于Robot框架设计自动化测试脚本,使用SA系统完成被测软件系统的接入,并利用GUI工具开展自动化测试过程。该系统具备可移植化、一体化特点,测试效率较高,将其应用到回归测试,能够缩减测试时间,且能避免软件测试中的重复性操作问题。基于Robot框架开发的软件自动化测试系统,缺陷发现率达到80%,用例测试速度为200/d,效果显著。
关键词:Robot框架;自动化测试;用例测试;SA系统
Research on Software Automation Testing Technology under Robot Framework
【Abstract】:To solve the problem of long software development cycles leading to testing difficulties,this case is based on the Robot framework to design automated testing scripts,use the SA system to complete the integration of the tested software system,and use GUI tools to carry out automated testing processes.The system has the characteristics of portability and integration,with high testing efficiency.Applying it to regression testing can reduce testing time and avoid repetitive operation problems in software testing.The software automation testing system developed based on the Robot framework has a defect detection rate of 80%and a test case testing speed of 200/d,with significant results.
【Key words】:Robot framework;automated testing;use case testing;SA system
Robot框架是一种开源通用自动化测试框架,其主要用于构建、执行和管理软件自动化测试脚本。在Robot框架下,支持各类型软件自动化测试,包括接口测试、Web应用测试、移动应用测试等。在自动化测试技术应用中,实现测试脚本并发执行和分布式测试,同时,加快测试执行速度和提高测试覆盖率,仍是软件测试领域研究的热点话题。因此,研究此项课题,具有十分重要的意义。
1自动化测试系统架构
软件自动化测试系统设计采用Robot框架驱动,脚本设计是系统构建的核心。系统为满足适用性、可扩展性的基本要求,使用GUI界面操作开发,在测试期间应具有稳定性、独立性,易于排错。系统运转期间,执行读取关键字和参数的基本功能,完成测试运行的过程,系统功能模块主要分为四类,分别为脚本、非界面驱动模块、日志生成模块、系统整合模块[1]。
2基于Robot框架软件自动化测试技术应用
2.1 SA系统构建
软件自动化测试功能基于SA系统实现,该技术目前正向5G的方向演进,实现单一网络通信。SA系统为扁平化结构,采用独立组网模式运行,其结构主要为核心网、接入网、用户终端。该系统中的EPC由两大功能实体组成,分别负责承载用户通信和承载数据管理的基本功能。本案例将利用SA系统完成对gNB的测试,建立系统网格单元,并在整体系统架构中建立逻辑节点。节点数量共计为4个,分别为gNB节点、MME节点、S-GW节点、P-GW节点。具体功能模块包括无线资源管理、数据流加密、平面、广播信息组织发送等。其中,系统网格单元之中的MME节点负责安全控制、移动管理、用户认证、NAS信令加密功能;S-GW节点负责数据传输、数据加密、发包标记、UE计费等功能;P-GW节点负责地址分配、速率控制、业务计费。
在划分好SA系统的网格单元之后,基于5G通信的标准,扩大载波带宽,完成业务数据的重组。峰值速率达到15Gbits/s,流量密度达到10Mbps以上,时延控制在1ms以内,载波带宽为100MHz,用户容量可以达到1亿以上[2]。
2.2测试用例
2.2.1用例介绍
本案例研究在5G通信网络下,用户设备在传输过程中的篡改行为,并在SA系统内完成数据的加密处理以避免外界攻击。测试软件在使用过程中,数据加密操作成功,且在不同的加密通道内具有适用性。在验证过程中,所使用和签订的加密协议属于IPSec协议,该加密功能应用基于隧道实现,通过在两端建立加密端点后,利用密匙建立通道。当数据传输到另一端节点之后,完成数据解密的过程,最终发送给EPC处理。
测试之前,搭建Windows系统,将其视为网关并安装软件,指定文件加密路径,配置加密协议并验证其兼容性,随后建立加密通道。该过程中,共计搭建两个系统,前者的传输路由和接收路由分别为10.68.163.188和10.68.163.203,后者的传输路由和接收路由分别为10.68.163.242和10.68.163.165。完成管理软件的安装后,配置软件自动化测试工具,本案例所选用的工具为Partner,分别在两个系统内安装封包分析软件后,在PC端内保存加密证书。
2.2.2测试开发
软件自动化测试开发基于Robot框架实现,使用的操作系统为Windows 10系统,开发工具则应用Robot Framework、Python等,辅助应用CPE等工具开发应用,完成软件自动化测试环境的构建。在软件自动化测试过程中,使用外部数据文件以及数据库来管理测试数据,通过参数化的方式进行测试。技术人员通过Robot框架内置的数据驱动功能或自定义库来实现数据驱动的测试。使用Robot框架执行测试脚本,技术人员通过命令行或集成开发环境(IDE)来执行脚本。执行过程中,Robot框架会根据脚本的逻辑执行相应的关键字,并记录执行结果。
2.3自动化测试技术流程
2.3.1测试步骤
自动化测试工具运行脚本完成测试过程,为确保用例测试的准确性和适用性,编辑具有代表性的脚本。本案例主要用于文件传输数据的加密操作测试,整体共计分为3个大步骤和11个小步骤。第一个大步骤的主要功能是利用测试工具录制测试脚本;第二个大步骤为执行操作;第三个大步骤为恢复环境。为避免运行过程中出现单独脚本多次运行的情况,将关键字嵌套在脚本中驱动使用,以确保测试的效率更高。具体小步骤如下所示:
步骤1:登录管理工具。预期结果,成功。步骤2:安装加密证书。预期结果,成功。
步骤3:添加VLAN。预期结果,基站参数正常。步骤4:创建VLAN。预期结果,reboot重启。步骤5:重启基站。预期结果,显示正常。
步骤6:配置加密协议。预期结果,完成配置。
步骤7:配置加密文件,重启。预期结果,正常运行。
步骤8:检测加密政策、tunnel建立情况。预期结果,显示正常。
步骤9:抓取数据包。预期结果,成功。
步骤10:执行Ping操作。预期结果,加密成功。
步骤11:环境恢复操作。预期结果,初始化状态[3]。
完成录制后,调动开发工具,并完成测试文件的设计,实施具体的用例,对比具体的测试步骤中预期结果是否达成。为确保软件自动化测试过程中所使用的脚本复用率良好,则将脚本存储到数据库之中。

2.3.2文件使用
脚本是执行软件自动化测试的主要驱动力量,测试文件的脚本结构主要由4个表格组成,表格名称分别为设置、变量、测试用例、关键字。(1)在测试文件设置的过程中,对用例进行标记、注释,并引入资源文件,设置用例测试的条件。引入资源文件则使用高级别自定义关键字,供给用例使用。(2)在变量表格设计中,定义关键字数量,在测试过程中负责引入变量文件和路径。变量值则利用Python工具创建。(3)测试用例表格设计过程中,在关键字表格中创建,内容包括名称、关键字名称,按照一定规则的方式确定,并设计变量名。(4)关键字表格则使用组合的方式,用于区别用例语法。在测试库之中,关键字位于第二列中,出现返回值时,位于列后。
2.3.3数据设计
软件测试结果会收到录制测试脚本时的相关数据,输入的关键字参数等均会影响着测试的结果。在测试过程中,严格按照测试步骤,单独准备测试数据文件,以确保测试文件与数据之间的耦合性良好,确保测试文件的复用率满足测试的基本要求。测试用例相关参数编辑并输入到数据文件之中,数据发生参数更改或者删除时,采用修改测试数据文件的方法,仍可以保持原本测试脚本的稳定运行。
2.3.4测试执行
在测试过程中,依据软件的业务流程以及数据表格的内容,调动关键字完成测试操作过程。在此过程中,开发新的关键字库,对于不同的测试用例,在使用过程中创建更加高级的关键字,可拓展相应的功能,并且在重新修改调动的过程中,完成自动化测试的基本流程。2.4自动化测试具体实施
软件自动化测试执行过程中,根据录制脚本,完成调动和优化,并将4个表格按照用例步骤存储至文件夹内,以后缀名html存储。做好准备工作后,系统会自动执行测试命令,并生成日志文件,在预先测试存储路径内存储。为确保测试用例之间的耦合性,测试完成后会恢复测试环境,完成测试的基本过程。在整个自动化测试实施过程中,主要基于以下流程完成测试过程:
(1)确定测试目标和范围:明确测试的目标和范围,确定要测试的功能或模块。
(2)编写测试用例:根据测试目标,编写测试用例,描述预期的输入、操作和预期输出。
(3)设计关键字库:根据测试用例的需求,设计关键字库,包含一组关键字和对应的操作步骤。关键字可以是Robot框架内置的关键字,也可以是自定义的关键字。
(4)组织测试数据:根据测试用例需要,准备测试数据,并将其组织成合适的格式,如CSV文件、Excel文件等。
(5)编写测试脚本:使用Robot框架的语法,编写测试脚本,将测试用例与关键字进行组合,实现自动化测试的执行逻辑。在脚本中,使用关键字库中定义的关键字来执行相应的操作。
(6)执行测试脚本:使用Robot框架执行测试脚本。可以通过命令行或集成开发环境(IDE)来执行脚本。执行过程中,Robot框架会根据脚本的逻辑执行相应的关键字,并记录执行结果。
(7)生成测试报告:测试完成后,Robot框架会生成详细的测试报告,包括测试用例的执行结果、通过率、失败原因等信息。测试报告以HTML、XML等格式生成,方便测试团队进行结果分析和问题定位。
(8)分析测试结果:根据测试报告分析测试结果,查找失败的测试用例,并进行问题排查和修复。
(9)迭代测试:根据测试结果和需求变更,适时进行迭代测试,更新和优化测试用例和关键字库,提高测试效率和质量。
通常情况下,测试用例会包含在具体的测试集之中,且在测试集内会执行所有的用例。从顶级的测试集开始执行,当用例执行失败后,用例将停止,但利用Built In库中的关键词,可确保测试不会中止,能够继续执行附录中的测试用例。
2.5自动化测试效果评估
评估实际的测试效果,执行测试用例的时间在30min左右,具体执行测试命令的时间为20min,大多数的时间被用来恢复测试环境。在第一步骤录制脚本和测试执行过程中共计花费时间为20min,比较传统的手工测试方法,效率有所增加。传统手工软件测试在不存在干扰的情况下,用例测试时间在1h左右,且在受到外界干扰的情况下,时间会延长20~30min。高级工程师的自动化测试脚本开发每天可完成10个左右,使用关键字驱动后期维护便捷,且GUI仅可通过修改界面操作脚本实现。在开发周期比较长的项目中,自动化测试系统在软件测试中,能够实现200个/d的用例测试,手工测试则每天仅可完成5个用例测试。在测试效率上具有明显的优势,且方便了用户的后期维护运行,成本投入减少60%~70%左右;在缺陷发现率上,主要基于软件的需求,在复审和测试过程中,缺陷发现率能够达到80%以上,其中5%左右的缺陷无法在测试过程中识别,需要用户在使用后或者技术人员在使用回归测试后实现。因此,比较而言,自动化测试软件具有良好的适用性,缺陷发现率比较高。
3结语
综上所述,本文深入研究了基于Robot框架下的软件自动化测试技术应用要点,通过脚本驱动的方法建立自动化测试系统,在创建、执行、扩展过程中,完成自动化过程。在技术应用期间,将SA系统连接到gNB网络中,可完成系统的自动化测试,相比较传统的手工测试而言,测试效率明显提升,且缺陷发现率也较高,在软件自动化测试中应用效果良好。
参考文献
[1]龚鑫,徐立华,窦亮.金融科技软件自动化测试用例的冗余评价和削减方法[J].华东师范大学学报(自然科学版),2022(4):43-55.[2]王佳明.Android手机应用软件自动化测试平台的设计与实现[D].广州:广东工业大学,2021.
[3]叶颖樑,张铁军.基于TestStand及LabVIEW的航电通用故障监控软件自动化测试研究[J].航空电子技术,2021,52(1):36-41.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
可解释性是一个非常重要的标准。机器学习模型... 详细>>
如何设计有效的环境治理政策, 是学术界和政策... 详细>>
