APP下载

基于人工智能模型的软件自动化测试方法及系统应用

2023-11-16戎阳枫王彪李珂冉

电子元器件与信息技术 2023年8期
关键词:测试用例软件测试脚本

戎阳枫,王彪,李珂冉

国家电网有限公司客户服务中心,天津,300304

0 引言

在现代社会发展中,我国软件测试技术手段还处于初级阶段,在软件测试的全过程中,制定测试计划、确定测试步骤、问题跟踪处理、测试结果分析等阶段都存在一定问题,因此软件测试过程的质量检查和应用评估比较困难。现如今,国内大部分计算机系统都属于分布式计算环境,会将客户机/服务器看作计算模式,利用Windows、Unix操作系统和Sybase、Oracle数据库进行测试分析,在操作期间,会选择多种测试技术和应用工具,而数据采集和管理评估难度较高。面对不断提高的信息技术水平,我国学者在了解现有软件测试状况和国外软件测试管理产品后,提出基于人工智能模型进行优化创新,以此解决传统软件自动化测试方法和系统应用存在的问题,真正满足分布式环境下的软件测试需求。

1 人工智能和软件测试自动化管理的基本概念

1.1 人工智能

人工智能是指研究开发用于模拟、延伸和拓展人类智能的理论、方法、技术以及应用系统,是现代社会发展的一门新兴技术科学,研究内容包含了专家系统、图像识别、语言识别、机器人、自然语言处理等。这项概念最早出现在1956年的Dartmouth学会中,在此之后各国学者通过实践研究逐渐扩展了人工智能的概念。随着时代发展和技术进步,人工智能这门科学的具体目标也随着时代发展产生了变化。

1.2 软件测试自动化管理

从本质上讲,软件测试自动化管理就是利用计算机操作取代人工检测,严格按照软件规程进行检测分析,重点研究测试结果和预想结果,以此发现软件本身存在的不足并有效完善[1]。在计算机技术飞速发展中,市场中的软件应用变得越发复杂,但大部分软件在使用之前都是由公司投入资金研发出来的,所以为了保障产品可以正常运行,公司往往会进行软件测试,这就催生了软件测试管理系统。现如今,我国在政策、资金等方面大力支持计算机行业的专业人员发表软件测试自动化系统应用的研究成果。

2 软件自动化测试方法及系统应用的研究意义

第一,提高测试工作的全面性。由于部分功能比较完善的软件项目在发布新版本时,很多功能和整体界面与上一版本基本一致,所以要利用自动化测试系统全面分析,以此确保新版本的系统功能可以正常运行。第二,提高测试工作效率,减少成本支出。在项目研究测试期间,需要大量的时间和人力进行重复性测试分析,而自动化测试系统可以有效解决这一问题,避免工作人员进行大量重复操作,有效提高项目测试的工作效率。第三,软件自动化测试具有可重复性和一致性。由于软件测试是一项操作复杂且重复性较高的任务,而自动化测试系统可以利用自动化工具取代原本的人工处理模式,且每次测试研究都呈现出一致性的特征,这在传统手工测试操作中难以实现。第四,有效利用各项资源。如果自动化测试分析处在理想状态下,那么整个过程将会按照预期设定计划自动运行,员工在工作之余也可以自主完成相关测试,不会过度浪费企业的机器资源[2]。

3 以Selenium为核心的Web自动化测试框架设计与实现

3.1 自动化测试框架

针对目前软件测试面临的问题,有学者在构建软件自动化测试平台时,提出了如图1所示的框架。

图1 软件自动化测试框架结构图

结合图1分析可知,整体框架分为两部分内容:一部分是指在服务器中运行的软件测试自动化管理系统,另一部分是指在客户端有序完成自动化测试脚本。在工作状态下,整体平台需要客户端和服务端共同发挥作用,只有这样才能建立平台数据库。如果对整体平台架构进行细分处理,那么可以得到三部分内容。首先,自动化Web管理系统。这一系统设计包含了环境配置、任务管理、测试管理三个功能模块,方便工作人员管理自动化测试运行期间的各项数据,属于平台的数据展示中心。其次,测试脚本。这一模块包含了测试框架和测试需求,它不仅可以基于Sekenium框架进行API调用,还可以真正实现统一化编写目标。最后,任务执行工具。这一模块是指客户端运行期间的代理依据,需要认真监听系统用户传递给测试机器的主要任务,而后将测试脚本下载传递到客户机中,利用工具执行测试脚本,将生产的测试结果储存到数据库中[3]。

3.2 设计实现

为了科学处理当前测试脚本面临的问题,本文研究利用Sekenium框架进行处理,确保测试框架可以有效支撑测试脚本的开发编写过程,最终得到面向对象分层技术的有效框架。因此,以Sekenium框架为核心的软件自动化测试系统需求主要体现在以下几点。首先,始终遵循分离的工作原则。对于测试框架和业务测试而言,利用分离原则进行设计操作,不会影响整体实验分析,能让用户操作变得更加自由。其次,积极体现测试框架的可维护性。由于测试系统和操作业务具有多样性的特征,所以要设计呈现容易扩展的测试框架,方便工作人员在后续操作中增添全新的测试模块,确保测试框架容易操作和应用。整体框架设计是为了降低测试人员的工作压力,因此要保障框架结构和应用功能具有易用性特征,以此简化软件测试的全过程。

结合如图2所示的框架流程图分析可知,CtripTest是基于Sekenium框架进行二次开发,整体内容属于软件自动化测试平台的核心依据。

图2 Sekenium 框架流程图

结合图2分析可知,CtripTest框架设计内容主要体现在以下几点。首先,UI层设计。这项内容作为测试框架的最顶层,代表测试目标和测试页面的主要元素和对象封装。在这一过程中,工作人员主要思考如何有效管理页面及其相关元素,如何运用Page0bject概念完成UI层设计。从本质上讲,Page0bject是指将测试页面及相关步骤封装在每个对象中,把page看作基本单位实现有效管理。从应用角度来看,在某个页面元素发生改变的情况下,只需要调整页面对应的元素控制,就能有效修改脚本。其次,数据配置层设计。这项内容主要用来为业务逻辑层提供测试数据。按照不同情况下的数据应用途径分析可知,这一层次设计包含两项内容,一方面是指由测试逻辑所需数据构成的测试data层,另一方面是指由测试环境配置所需数据构成的configurtion层[4]。为了将数据从业务逻辑层分离出来,在系统设计时要利用数据驱动的测试框架结构处理,这能有效分装并单独储存。在需要添加权限的测试数据时,要根据对象形式增添测试记录,以此利用脚本完成软件测试分析。再次,业务逻辑Test层设计。这一层次包含了所有测试用例集合,工作人员能在调用UI层和Test层的数据实例后进行结果验证。最后,TestLibaries层设计。这一层次设计包含了内容加载、环境配置、打印级别、属性定义等多项功能,能有效传入不同测试配置,返回相应的实例化对象,以此为测试调用提供有效依据。结合现有软件自动化测试系统应用情况来看,面向对象思想分层设计的自动化测试平台框架是整体系统运行的核心,它融合了脚本的模块化、数据驱动框架、测试库架构三种框架思维,全面提高了测试工作效率,加快了测试脚本开发步伐。

3.3 应用效果

为了保障软件自动化测试管理系统功能达到预期要求,本文在分析系统结构设计后,利用黑盒测试方法验证自动化管理系统是否达到目标,比如测试机是否可以正常管理、测试用例是否可以正常同步等。在实验过程中收集了大约八百多条手动测试用例,利用自动化测试系统进行检测分析,具体操作流程如图3所示。

图3 软件自动化测试流程

按照图3所示的流程进行操作分析可知,本文研究提出的自动化测试平台具有以下优势:首先,基于软件自动化测试框架编写和验证UI层的自动化脚本,能在其内部形成良好的工作氛围,避免在实验操作期间出现不必要的难题;其次,在收集到八百多个功能测试用例后,有将近一半的测试用例会被传递到管理平台中,这样进一步提高了回归测试自动化的比例;再次,随着自动化测试脚本的不断增加,工作人员在使用自动化管理平台时面临的问题越来越少,相比传统人工执行操作更加便捷有效;最后,从软件发布到软件生产的全过程角度来看,通常要完成测试环境、UAT环境、壁垒环境等方面的验证分析,只有全面符合要求才能推广到市场中[5]。在提出以人工智能模型为核心的软件自动化测试系统后,重复性回归测试用例可以在自动化平台中运行,系统功能可以尽快发现手工测试忽略的问题,为提高线上发布质量奠定了基础。

4 发展趋势

如今,面对持续提高的国内产品功能业务需求,大部分软件公司逐渐转变了传统手工测试工作思维,开始利用自动化测试方案优化创新,更会结合自身企业的实际情况开展自动化测试框架和应用技术的研发活动,这为我国自动化测试发展创建了良好的开端[6]。虽然基于人工智能模型的软件自动化测试系统已经发挥了重要作用,但也要结合时代发展要求继续探索分析。首先,本文研究系统是基于Windows环境形成操作的,所以只支持相应平台提出的自动化测试用例。但在社会经济和科学技术飞速发展的背景下,各国学者要综合考虑其他开发平台,以此保障系统应用具有通用性。其次,分析问题方式有待改进。虽然测试结果分析模块中呈现了测试步骤,但只有比较了解的工作人员才能有效操作,这必然会增加测试用例开发的难度。因此,未来学者要在改进优化中提高可读性描述,方便直接呈现给项目中的所有成员查看处理。最后,系统缺陷管理问题。被测试系统缺陷无法储存到其他模块中,只能被系统管理,因此未来要在集中管控自动化系统bug的基础上,综合运用目前测试管理工具,以此保障测试bug相互连接。除了上述内容外,还要重视软件测试领域的人才培养,逐步完善现有测试框架和应用界面。

5 结语

综上所述,在社会经济和科学技术飞速发展中,目前网络技术几乎覆盖到每家每户,人们对网络技术软件的依赖性越来越高,因此,如何保障软件应用的安全性能是目前科技领域学者探究的核心问题。虽然目前我国软件测试市场并不成熟,企业专家掌握的理论知识和研究成果不多,但随着计算机技术的进一步升温,各领域学者共同合作,未来必然可以研发出安全有效的软件自动化测试系统及应用方法。

猜你喜欢

测试用例软件测试脚本
酒驾
安奇奇与小cool 龙(第二回)
基于SmartUnit的安全通信系统单元测试用例自动生成
基于OBE的软件测试课程教学改革探索
数据库系统shell脚本应用
EXCEL和VBA实现软件测试记录管理
基于混合遗传算法的回归测试用例集最小化研究
关于软件测试技术应用与发展趋势研究
快乐假期
软件测试工程化模型及应用研究