软件自动化测试方法的研究与应用.docx
软件自动化测试方法的研究与应用崔国华张皎丹摘要信息技术软件在各个行业中应用,包括军事领域、公共交 通、电子电器、互联网IT等领域,软件方便了人们的生活,提升人 们的生活品质。但软件数量过多时,每个软件的质量无法确定,还需 通过软件测试分析软件开发质量,及时找到软件漏洞,通过自动化测 试方法可快速获得数据,对结果进行分析,帮助开发人员解决软件问 题,提升软件使用范围及用户体验感。关键词软件;自动化测试;测试技术中图分类号TP311. 52文献标志码A文章编号2095 -6487 (2022) 03 - 0 - 03ResearchandApplicationofSoftwareAutomationTestingMethodCuiGuo-hua, ZhangJiao-danAbstractInformationtechnologysoftware!sappliedinvario usindustries, includingmilitaryfield, publictransportation, electronicappliances,InternetITandotherfields. Softwarefacilitatespeople1slifeand improvespeople1squalityoflife. However,whenthenumberofsoftwareistoolarge,thequalityofeachsoftwarecannotbedetermined. Itisnecessarytoa nalyzethesoftwaredevelopmentqualitythroughsoftwaretestingan dfindsoftwarevulnerabilitiesintime. Throughautomatedtestingm ethods,datacanbequicklyobtained, andtheresultscanbeanalyzedtohelpdeveloperssolvesoftwareprob lems. Improvethescopeofsoftwareuseanduserexperience.Keywordssoftware;automatedtesting;testingtechnology全球计算机技术高速开展,各个行业均普遍使用软件技术,软件在使用过程中性能质量是软件有效应用的关键。软件种类及数量较多 且开发难度大,为测试人员工作带来巨大的挑战。局部中小型企业软 件测试力量缺乏,软件测试人才数量不多,无法对开发的软件进行测 试。短时间开发高质量软件具有必要性,软件测试是整个开发环节中 的重点,贯穿整个软件开发周期。伴随软件底层算法更加复杂,软件 结构也不断丰富,传统测试技术无法满足新软件产品需求,市场上开 发的软件需要尽快投入市场,导致测试过程及结果可能出现遗漏,软 件测试的整体有效性缺乏。对此,采取新型软件测试技术,开发软件 自动化测试功能,有利于高质量完成软件测试目标,使软件产品尽快 进入市场。1软件自动化测试的意义企业开发软件产品过程中,在设计功能时思考用户需求及产品可 靠性,开发人员技术水平存在差异,容易导致软件开发存在疏漏,软 件测试的重要性随之凸显。软件测试可协助软件开发人员发现软件的 漏洞,包括代码Bug及功能问题、实际运行困境。在软件测试技术的 干预下,及时将软件故障排除,保证软件稳定及健康的运行。在软件 测试技术开展中,相比人工测试方法,自动化软件测试有利于提升测 试的整体效率。企业常见的测试方式是自动化结合人工测试,并非是 单纯的自动化测试,这种方式也在一定程度上表达了自动化测试技术, 虽然具有较大的优势,但不能完全消除软件问题,通过人为测试有利 于补充自动化测试的缺陷。自动化技术在一次检测后,可基本找到软 件问题,人工针对问题进行二次测试,随后提出解决问题的方案,降 低整体检测本钱,提升软件测试工作效率。2自动化软件测试技术的分类2.1功能驱动下的自动化测试技术该技术将独立工程划分多个模块,划分的子模块作为单独测试的 载体,与其他模块别离,测试人员以此完成单独模块测试,数据及函 数均与原本工程一致。在这种功能分区基础上,测试人员便于维护及 快速测试,工作效率进一步提升。2. 2关键字驱动自动化测试技术该技术相比其他测试技术,关注逻辑界面,在测试过程中属于比 较抽象的测试方法,对脚本进行抽象化处理,便于测试人员关注软件 逻辑功能,无需关注代码,降低测试整体难度,在测试过程中也便于 更改。关键字与数据建立联系后,测试过程中将测试的脚本与数据分 开,在具体场景及细节上进行相关描述,整个测试过程更为抽象。2. 3数据驱动自动化测试技术在该技术中将被检测的数据与测试脚本别离,被检测的数据以多 种形式储存,将期望值及输入值等记录列表,每次读取数据时不会产 生遗漏。优于测试脚本与数据别离,其本身具有储存数据信息标记, 脚本也可完成独立测试,保持自动化测试的稳定性。在测试过程中划 分不同模块,测试人员维护较为便利,便于测试人员创新测试方式。 数据驱动的自动化测试技术也存在缺陷,主要表达在软件兼容性上, 同一测试脚本可在不同软件中应用,需有效进行改动,整体测试本钱 随之增高。2. 4指令驱动自动化测试技术测试技术在驱动数据的基础上开展,通过响铃可驱动系统,快 捷完成测试。相比数据驱动测试方法,指令驱动方式无需单纯储存数 据,而是将数据存放在指令中,该方法在一定程度上提升了测试效率。2. 5录制回放该技术是建立在脚本写法的基础上,原理是将书写的脚本录制及 回放,脚本对软件功能进行模拟,软件用户完成对应的操作,该技术 无需过多的技巧,整体架构稳定性缺乏,已经逐渐不在软件测试中应 用,属于软件早期自动化测试技术。2. 6独立测试脚本线性脚本难度低,本身可使用不同语言,编程后完成交互测试, 测试过程相对便捷,但也存在比拟明显的缺陷,系统及脚本属于绑定 方式,受到脚本影响会增加测试人员的工作难度及浪费更多的测试成 本,维护费用较高,适合中小型企业的软件测试工程。结构化脚本是 难度较高的测试方式,其中包括大量的结构化内容,如函数、循环等, 对逻辑性及稳定性要求高。3软件测试技术应用的误区软件自动化测试技术可提升软件测试效率,在实践过程中也存在 误区,对常见误区进行分析,为软件测试技术的有效应用提供帮助。(1)软件自动化测试完全取代软件测试:软件测试是先进行人 为操作,操作开始后,对软件进行检测,根据操作结果判断软件性能。 目前的自动化检测技术还无法完成全程检测,依旧需要人类的大脑进 行判断,对此,无法在全部情景中使用自动化软件测试技术,自动化 测试技术也无法全面替代手工检测。(2)对软件易用性进行判断:软件自动化测试技术属于1种工 具,这种工具往往不具备审美能力及情感意识,对软件界面的美观性 及整洁性也无法有效判断,对此,在软件易用性上无法完全依靠自动 化测试技术,还需人的主观意识进行判断。(3)只要使用自动化软件测试技术便能缩减检测时间,保证检 测质量:软件在自动化检测前,会耗费一定的时间及精力构建测试环 境,录制运行脚本及建立数据表格,相比传统手工检测方式,自动化 测试软件往往需要耗费510倍的研发时间。对规模小、功能单一的 软件,使用自勤化测试技术往往适得其反,测试时间不断延长,测试 效率也无法提升。自动化测试工具需要具有图形界面,对测试人员的 能力要求不高,以技术目前的开展情况来看,自动化测试技术并非是 万能的,假设想建立有效的自动化测试脚本,工作人员应当掌握脚本语 言,并快速进行编辑。面对上述误区,还需引起足够的重视,从而认 识到自动化测试的优势及劣势,防止在测试过程中走入误区。4自动化软件测试技术的使用条件及场景4. 1使用条件自动化软件测试工具包括功能测试工具及负载压力测试工具、测 试辅助工具等。根据软件开发的功能需求,自动化测试的关键便是对 功能需求进行自动化检测,假设功能经常变动,检测的意义不大,也会 出现其他的功能性漏洞。自动化在一轮测试中表达,在脚本重复利用 过程中,也能缩减本钱,针对长期开发的软件工程,自动化技术应用 效果明显,短期工程以人工检测即可,主要是测试软件自编写到应用 需要耗费大量的人力、物力等本钱。在定制类软件测试过程中,此类软件均是基于客户需求开发的软 件,此类软件需要设置针对性的测试方法,维护基本上由客户负责, 运行环境及程序语言也由客户确定,企业针对此类软件的工程经验少, 在测试软件开发中,自动化测试技术的应用效率不高。(1)针对短期工程,软件工程开发时间短暂,测试时间有限, 针对该问题,不建议耗费大量的时间进行检测,即便有时间及精力构 建测试环境及设计测试脚本,但依旧会出现脚本利用率不高的问题, 导致软件自动化测试技术性价比不高。(2)针对运行规那么较为复杂的产品,对软件测试系统的复杂性 要求较高,人工检测是主要检测方法,自动化测试技术往往无法设计 相关脚本。(3)针对运行次数不多的软件,通过自动化技术检测可能导致 资源浪费。对此,在自动化测试软件应用前,应当掌握软件适合场景, 根据软件适合场景合理使用自动化测试软件。1 .2自动化软件测试技术的应用场景4 . 2. ILinuxGUI自动化测试Linux自动化测试以开源软件为主,属于关键词驱动方法,GUI测试中关注图形界面测试,对软件窗口及界面图标、指示设备进行测 试,均能见到良好的测试效果。4. 2. 2PythonCLI自动化测试CLI测试模型关注命令协议及命令集构,测试的基本原理是将用 户操作指令作为驱动端,经终端将命令发布,通过远程通信协议提示 服务器进入运行阶段,终端对服务器进行驱动,通过命令集解析用户 要求。在测试过程中,需选择合理化的测试框架,最终完成总结及整 合。4.2. 3云端软件测试技术在云服务器及云计算技术开展下,软件平台架构发生变化,自本地及实体服务器过渡到云端服务器,对软件进行测试,到达理想的测 试效果,及时发现软件漏洞。云服务器有利于对资源进行整合及共享, 测试人员可充分利用云平台测试软件,提升软件测试的整体效率。云 端软件测试技术的优势明显,但实际应用中也面较多的困难,还需要 进一步改进。4. 2. 4Selenium为框架的自动化测试工具在工具库中选择等待检测的模块作为行为参数,匹配对应的数据, 生成测试用例,随后组成自动化测试脚本,配置测试工具相关参数, 对测试程序进行调整,对测试结果进行输出及对问题进行调试,完成 自动化测试。在脚本语言上,可供选择的脚本语言较多,常见的脚本 语言是python及Java,其中,广泛使用的脚本语言是Java,在各个 领域的软件开发上,Java均是主流选择。Python作为1种简单易学 的编程语言,在数据分析及Web开发上使用率高,人工智能及自动化 测试上也略有涉及。Python方便灵活,测试可根据用户的需求快速 调整,测试效率较高。Selenium作为自动化测试的主要工具,相比 其他自动化测试工具优势较为明显,支持多脚本语言及平台,可收集 各类开发平台,具有移动测试的优势,可安插各类插件,对软件检测 效果显著。4. 2. 5robotFramework框架的自动化测试技术该技术作为Python创立的自动化测试框架,支持多个客户及多 个接口同步测试,具有较高的拓展性。通过关键字进行驱动,测试效 率高,难度较低,在测试行业应用范围广。robotFramework框架通 过Txt文件保存测试用例,使用符号完成分隔,适用于不同的编辑软 件。测试设计用例过程中,应当根据用户需求进行调整, robotFramework框架可使用循环语句,测试用例具有潢泛性及实用 性。对测试用例进行标签分类,分类方式较为便利。robotFramework 框架可提供数据支持驱动及关键字驱动等多种驱动模式。在关键字调 用时,将关键字转变为基础字号,便于创立更为复杂的测试用例。robotFramework框架生成的测试报告一般是html文件格式,便于测 试人员阅读及查找问题。robotFramework框架具有监听接口,用户 自行测试过程中,可自定义用例的前置条件及后置条件,与其他测试 工具相比,可完成整个测试过程的监测。比方,在电力营销系统开发过程中,其中含有丰富的系统功能, 功能结构具有相似性,为便于群众使用浏览器,系统具有兼容性。单 纯手工进行测试,需要大量的重复性操作,费时费力且耗费资金,针 对长期的测试工程,也容易发生遗漏,为保证测试的覆盖面积,针对 软件功能设置robotFramework框架的自动化测试软件,有利于快速 检测软件性能。5软件自动化测试技术的开展趋势自动化测试技术的优势是提升测试效果,保证测试结果的准确性, 减轻测试人员的工作压力。软件测试中,应当结合软件开发情况,提 升软件开发人员的专业技术水平,对软件结构进行优化,进一步提升 软件性能,促进软件自动化技术高速开展。软件开发与测试工作紧密 结合,提升代码可测试性,通过模块设计及高聚内封装设计方法,确 保自动化测试软件的开发质量。在软件测试技术开展中,应当完善测试标准,在标准化及规范化 的原那么,不影响软件基本性能的基础上,将易测试理念渗透到软件设 计中,进一步提升软件测试的规范性。现阶段,计算机信息技术不断开展,测试技术性能不断提升,逐 渐朝向成熟的方向进展,呈现出多态性及封装性的趋势,还需不断开 发全新的自动化测试技术,包括云计算测试方法及冒烟测试方法等。 为保证测试的实际效果,未来的软件测试技术应当不断拓展测试范围, 关注数据测试工作,将数据测试贯穿到整个软件开发过程中,做好预 防及处理工作,规避测试工作的缺陷,节约本钱的同时,提升测试软 件整体收益。6结束语在软件开发过程中,测试人员应当对软件性能进行分析,通过人 工检测及自动化检测方法,找到软件开发的问题,提升软件开发质量。 相比传统测试中的问题,应当进一步拓展测试范围,使用先进的测试 技术,进一步规范测试标准,保证测试结果的准确性。现阶段,我国 软件公司应加强团队建设,关注软件测试队伍,尤其是开发自动化测 试软件,新型测试技术可满足软件测试要求,减少人工检测的弊端, 减轻企业面临的测试本钱。现阶段,大数据及云计算技术开展,企业 应当积极开发自动化测试软件,对软件功能进行优化,从而准确测试 软件功能,开发满足人们需求的高质量软件。参考文献1冷知见.软件自动化测试方法的研究与应用D.武汉:武汉理工大学,2022.