2023年6月29日发(作者:)
设计自动化和零编码测试开发解决方案王哲煊(锐捷网络股份有限公司,福州350002)摘要院通过提升测试工作质量效率来提升研发团队交付能力的问题进行了分析,重点针对测试设计和测试开发效率低下的问题给出了相应的解决方案。测试设计普遍存在人工投入资源巨大的问题,测试开发普遍存在框架不足以支撑零编码的问题,因此测试阶段往往资源投入巨大,测试周期长,导致整体研发团队交付能力不够高。该方案可以解决测试设计和测试开发效率低下的问题,大幅减少测试设计和测试开发的人工重复性投入,自动化测试平台不再对功能测试人员直接开放,屏蔽了底层业务原子操作自动化测试脚本的编码和编排,而是通过自动生成测试用例和测试数据、业务场景自动编排来实现自动化测试脚本的组装生成,从而实现测试设计自动化和测试开发零编码,提升了测试工作的质量和效率,提升了研发团队的交付能力。关键词院测试设计自动化;零编码;原子操作封装;业务自动编排1概述短袁测试开发跟不上项目开发袁就会出现资源瓶颈袁拉低整体交付能力遥渊3冤自动化测试开发效率低由于自动化测试开发人员编码能力参差不齐袁耗费在调试尧修订自动化测试脚本的时间很多袁脚本代码质量也不够稳定袁自动化测试开发尧执行的效率受到制约袁效率难以提升遥这也是造成自动化测试覆盖率低的原因之一遥因此袁基于大幅度缩短测试周期尧提升交付能力的目标袁打造测试设计自动化和零编码自动化测试开发的平台袁解决人工投入测试用例设计效率低和自动化测试开发效率低的问题袁将成为研发团队在质量与测试方面的重要提升目标遥随着互联网的发展和公司业务的扩大袁公司的市场团队对产品研发团队的交付能力要求越来越高袁产品研发需求也逐渐趋于多种多样且变化频繁袁从而对自动化测试覆盖率尧测试效率的要求也在不断提高袁要求通过测试设计自动化和提升自动化测试覆盖率来提升测试质量和效率袁从而提升研发团队的交付能力遥2研发团队在测试方面存在的问题研发团队经过多年发展袁测试体系基本成型袁项目管理与自动化测试都引入或自研了相应测试平台或工具的支撑遥但在现有测试平台对项目研发尧测试的支撑上袁仍然存在一些关键问题需要解决袁主要表现在以下3个方面院渊1冤人工投入测试用例设计效率低测试用例设计方法基本都能掌握并熟练应用袁但是由于都是测试人员人工投入袁随着需求增多尧产品扩展和交付周期逐渐要求缩短袁测试人员容易成为项目瓶颈或者各产品团队争夺的资源袁影响产品交付周期袁制约团队交付能力遥渊2冤自动化测试覆盖率低现有自研自动化测试框架门槛较高袁要求测试人员具备编码和调试能力袁并且从自动化测试开发的方案设计到用例梳理尧测试数据设计和实现等都需要人工投入袁耗费较多的资源袁效率不够高导致整体自动化测试覆盖率较低遥并且随着需求越来越多袁交付周期越来越3解决方案试数据的自动生成院渊1冤开发测试设计自动化方案袁实现测试用例和测1冤通过建模工具梳理产品业务模型袁完成业务建2冤通过低保交互梳理前端输入约束袁构建约束规3冤构建测试数据自动生成框架袁根据测试用例涉模袁根据业务覆盖路径自动生成测试用例步骤集合遥则引擎袁实现自动生成前端输入约束规则集遥及的输入参数项及其对应的输入约束规则集袁采用可选作者简介:王哲煊渊1984-冤袁男袁本科袁中级工程师袁研究方向院软件测试遥342019.12的测试覆盖准则自动生成测试数据集遥决测试数据复用问题4冤构建测试数据资源库遥袁实现测试数据积累袁解自动生成包含具体步骤和输入数据的测试用例5冤测试用例步骤集关联对应的测试数据集遥袁即可自动编排后生成自动化测试脚本渊2冤构建零编码自动化测试开发框架院袁实现业务口的原子级封装1冤通过梳理原子操作实现对业务系统Web操作/接原子操作是从业务角度对各个应用系统基本原子操作的定义遥对于后台系统袁主要是完成对其开放的前后端接口以及第三方接口的封装袁自动化测试框架在第一次支持该应用系统的时候统一完成抽取原子操作并实现封装的过程遥对于Web类系统袁可以通过UI录制的方式完成原子操作的封装遥2冤通过组装原子操作通过原子操作编排来实现业务场景的自动化实现袁可以支持各类业务场景的实现遥在测试平台中根据测试用例步骤编排业务场景的过程袁实际就是拼接各个原子操作的过程遥自动化测试框架可以支持灵活的编排方式袁既能实现手动编排业务场景测试用例袁又能支持读取测试用例步骤来实现自动编排业务场景遥脚本3冤通过关联测试数据就可以自动生成自动化测试将测试用例逐一解析成野原子操作+测试数据冶的形式袁自动关联测试数据集中的具体输入项的测试数据袁作为测试参数传入袁即可自动生成测试用例对应的自动化测试脚本遥试设计的闭环渊3冤在渊1冤袁实现测试用例和渊2冤的基础上尧测试数据到对应自动化袁即可完成整个测测试脚本的自动生成袁节省大部分的人工投入遥通过建模方法建立业务自动化测试模型袁通过构建零编码自动化测试框架袁屏蔽测试开发人员对自动化测试框架的依赖袁降低自动化测试开发的门槛袁实现接口和Web自动化测试的普及化袁全面提升测试效率和自动化测试覆盖率遥自动化测试框架封装完应用系统的原子操作后袁自动化测试平台将不再对功能测试人员直接开放袁而是通过输入测试用例和测试数据来实现自动化测试脚本的组装生成遥通过这种方式可以大幅降低自动化测试开发的复杂度袁从而更容易在功能测试人员中普及自动化测试袁并且可以大幅提升测试开发效率袁大幅提升自动化测试脚本的质量和稳定性4业务建模方法遥采取业界较为主流的MBT建模设计方法袁提供多种建模手段袁尽可能精确分析建立应用系统的业务模型遥目标设计一个综合的MBT建模设计方法MBT袁总的来说是基于项目的测试模型袁通常这个综合的MBT模型是利用工具完成的遥将模型作为一种测试设计规格说明提供给测试工程师袁这时模型应该包含高度格式化和详细的信息袁这样才能保证能从模型自动导出测试用例遥具体的建模方法主要有针对结构的建模方法和针对行为状态的建模方法遥针对结构的建模方法袁典型代表是类图尧类的属性表尧方法和类之间的连接分析等方法遥针对行为状态的建模方法袁典型代表是业务流程图尧决策表尧UML活动图尧BPMN等方法遥试选择标准可以是覆盖所有路径MBT建模完成后袁还需要确定测试选择标准袁也可以是覆盖所有状遥测态袁或者是根据项目要求来覆盖遥确定测试选择标准后袁即可使用MBT工具来生成测试用例步骤5实现测试数据自动生成的方案遥首先建立标准的输入约束规则引擎库袁对各种输入控件的类型进行分类汇总袁并建立规则引擎库袁表1为举例遥表1输入控件规则类型规则类型说明规则表达式数值numlength长度限制num:${length=[min,max]}数值numrange输入范围限制num:${range=[min,max]}数值numformat输入格式限制num:${format=/double/long]}[integer/float字符串stringformat输入格式限制string:${format=[string]}字符串stringUnique唯一性限制string:${Unique=[true/false]}字符串stringallowEmptyValue是否非空string:${allowEmptyValue[true/false]}=字符串stringrequired是否必填string:${required=[true/false]}在对应用系统的原子操作进行抽取封装时袁识别出所有输入类控件的类型袁套用规则引擎库生成输入约束规则集合袁可人工调整具体的约束值袁最终生成具体的2019.1235输入约束规则遥如表2所示遥表2页面添加需求参数中文名优先级参数英文名PriorityDemand_NameDemand_Name输入类型numstring规则类型rangelength具体约束值[1,3][1,128]False[1,512]据通用规则库可以自动生成约束规则集袁具体测试用例生成只需按需选择覆盖准则即可实现遥低了自动化测试的技术门槛,实现在功能测试中大范围推广自动化测试遥功能测试人员无须开发自动化测试脚本袁通过组装自动化测试框架封装好的原子操作袁就可以轻松实现测试用例的自动化遥可实现测试用例自动转成对应的自动化测试脚本袁无需人工干预遥最大程度地提升了自动化测试开发的效率遥执行时长大大缩短袁测试结果也能在线自动生成袁大幅度提升了测试工作的效率袁缩短研发交付周期袁从而提升了研发团队的整体交付能力遥参考文献[1][美]保罗﹒C﹒乔根森渊PaulC﹒Jorgensen冤.基于模型的测试,北京院机械工业出版社,2019.版社,2019.[2]朱少民.全程软件测试.3版.北京院人民邮件出[3]茹炳晟.测试工程师全栈技术进阶与实践.北京院人民邮件出版社,2019.版社,2016.[4]刘琛梅.测试架构师修炼之道.北京院机械工业出[5]陈绍英,许威,金成姬.大型IT系统智能一体化测试.北京院电子工业出版社,2017.渊4冤实现全面功能自动化测试后袁测试开发和测试渊3冤通过解析测试用例为野原子操作+测试数据冶袁渊2冤通过实现零编码测试开发框架袁最大程度地降添加需求需求名称添加需求需求名称stringallowEmptyValuelength添加需求需求描述Demand_Descriptionstring生成具体输入约束规则后袁就可以使用传统的等价类尧边界值尧异常值覆盖等测试设计方法来自动生成每个输入类控件对应的测试数据集遥6测试用例和测试数据进行关联的方法基于MBT建模设计方法生成测试用例步骤后袁根据抽取的原子操作关键字分析比对出测试用例中所涉及的输入控件袁测试平台可以据之找到关联的测试数据袁由于肯定存在多个原子操作袁并且可能原子操作内涉及多个输入类控件袁因此需要基于灵活的组合策略来生成具体的测试用例遥生成测试用例的组合策略一般有配对组合法和正交法袁以及全组合策略遥但是一般情况下不使用全组合策略袁全组合策略将导致用例爆炸袁使得测试无法收敛遥7结语自动化测试平台在实现测试设计自动化和零编码自渊1冤大幅减少测试设计工作的人工投入袁测试用例动化测试开发后袁主要取得了如下几个方面的提升院设计步骤上人工只需要对业务进行精准建模分析即可袁测试数据设计步骤上只需要梳理前端输入约束并且是根(上接第27页)HibernateValidation校验框架来完成对表单的数据校验建议开发者使用遥参考文献[2]丁振凡,吴根斌.模型的数据校验国际化处理[J].计算机时代,2012,(08).校验和国际化.2016.[3]须木一瓜.SpringMVC数据的格式化尧JSR303数据及异常的国际化显示处理是一个最好的处理校验方式袁[1]疯狂软件.Spring+MyBatis企业应用实战[M].电子工业出版社,2017.(上接第31页)[6]李大志,李强,刘玉梅.评价大学生心理健康状况113-116.的模糊数学方法[J].大学数学,2007,23(6):[7]邹国振,李国岳.大学生幸福感的影响因素及提升策略[J].思想政治教育研究,2012,28(3):118-121.362019.12
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688019397a67293.html
评论列表(0条)