关于智能化、精准化测试的一切,这50个问题我们帮你整理好了!
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
请问精准测试里面手工用例的覆盖数据,版本维护、持续更新的策略是怎么设计的呢?
苏慧:用例推荐出来后被执行,过程中会自动录制更新
腾讯智能自动化测试探索和建设
胡继 腾讯资深测试开发工程师
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和录播视频。
也许你还想看