软件自动化测试方法的研究与应用

2022-05-11 23:31崔国华张皎丹
今日自动化 2022年3期
关键词:自动化测试测试技术软件

崔国华 张皎丹

[摘    要]信息技术软件在各个行业中应用,包括军事领域、公共交通、电子电器、互联网IT等领域,软件方便了人们的生活,提升人们的生活品质。但软件数量过多时,每个软件的质量无法确定,还需通过软件测试分析软件开发质量,及时找到软件漏洞,通过自动化测试方法可快速获得数据,对结果进行分析,帮助开发人员解决软件问题,提升软件使用范围及用户体验感。

[关键词]软件;自动化测试;测试技术

[中图分类号]TP311.52 [文献标志码]A [文章编号]2095–6487(2022)03–0–03

Research and Application of Software Automation Testing Method

Cui Guo-hua,Zhang Jiao-dan

[Abstract]Information technology software is applied in various industries, including military field, public transportation, electronic appliances, Internet IT and other fields. Software facilitates people's life and improves people's quality of life. However, when the number of software is too large, the quality of each software cannot be determined. It is necessary to analyze the software development quality through software testing and find software vulnerabilities in time. Through automated testing methods, data can be quickly obtained, and the results can be analyzed to help developers solve software problems. Improve the scope of software use and user experience.

[Keywords]software; automated testing; testing technology

全球计算机技术高速发展,各个行业均普遍使用软件技术,软件在使用过程中性能质量是软件有效应用的关键。软件种类及数量较多且开发难度大,为测试人员工作带来巨大的挑战。部分中小型企业软件测试力量不足,软件测试人才数量不多,无法对开发的软件进行测试。短时间开发高质量软件具有必要性,软件测试是整个开发环节中的重点,贯穿整个软件开发周期。伴随软件底层算法更加复杂,软件结构也不断丰富,传统测试技术无法满足新软件产品需求,市场上开发的软件需要尽快投入市场,导致测试过程及结果可能出现遗漏,软件测试的整体有效性不足。对此,采取新型软件测试技术,开发软件自动化测试功能,有利于高质量完成软件测试目标,使软件产品尽快进入市场。

1 软件自动化测试的意义

企业开发软件产品过程中,在设计功能时思考用户需求及产品可靠性,开发人员技术水平存在差异,容易导致软件开发存在疏漏,软件测试的重要性随之凸显。软件测试可协助软件开发人员发现软件的漏洞,包括代码Bug及功能问题、实际运行困境。在软件测试技术的干预下,及时将软件故障排除,保证软件稳定及健康的运行。在软件测试技术发展中,相比人工测试方法,自动化软件测试有利于提升测试的整体效率。企业常见的测试方式是自动化结合人工测试,并非是单纯的自动化测试,这种方式也在一定程度上体现了自动化测试技术,虽然具有较大的优势,但不能完全消除软件问题,通过人为测试有利于补充自动化测试的缺陷。自动化技术在一次检测后,可基本找到软件问题,人工针对问题进行二次测试,随后提出解决问题的方案,降低整体检测成本,提升软件测试工作效率。

2 自动化软件测试技术的分类

2.1 功能驱动下的自动化测试技术

该技术将独立项目划分多个模块,划分的子模块作为单独测试的载体,与其他模块分离,测试人员以此完成单独模块测试,数据及函数均与原本项目一致。在这种功能分区基础上,测试人员便于维护及快速测试,工作效率进一步提升。

2.2 关键字驱动自动化测试技术

该技术相比其他测试技术,关注逻辑界面,在测试过程中属于比较抽象的测试方法,对脚本进行抽象化处理,便于测试人员关注软件逻辑功能,无需关注代码,降低测试整体难度,在测试过程中也便于更改。关键字与数据建立联系后,测试过程中将测试的脚本与数据分开,在具体场景及细节上进行相关描述,整个测试过程更为抽象。

2.3 数据驱动自动化测试技术

在该技术中将被检测的数据与测试脚本分离,被检测的数据以多种形式储存,将期望值及输入值等记录列表,每次读取数据时不会产生遗漏。优于测试脚本与数据分离,其本身具有储存数据信息标记,脚本也可完成独立测试,保持自动化测试的稳定性。在测试过程中划分不同模块,测试人员维护较为便利,便于测试人员创新测试方式。数据驱动的自动化测试技术也存在缺陷,主要体现在软件兼容性上,同一测试脚本可在不同软件中应用,需有效进行改动,整体测试成本随之增高。

2.4 指令驱动自动化测试技术

該测试技术在驱动数据的基础上发展,通过响铃可驱动系统,快捷完成测试。相比数据驱动测试方法,指令驱动方式无需单纯储存数据,而是将数据存放在指令中,该方法在一定程度上提升了测试效率。

2.5 录制回放

该技术是建立在脚本写法的基础上,原理是将书写的脚本录制及回放,脚本对软件功能进行模拟,软件用户完成对应的操作,该技术无需过多的技巧,整体架构稳定性不足,已经逐渐不在软件测试中应用,属于软件早期自动化测试技术。

2.6 独立测试脚本

线性脚本难度低,本身可使用不同语言,编程后完成交互测试,测试过程相对便捷,但也存在比较明显的缺陷,系统及脚本属于绑定方式,受到脚本影响会增加测试人员的工作难度及浪费更多的测试成本,维护费用较高,适合中小型企业的软件测试项目。结构化脚本是难度较高的测试方式,其中包括大量的结构化内容,如函数、循环等,对逻辑性及稳定性要

求高。

3 软件测试技术应用的误区

软件自动化测试技术可提升软件测试效率,在实践过程中也存在误区,对常见误区进行分析,为软件测试技术的有效应用提供帮助。

(1)软件自动化测试完全取代软件测试:软件测试是先进行人为操作,操作开始后,对软件进行检测,根据操作结果判断软件性能。目前的自动化检测技术还无法完成全程检测,依旧需要人类的大脑进行判断,对此,无法在全部情景中使用自动化软件测试技术,自动化测试技术也无法全面替代手工检测。

(2)对软件易用性进行判断:软件自动化测试技术属于1种工具,这种工具往往不具备审美能力及情感意识,对软件界面的美观性及整洁性也无法有效判断,对此,在软件易用性上无法完全依靠自动化测试技术,还需人的主观意识进行判断。

(3)只要使用自动化软件测试技术便能缩减检测时间,保证检测质量:软件在自动化检测前,会耗费一定的时间及精力构建测试环境,录制运行脚本及建立数据表格,相比传统手工检测方式,自动化测试软件往往需要耗费5~10倍的研发时间。对规模小、功能单一的软件,使用自動化测试技术往往适得其反,测试时间不断延长,测试效率也无法提升。自动化测试工具需要具有图形界面,对测试人员的能力要求不高,以技术目前的发展情况来看,自动化测试技术并非是万能的,若想建立有效的自动化测试脚本,工作人员应当掌握脚本语言,并快速进行编辑。面对上述误区,还需引起足够的重视,从而认识到自动化测试的优势及劣势,避免在测试过程中走入误区。

4 自动化软件测试技术的使用条件及场景

4.1 使用条件

自动化软件测试工具包括功能测试工具及负载压力测试工具、测试辅助工具等。根据软件开发的功能需求,自动化测试的关键便是对功能需求进行自动化检测,若功能经常变动,检测的意义不大,也会出现其他的功能性漏洞。自动化在一轮测试中体现,在脚本重复利用过程中,也能缩减成本,针对长期开发的软件项目,自动化技术应用效果明显,短期项目以人工检测即可,主要是测试软件自编写到应用需要耗费大量的人力、物力等成本。

在定制类软件测试过程中,此类软件均是基于客户需求开发的软件,此类软件需要设置针对性的测试方法,维护基本上由客户负责,运行环境及程序语言也由客户确定,企业针对此类软件的项目经验少,在测试软件开发中,自动化测试技术的应用效率不高。

(1)针对短期项目,软件工程开发时间短暂,测试时间有限,针对该问题,不建议耗费大量的时间进行检测,即便有时间及精力构建测试环境及设计测试脚本,但依旧会出现脚本利用率不高的问题,导致软件自动化测试技术性价比不高。

(2)针对运行规则较为复杂的产品,对软件测试系统的复杂性要求较高,人工检测是主要检测方法,自动化测试技术往往无法设计相关脚本。

(3)针对运行次数不多的软件,通过自动化技术检测可能导致资源浪费。对此,在自动化测试软件应用前,应当掌握软件适合场景,根据软件适合场景合理使用自动化测试软件。

4.2 自动化软件测试技术的应用场景

4.2.1 Linux GUI自动化测试

Linux自动化测试以开源软件为主,属于关键词驱动方法,GUI测试中关注图形界面测试,对软件窗口及界面图标、指示设备进行测试,均能见到良好的测试效果。

4.2.2 Python CLI自动化测试

CLI测试模型关注命令协议及命令集构,测试的基本原理是将用户操作指令作为驱动端,经终端将命令发布,通过远程通信协议提示服务器进入运行阶段,终端对服务器进行驱动,通过命令集解析用户要求。在测试过程中,需选择合理化的测试框架,最终完成总结及整合。

4.2.3 云端软件测试技术

在云服务器及云计算技术发展下,软件平台架构发生变化,自本地及实体服务器过渡到云端服务器,对软件进行测试,达到理想的测试效果,及时发现软件漏洞。云服务器有利于对资源进行整合及共享,测试人员可充分利用云平台测试软件,提升软件测试的整体效率。云端软件测试技术的优势明显,但实际应用中也面较多的困难,还需要进一步改进。

4.2.4 Selenium为框架的自动化测试工具

在工具库中选择等待检测的模块作为行为参数,匹配对应的数据,生成测试用例,随后组成自动化测试脚本,配置测试工具相关参数,对测试程序进行调整,对测试结果进行输出及对问题进行调试,完成自动化测试。在脚本语言上,可供选择的脚本语言较多,常见的脚本语言是python及Java,其中,广泛使用的脚本语言是Java,在各个领域的软件开发上,Java均是主流选择。Python作为1种简单易学的编程语言,在数据分析及Web开发上使用率高,人工智能及自动化测试上也略有涉及。Python方便灵活,测试可根据用户的需求快速调整,测试效率较高。Selenium作为自动化测试的主要工具,相比其他自动化测试工具优势较为明显,支持多脚本语言及平台,可收集各类开发平台,具有移动测试的优势,可安插各类插件,对软件检测效果显著。

4.2.5 robot Framework框架的自动化测试技术

该技术作为Python创建的自动化测试框架,支持多个客户及多个接口同步测试,具有较高的拓展性。通过关键字进行驱动,测试效率高,难度较低,在测试行业应用范围广。robot Framework框架通过Txt文件保存测试用例,使用符号完成分隔,适用于不同的编辑软件。测试设计用例过程中,应当根据用户需求进行调整,robot Framework框架可使用循环语句,测试用例具有廣泛性及实用性。对测试用例进行标签分类,分类方式较为便利。robot Framework框架可提供数据支持驱动及关键字驱动等多种驱动模式。在关键字调用时,将关键字转变为基础字号,便于创建更为复杂的测试用例。robot Framework框架生成的测试报告一般是html文件格式,便于测试人员阅读及查找问题。robot Framework框架具有监听接口,用户自行测试过程中,可自定义用例的前置条件及后置条件,与其他测试工具相比,可完成整个测试过程的监测。

比如,在电力营销系统开发过程中,其中含有丰富的系统功能,功能结构具有相似性,为便于大众使用浏览器,系统具有兼容性。单纯手工进行测试,需要大量的重复性操作,费时费力且耗费资金,针对长期的测试项目,也容易发生遗漏,为保证测试的覆盖面积,针对软件功能设置robot Framework框架的自动化测试软件,有利于快速检测软件性能。

5 软件自动化测试技术的发展趋势

自动化测试技术的优势是提升测试效果,保证测试结果的准确性,减轻测试人员的工作压力。软件测试中,应当结合软件开发情况,提升软件开发人员的专业技术水平,对软件结构进行优化,进一步提升软件性能,促进软件自动化技术高速发展。软件开发与测试工作紧密结合,提升代码可测试性,通过模块设计及高聚内封装设计方法,确保自动化测试软件的开发质量。

在软件测试技术发展中,应当完善测试标准,在标准化及规范化的原则,不影响软件基本性能的基础上,将易测试理念渗透到软件设计中,进一步提升软件测试的规范性。

现阶段,计算机信息技术不断发展,测试技术性能不断提升,逐渐朝向成熟的方向进展,呈现出多态性及封装性的趋势,还需不断开发全新的自动化测试技术,包括云计算测试方法及冒烟测试方法等。为保证测试的实际效果,未来的软件测试技术应当不断拓展测试范围,关注数据测试工作,将数据测试贯穿到整个软件开发过程中,做好预防及处理工作,规避测试工作的缺陷,节约成本的同时,提升测试软件整体收益。

6 结束语

在软件开发过程中,测试人员应当对软件性能进行分析,通过人工检测及自动化检测方法,找到软件开发的问题,提升软件开发质量。相比传统测试中的问题,应当进一步拓展测试范围,使用先进的测试技术,进一步规范测试标准,保证测试结果的准确性。现阶段,我国软件公司应加强团队建设,关注软件测试队伍,尤其是开发自动化测试软件,新型测试技术可满足软件测试要求,减少人工检测的弊端,减轻企业面临的测试成本。现阶段,大数据及云计算技术发展,企业应当积极开发自动化测试软件,对软件功能进行优化,从而准确测试软件功能,开发满足人们需求的高质量软件。

参考文献

[1] 冷知见.软件自动化测试方法的研究与应用[D].武汉:武汉理工大学,2011.

猜你喜欢
自动化测试测试技术软件
有趣的识花软件
浅谈空调控制器自动化测试
基于多总线结构的电路板测试系统设计研究
大数据测试技术的特点及前景研究
航空航天与国防电子新形势下自动化测试系统的应用
现代测试技术在机械类本科测试技术教学中的渗透
常用电化学研究方法及技术
基于CTI—TET和SeleniumWebdriver的Web应用自动化测试框架的设计与实现
即时通讯软件WhatsApp
丰富多彩的Android软件