8月7日下午,爱奇艺技术产品团队举办了第17期“i技术会”,本次技术会的主题是“智能化、精准化测试前沿探索”,本次沙龙与TesterHome社区联合举办。
来自爱奇艺、美团、腾讯、转转的几位专家分别就各自的议题进行了分享,大家在交流群中也十分活跃,留下了众多问题。我们特此汇总,向各位嘉宾请教,现将回答整理如下,供大家交流。
如果你错过了本次沙龙,可以直接戳阅读原文,观看直播回放,也可以关注公众号,在后台回复关键词“测试”,获得本次i技术会嘉宾分享PPT和完整的录播视频,先认真观看,再和本篇QA内容配合服用,效果更佳哦~
《爱奇艺精准测试体系建设》
苏慧 爱奇艺测试专家
本次分享讲述了爱奇艺精准测试实践过程中,为了走出回归测试困境、实现精细化测试能力建设进行的一系列技术攻坚,例如采用自研代码覆盖率工具,改变原生代码覆盖率工具实现方式,支持服务端多人并行测试以及微服务调用链串联,最终实现回归测试质量与效率双向提升。(现场速记文字稿戳????这里)
Q
精准测试筛选的用例,跟普通手工测试的用例,在用例设计上有什么区别?
苏慧:没有区别
Q
字节码插桩技术是如何通过header信息区分是否命中执行语句呢?
苏慧:使用header中的traceID进行调用链串联
Q
精准测试主要适合哪些业务场景,精准测试的效率提升和收益大概提升多少?
苏慧:适用于全量执行回归测试,或者缺少回归测试造成质量问题较多的业务
Q
对于更新迭代快的业务,如何进行精准测试?
苏慧:业务更新迭代速度,不影响精准测试使用
Q
精准测试的映射关系梳理和后续维护需要多少人力的投入,更新的频次是多少?
苏慧:用例执行过程中会自动更新
Q
代码覆盖率工具如何做到测试范围的准确性?
苏慧:代码覆盖率工具可以获取用例与代码映射关系
Q
对于SDK类,C/C++等实现的功能,精准测试如何更好的落地?
苏慧:C/C++语言支持待扩展
Q
初始用例和代码对应关系很庞大,如何保证所有对应关系正确性?
苏慧:可以做异常用例监控
Q
用例与代码关联的最小粒度是方法还是类?
苏慧:分支粒度
Q
变更代码diff ---》受影响用例 这个是回归还是测新?
苏慧:回归测试
Q
设置基础用例时通过什么设置?
苏慧:在精准测试平台设置
Q
服务端代码覆盖率工具目前都支持哪些语言?
苏慧:java语言
Q
分支级别的推荐可以降低推荐用例冗余,但对用例的粒度要求更精细了,这里怎么平衡呢?
苏慧:对用例设计本身无影响
Q
怎么做到测试用例和代码之间的一一对应关系呢?
苏慧:用例执行过程中, 记录正在执行的用例id, 与代码做绑定
Q
异常监控具体怎么判断操作用例可疑呢?
苏慧:关联文件个数、类型等
Q
用例的编写深度到什么程度,可以保证推进精准测试,现在有具体要求么?
苏慧:对用例编写本身无要求
Q
目前服务已经积累很多自动化脚本的用例,可以接入吗?
苏慧:可以
Q
流量录制回放用例如何精准筛选?保证筛选出的用例是我们想要回归的用例?
苏慧:筛选出变更代码有影响的用例进行回归
Q
线上的流量数据如何和测试环境的保持一致呢?还是说把线上的流量数据拿下来做好处理之后再去使用?
苏慧:可以录制线上运行数据,测试环境回放时进行mock
Q
手工执行用例和代码是怎么做到关联的,比如执行了A,B,C用例,收集到了A,B,C用例的执行代码,但是怎么区分A,B,C用例的代码?
苏慧:记录用例的请求数据,其中包括请求的来源用户IP
Q
现在测试用例的筛选是将全部的测试用例都录入知识库吗?还是说挑选测试用例?挑选测试用例的话怎么判断是否全部覆盖代码块?
苏慧:可以全部录制或部分录制。是否覆盖全部代码可以使用代码覆盖率工具,计算覆盖率
Q
请问下环境配置和数据库变更如何做用例关联和推荐?
苏慧:目前只是代码层面关联
Q
手工案例与代码映射关系,维护成本是怎么样的?
苏慧:用例执行过程会自动记录
Q
客户端函数调用链怎么获取的?在发布包上获取,是自研打桩吗?
苏慧:可以使用原生覆盖率工具
Q
请问精准测试里面手工用例的覆盖数据,版本维护、持续更新的策略是怎么设计的呢?
苏慧:用例推荐出来后被执行,过程中会自动录制更新
腾讯智能自动化测试探索和建设
胡继 腾讯资深测试开发工程师
在 DevOps工程效能提升背景下,腾讯内部各BG积极推进,越来越多的移动端项目在流水线中集成自动化测试,对移动端云测试平台稳定性和灵活性提出很大挑战。本次分享主要介绍腾讯内是如何通过建设稳定灵活的智能自动化测试平台实现质量效能的提升。
Q
容器到设备的agent如何操作?
胡继:ppt里有讲,把手机连接网络化后,就可以从容器里连接了
Q
iOS云真机是如何调试的?需要越狱吗?
胡继:和安卓是一样的,接入Mac后接入,不需要越狱,现在越狱肯定是越来越难的。
Q
这个智能硬件是公司根据需求自己研发的嘛?
胡继:是的。
Q
定制机会不会遗漏一些手机兼容性的问题?
胡继:定制机一般适用的场景是功能测试,这些测试往往他不关心兼容性,如果你要做兼容性的话,就要用真机来做
APP DIFF自动化解决方案
齐文方/魏真真 爱奇艺资深测试工程师
本次分享讲述了APP Diff利用deeplink、mock提升了UI自动化稳定率和效率,并结合AUI图像匹配算法,达到接近人工的验证效果,在收藏、card等业务推进落地,以较低成本持续产生收益,在移动端UI自动化方向实现了突破与创新。
Q
deep link这种方案需要app端支持吗?用不用对app做改造?
齐文方/魏真真:Deeplink能力需要app支持,属于业务基本功能,比如支持app间的互相导流等;具体页面参数的解析需要定制化开发。
Q
app diff最后达到的目的就是ui对比,兼容性更好的发挥作用?
齐文方/魏真真:app diff目标是提高原生框架的稳定性,同时可以实现接近人工校验的效果。
Q
UI每次发版改动很大,怎样维护base库的正确性,人为成本有多大?
齐文方/魏真真:基准包是一个相对稳定的包, 改动较大时可以替换一个线下包测试;base库每次都是重新生成,不存在维护。
Q
四种图片匹配规则是人为配置的吗?有根据不同图片自动化配置的方法吗?
齐文方/魏真真:根据业务场景会设计一个默认的配置规则和阈值,同时也提供了针对个别用例单独配置的能力
Q
想问下,最后结果校验里面的base图片是人工提前保存的吗?
齐文方/魏真真:base图片是每次base任务生成的,不是人工提前保存的。
Q
AUI自动编写用例,可行性方案高吗?我知道现在新闻很多都是机器写的
齐文方/魏真真:准确说现在使用的是代码生成,freemarker; 抽象业务相似路径,ui操作和deeplink,编写一个模板。
Q
请问mock服务包括那几部分?
齐文方/魏真真:大致有这几个模块;数据存储,配置管理,用户管理,对外服务api。
转转精准测试落地实践
田西西 转转测试架构师
本次分享主要介绍转转精准测试的落地情况与过程中遇到的困难,共同探讨,少走弯路。主要包括:1.为什么要做精准测试;2.精准测试的目的目标;3.技术选型与落地;4.与周边平台联动最大化精准测试的价值;5.落地与应用效果。
Q
log id与trace id的区别是什么?
田西西:一个请求对应一个logid,通过入参传递,但需要硬编码容易丢失。trace id直接在研发框架中实现,不需要业务研发关心,可以直接追溯整个调用链。
Q
对比爱奇艺的精准方案,服务间调用使用了rpc的上下文,这个上下文主要包含了什么信息,对调用链的串联的作用是什么?
田西西:正常RPC框架中,上下文包括上下游服务、调用和背调方法等服务间调用的一些信息。在精准测试中为了获取方法级别的调用链,在RPC上下文的attachment中存入了方法调用栈在服务间传递。
Q
不同的数据有自己的路径,给一部分数据排重,会不会影响别人所返回的信息准确性?
田西西:精准的插桩只采样收集属于,在远端计算还原,不会影响被插桩程序本身的运行结果。
Q
没有用jacoco用的sandbox吗?是不是相比较jacoco这个会有更多的开发量,是不是需要写一些sandbox的定制化插件?
田西西:用的是sandbox,是要在sandbox开发自己module,两个处理方式不同,都需要开发量,用jacoco也需要定制化开发。
视觉AI能力统一评测实践
易舜昌 美团测试专家
本次分享主要介绍了美团视觉AI能力评测的基本逻辑和工程实现方法,总结美团在统一效果评测方面的宏观方法和实践经验。
Q
一般会有什么指标呢?关于分析的核心点有哪些?
易舜昌:指标类型,取决于被测的对象需要。比如,如果被测对象做的是分类的工作,那么一般来说,关心的指标就是细分类的准确率/召回率。分析的核心,在于总结出goodcase和badcase出现的规律。发现效果在什么场景下好,什么场景下差。然后再做针对性的提升。
Q
除人工标注,数据的标注是怎么做的?
易舜昌:除了纯人工标注,还可以使用模型结果作为预标注结果,然后人工校准。这样,可以提升一些效率。
Q
统一的服务的管理平台算是微服务架构的一部分吗?
易舜昌:这个和微服务无关。统一管理平台是通过提供服务管理能力,方便管理评测对象。有助于提高评测效率。
Q
数据对算法的覆盖面是怎么度量呢?
易舜昌:这个,我认为更多的,是应该从需求出发。因为评测的重要目标,是为了度量服务在预期需求场景下的效果,与理想效果直接的差距。所以,评测集的覆盖是否足够,实际上是看评测集对于需求场景的覆盖程度。
Q
评测是否通过的标准是怎么确定的?比如准确率和召回率要达到什么标准,还是说有一个基准值,只要比基准值高就是通过的?这个标准设定一般要考虑哪些因素呢?
易舜昌:本质上来说,通过的标准,应该来自于业务需求。算法是实现需求的方式。所以,应该从业务需求角度,来判断指标达到多少,才能满足业务需求。如果没有明确的业务需求,纯粹是技术迭代的探索,那么,就是自己按照迭代规划来定了。
Q
模型上线,需要召回/精确达到什么样的指标标准?怎么保证测试集图片的完整性,各种样式的?大概测试集图片是准备多少量?标注图片,目前是什么技术方案?
易舜昌:1. 还是得看业务对于模型的需求是什么。各个业务需求不一样,希望达到的指标也不一样。2. 看被测模型支持的图片格式有哪些。如果模型对于不同输入格式的图片,效果会有区别,那么,需要构建不同格式图片的评测集。但是,大部分情况,我们认为,图片格式应该不会影响效果,所以,评测集往往不刻意追求不同格式的覆盖。单个场景的评测集的规模,我们有一个经验值。经验上来说,最好超过1000。最少也不能低于200。3. 主要是人工标注,同时也可以使用模型输出作为预标注,以提升标注效率。
Q
badcase有没有自动分析的实践?
易舜昌:没有相关的实践。我们认为,分析的事情,本质上,还是人的能力。机器只能按照预设的规则进行简单的尝试,能提供有价值分析结论的概率不高。
Q
数据准备除了市场调研外,还有什么办法判断各场景数据的比例?
易舜昌:建议各个场景的数据采集,独立进行。能满足评测需求就好。不用追求各个场景数据集的比例。
Q
数据集除了真实数据,会自动生成数据吗?比如用GAN网络来生成?
易舜昌:目前主要是攻防相关的模型,会使用GAN网络生成数据。其他的,没有这么做。因为我们认为,除了攻防类的模型,其他的服务,更多的是为了处理来自真实世界的数据,这种情况下,使用生成数据测试,难以反应对真实世界数据的效果。
Q
有自动设计自动化测试用例的方案么?
易舜昌:评测这块,测试用例的概念较弱。更多的是关注评测场景。
Q
美团的什么业务会有这样的测试呢?
易舜昌:举一个例子,和其他互联网公司类似,美团有很多过滤不合法图片的需求,比如色情,暴恐,恶心图片等。于是,就有了相关效果评测的需求。
Q
请问数据集是如何做版本管理的?
易舜昌:我理解,和代码的版本管理类似。
Q
示例的评测指标以产品指标居多,是否有做模型层面的分析呢?比如我要看模型的注意力,梯度分布,单元贡献等?2.badcase分析一般会从哪些方面进行聚类呢?
易舜昌:1. 目前我们的评测的重点,还是在产品指标上。因为我们评测的出发点之一,是要度量和理想效果的差距。对于模型层面的分析,不是我们考虑的重点。2. 常见的方式,是从场景出发聚类。分析badcase与场景的关系。
福利!!! 点击阅读原文,观看直播回放!关注公众号,在后台回复关键词“测试”,就可以获得本次i技术会嘉宾分享PPT和录播视频。
也许你还想看
关注我们,更多精彩内容陪伴你!