版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
复杂配置场景自主遍历测试技术实践张翼翔|华为
自动化测试专家某领域TSEG
Leader
,
负责产品测试技术规划及测试工程能力建设。对大规模防护网建设、
测试作业平台设计与落地、
动态测试代码技术、
代码级精准测试等领域有较深入的研究和实践。张翼翔华为技术有限公司高级工程师目录CONTENTS02
关键技术1:知识图谱的学习与推理03
关键技术2:核心自主遍历AI算法04
关键技术3:脚本自动生成方案05
实践应用效果&下一步展望01
业务痛点&技术诉求PART
01业务痛点&技术诉求现网大量问题反映
,多数据组合维度(设备款型、版本号、特性、业务流程、故障模式)方面超大数据空间场景
,测试设计普遍存在遍历缺失多不全面的问
题。类型1:
设备级操作设备上线设备配置设备首次上线设备重启设备升级设备替换设备加入/移出站点切换站点类型2:
站点级操作站点配置站点模板绑定解绑设备配置模板绑定解绑各类模板修改类型3:
配置框架全量下发增量下发失败重下发配置修正差异发现一致性同步对账类型1:
控制器故障控制器升级容灾倒换节点重启微服务重启缓存重启等类型2:
设备故障设备重启设备掉电设备离线再上线设备链路异常设备卡死设备性能慢设备反复上下线等类型3:
组网故障网络时延丢包网络拥塞IO异常CPU/内存异常等V200R010C00V200R011C10V200R012C00V200R012C20V200R013C00V200R013C00SPC500V200R019C00V200R019C10V200R019C20V200R020C00V200R020C10V200R020C20V200R020C30V200R021C00V200R021C00SPC600V200R021C01V200R021C10V200R021C10SPC500V200R021C10SPC600V200R022C00V200R022C10V200R023C00V200R023C10V600R021C10V600R022C00V600R022C01V600R022C10V600R023C00V600R023C10
极大的数据空间关键数据:设备款型1500+设备版本10+业务特性600+业务流程15+故障模式15+10版本1500+设备款型600特性(存在依赖耦合)15故障模式1.2
Billion15业务流程痛点1:
由于设备款型、设备版本、业务特性、业务流程、故障模式的叠加导致的现网问题
,
占
比SDN配置下发失败类网上问题的50%
,这类问
题影响大
,容易造成客户投诉。痛点2:测试的全面性、精准性依赖人员经验以
及网上问题事后改进
,缺少平台和技术手段进行
数字化承载以及完整度评估1、测试设计上
,业务特性与业务流程的组合依赖无法
遍历覆盖
,特性间耦合无法精准识别2、测试执行上
,无法获取全量设备款型和版本于业务
叠加测试
,全组合遍历在效率上无法接受3、测试评估上
,无法有效给出所有业务特性与业务流
程覆盖率
,特性参数覆盖率
,设备款型版本覆盖率等指标
技术诉求:1、亿级数据空间缩减
:全参数遍历构建的超大数据空间,基于业务特性热力图、现网和版本问题、代码变更等参数进行数据降级
,从1.2B多降级到10K~1M级别。2、知识图谱构建
:构建restful-yang-cli的知识图谱
,帮助数据空间降级以及测试脚本精准生成3、
自动化脚本编排
:借用已有自动化脚本
,基于ODG和
测试激励
,输入数据五元组
,实现脚本动态自动生成
亿级数据空间人工无法覆盖
,
需基于知识图谱、
自主遍历等技术命中缺陷靶标PART
02关键技术1:
知识图谱的学习与推理Q1:黑盒上的特性如何和被测API建立联系?Q2:•
这些特性的耦合关系如何学习得到?•
特性间的耦合关系如何表达?Q3:•
这些被测特性的前置依赖是什么?•
如何自动完成前置依赖的预制?
为什么需要知识图谱?1、在E2E业务下发流程上
,对测试脚本和SUT插桩
,采集学习生成:Yang、
二、采集学习restAPI-feature
KGs映射关系Yang各维度知识图谱;2、基于知识图谱
,推理出特性之间的隐性、
显性耦合关系
,支撑精准覆盖;3、采集出restAPI和特性的映射关系一、
E2E业务下发:restAPI(restAPI)
→Feature(java)→NetConf(yang)Stub.3三、采集学习restAPI-Yang、
restAPI-restAPI
KGs并推理出特性之间的耦合关系推理1:restAPI之间的隐性耦合推理2:restAPI之间的显性耦合Stub.1restAPI实例获取restAPI
-
recordrestAPI-A(featrue)restAPI-B(featrue)restAPI-C(featrue)Yang1Yang2Yang3…yangNYang1’Yang2’Yang3
’…yangNrestAPI-AImplicitCouplingrestAPI-BNetconf(XML)
–
recordYang1Yang2Yang3…yangNStub.2Netconf报文截取SUT(sdn
controller)interpretor
-XFeature识别equals
基于知识图谱实现海量多态数据关系学习
intf
restAPI-X引用集合restAPI-Y引用集合restAPI-D(featrue)restAPI-E(featrue)restAPI-B(featrue)restAPI-A(featrue)多种场景的配置特性之间的耦合关系
,基于restAPI-featrue-netconf
KGs分析采集不同特性之间的黑/白/灰盒耦合关系
,实现特性耦合引起的配置丢失问题的精准测试场景4【黑盒】:restAPI相同敏感入参耦合
KGs(ip/port/mac/vlan/vlanif/staticroute/intf/acl)
特性耦合关系推理KGS场景3【灰盒】:restAPI相同Yangnode耦合
KGsYang1Yang2YyYang1Yang2YyaYang1Yang2Yang3…yangN场景2【白盒】:相同class关联的特性耦合KGs场景1【黑盒】
:相同引用特性耦合KGsYang1’Yang2’Yang3
’…yangNrestAPI-X
(reference)restAPI-Y
(reference)equalsYangN和YangN在耦合验证时尽量同idrestAPI-E(featrue)restAPI-D(featrue)restAPI-C(featrue)interpretor
-YAttr-x
:
aAttr-x
:
bAttr-x
:
c
v
lan
restAPI-CImplicitCouplingrestAPI-C(featrue)restAPI-B(featrue)restAPI-A(featrue)restAPI-BrestAPI-ArestAPI-ArestAPI-Binterpretor
-Xinter-Y引用集合inter-X集合restAPI-DrestAPI-EipPART
03关键技术2:
核心自主遍历AI算法1.2
Billion如何在1.2B个扇贝的海洋中
,找出你想要的那几个?•
已知:1.2B的数据空间大小
,假设其中有X(远小于1.2B)个测试激励有BUG
,全遍历完这1.2B数据空间
,需要时间T。•求解:在
0.05*T时间内
,识别出0.5*X个存在BUG的激励开启进化
启发搜索算法(遗传算法)解决什么问题?目标(自适应函数)
一个扇贝
的故事
基因交叉基因突变突变操作结果RestfulAPI返回操作日志缺陷发现代码覆盖鹰眼监控FitNess
FuncTion:•
广覆盖•
触发耦合•
高命中•匹配现网…
如何应用遗传算法Input:数据空间+KGs+现网缺陷/频度热力图Output+
Feedback适应度函数设计探索测试发现的问题无效裁剪Weight2:现网使用频度Weight3:代码MR变更频度初始种群(模型基准)交叉变异配置耦合多头配置代码覆盖数据空间覆盖率Weight1:现网、版本缺陷冗余裁剪代码覆盖交叉组外推荐算法:轮流推荐+反馈加权:实现对于不同引用的推荐覆盖所有引用形成list
,从list中进行轮流推荐选定引用后
,推荐共同依赖于当前引用的特性+因子序列组内推荐算法:遗传算法:启发搜索算法
,实现基于风险高低特性组合推荐能够从当前所有相互耦合的特性组合中
,推荐出权重和较大的特性+因子组合实例推荐算法:计算权重推荐:实现对于单一特性的不同aw择优推荐提前计算好所有httpBody的权重作为推荐优先级并保存在本地,推荐实例
时按照权重进行轮流推荐*业务反馈:根据执行结果即时调整权重
,实现对于产生问题的高风险特性的集中推荐1
23测试序列11
2A1相互耦合的特性特性节点的叶子节点:
实例aw列表及对应httpBodya
b
c
测试序列1
1.a
2.fA1aw:httpBody推出测试序列测试序列11.a2.f
A1相互耦合的特性形成耦合树由其共同依赖的引用作为耦合树的根节点A
B
C引用根的叶子节点:依赖于当前引用的特性引用操作:因子123组外组内算法设计:考虑特性之间存在耦合关系
,
因此将所有共同耦合的特性形成树组外、组内、实例-组内
:耦合于同一引用的特性组合推荐;组外
:不同引用间的特性组合推荐;实例
:每个特性对应的aw列表中推荐一个形成实例
启发搜索算法(遗传算法)PART
04关键技术3:
脚本自动生成方案从已有脚本中学习:参数回填、ODG(操作依赖关系图)、响应提取与参数依赖关系。
自动生成特性配下发步骤及全量前置依赖。
自动生成业务流程(设备/站点/配置框架)参数回填。依赖学习:业务特性接口依赖学习:业务action ODG学习生成全量ODG生成款型:款型A版本
:版本B子序列1:业务特性
:特性X业务action组合:站点模板绑定、模板配置配置下发、移出站点、移入站点、切换站点子序列2:业务特性
:特性Y业务action组合:单机转堆叠、恢复出厂再上线•
基于款型+特性:在ODG中检索所有匹配的特性AW序列:A-seq•
基于设备级action:在ODG中检索所有匹配的的AW序列
:B-seq•
基于站点级action:在ODG中检索所有匹配的的AW序列
:C-seq•
基于配置框架action:在ODG中检索所有匹配的的AW序列
:D-seq将A/B/C/Dseq
,完成优化重组
,并自动完成相应提取和参数填充。ppGetDevicecreateDeviceaddDeviceGroupsTESTCASE-2removeDevicesFromDeviceGroupsbatchgetItemaddDevicesToGroupIdbatchgetItemaddDevicesToGroupIdbatchgetItemTESTCASE-5resetFactorycallHomeTESTCASE-1ppGetDeviceaddDeviceGroupscreateDeviceregistersiteTemplateCreatesiteTemplateBindcreateSiteTemplateXXXConfiggetConfigResultsTESTCASE-3Create_YYYTESTCASE-4convertDeviceToStack检索ODG
一个激励样例
用例生成从已有脚本中学习:基于测试激励中的业务特性和action信息
,选择对应的AW
,并检索ODG生成全量接口依赖序列(带参数),完成脚本生成。
基于ODG和测试激励生成脚本•基于java字节码增强技术(ASM+javassist)
,运行时修改java自动化脚本•实现对脚本的:切割截取、AOP注入、判定修改、方法入参/返回值修改
,等几乎任意修改
动态测试代码:
让测试脚本千变万化
Teststep1Teststep2teststep3Teststep1
Teststep2
Teststep3Teststep1Teststep2teststep3Teststep1
Teststep2
Teststep3AOP注入方法返回修改切割取前段切割取后段AOP前置注入TeststepNAOP后置注入方法入参修改判定修改Checkpoint
condition(a
==b)Checkpoint
condition
(a!
=b)Func(“b
b”)Func(“aa”)TeststepNPART
05实践应用效果&下一步展望全量自动化restAPI
ODG采集完成(单个testcase样例)
成果与进展:
知识图谱采集三、特性间耦合KGs采集完成全量自动化restAPI
ODG采集完成(10个testcase样例)进展二、API-Feature-Interpreter
KGs采集完成按问题严重等级(总数217)250200150100提示
一般
严重2015001963910160140120100806040200因子叠加
特性耦合
配置丢失
款型按问题类型14325
版本实践应用效果-总体价值:
质量改进对比执行方式支持用例类型执行用例数特性覆盖率执行成本BEFORE自动化+手工自动化用例、手工用例2.5W约20%>200人天/产品NOW本方案自主生成自动化用例46W>95%3人天/产品算法类型执行测试激励数业务问题总数缺陷命中率(已知问题28)分析时长SBST2W1515÷28
×
100%
=53.6%0.5人天随机2W55
÷28
×
100%
=17.9%0.5人天•
46W全量测试激励
,48h内完成执行•
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店员工试用期工作总结(资料8篇)
- 2026年保密宣传月保密知识测试真题及答案
- 2026年保密教育线上培训考试真题及答案
- 第四单元 美洲乐声- 化装舞会 教学设计 人音版初中音乐七年级下册
- 本册综合教学设计高中物理第二册沪科版(2020·上海专用)
- 初中语文写作 说明事物要抓住特征教案
- 第十二课 规划演示作品教学设计初中信息技术浙教版2013七年级下册-浙教版2013
- 江苏省盐城市亭湖新区九年级化学下册《10.1 常见的酸和碱》教学设计 (新版)新人教版
- 第7课 视频编辑也轻松教学设计-2025-2026学年小学信息技术(信息科技)第六册(2018)电子工业版(安徽)
- 部编版语文五下素养教案-习作2:写读后感(第2课时)
- 初中数学竞赛双十字相乘法因式分解练习100题及答案
- 幼儿园《春天是一本书》课件
- 2024年贵州六盘水市公安局合同制留置看护人员招聘笔试参考题库附带答案详解
- 英文科技论文写作
- 水玻璃贴衬花岗岩新技术
- 云县病死畜禽无害化处理项目环评报告
- XX县群文阅读课题中期成果报告:县域性推进小学群文阅读教学实践研究中期研究成果报告课件
- GB/T 38658-20203.6 kV~40.5 kV交流金属封闭开关设备和控制设备型式试验有效性的延伸导则
- GA/T 1047-2013道路交通信息监测记录设备设置规范
- 2023年成都天府新区投资集团有限公司招聘笔试模拟试题及答案解析
- 通用设备经济寿命参考年限表
评论
0/150
提交评论