专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

推荐算法在用例排序优化上的应用

  本期作者
  王京京
  哔哩哔哩工程效能团队
  高级开发工程师
  01背景
  随着持续集成和敏捷开发的不断发展,移动应用的发布变得越来越频繁。以B站应用为例,主站粉版APP每周都会发布一次新的版本,主站HD应用的Android端与ipad端每周交替发布新的版本。在应用快速迭代的同时,QA需要在规定时间内进行大量的回归测试以保证应用的质量。一方面,大量的测试用例需要耗费较多的人力和时间,另一方面,BUG检出时间的不确定性导致给予研发修复的时间并不是很充足。因此急需一种技术来帮助QA快速筛选出高风险用例,将BUG的发现时间提前,从而给研发更多时间去修复BUG。在此背景下,我们经过调研后,选择了使用测试用例排序优化技术(TestCasePrioritization,以下简称TCP)来帮助QA对测试用例进行优先级排序,提高测试效率。
  02相关技术
  2。1什么是TCP
  测试用例排序优化技术(TestCasePrioritization)最早由Rothermel〔1〕提出,他对测试优化问题给出了如下定义:
  通俗地讲,就是对测试用例集合T进行排列,找到一种最优排列T,使得按照这种排列顺序进行测试,能够给到我们最大的收益。TCP的目标标准可能各不相同,在本文及实际应用中,我们希望经过排序后的测试集合能够更早地发现BUG。换句话说,我们希望排列越靠前的用例,检出BUG的概率能够更高。这样一来给予了研发充足的时间去修复BUG,二来帮助QA筛选出冗余的用例,从而降低测试成本。
  2。2如何衡量TCP的效果
  我们介绍了TCP技术的定义,但还没有对评价函数f给出具体的实现方案。一般而言,评价函数f可以划分为两类:特定评价函数以及通用评价函数。针对前者,学术界提出了APFD(AveragePercentageofFaultDetection)〔1〕指标,这也是TCP问题最常用的评价函数,它的设计目标是衡量TCP技术发现BUG的时机。APFD的定义如下:
  APFD的值越接近1,表示发现BUG的时机越早。
  针对通用评价函数,我们采用了BUG召回率(recall)作为评价标准。但同时召回率指标又与测试数量高度相关,即如果所有测试用例都被执行,那召回率永远都是100,因为所有的BUG都被召回了。因此我们设计了recallp,只针对部分测试用例计算其召回率,定义如下:
  recall越接近1,表示遗漏的BUG越少。
  我们利用APFD来评估应用TCP技术后BUG发现的时机是否提前了,同时利用recall来观察在仅使用部分测试用例的情况下BUG遗漏的情况。
  2。3推荐算法
  推荐算法目前被广泛地运用在广告、搜索等相关领域,业界也有不少成熟的解决方案。简单地讲,推荐算法的输入为用户特征和物品广告特征,在经过特定模型计算后,算法会给出一个推荐的物品广告列表。常用的推荐算法包括协同过滤算法、基于内容推荐以及混合推荐。
  03方法
  3。1问题映射
  如何从成千上万个测试用例中,挑选出具有高风险、容易出BUG的测试用例,这看上去是一个相当有挑战的任务。传统上大家都在对测试用例的特征进行深入分析,希望发现那些具有高风险的用例具有的相同特征。但实际上,应用是否出BUG,本质上取决于改动了什么代码。也就是说,我们在分析测试用例特征的同时,还需要对改动代码的特征进行分析,而对代码的分析则更加具有难度。Pan〔2〕的研究显示,大部分TCP技术针对代码的特征都仅仅使用了代码行数这种比较浅显、易获取的特征。
  既然对代码的分析困难重重,那么有没有办法可以减少甚至跳过对代码的分析呢?受到推荐系统的启发,我们认为可以通过加入需求特征的方式,跳过对代码特征的分析。
  如图所示,在推荐系统中,用户通常会有不同的喜好,不同的喜好对应可能不同的感兴趣的物品。而这种喜好可能并不会显示地告诉系统,因此推荐系统会根据用户的特征,结合物品的特征对用户进行推荐。
  类似地,不同的需求通常会改动不同的代码,而这些代码则对应会影响某些测试用例。我们希望TCP能够像推荐系统一样,结合需求及用例特征推荐测试用例。
  为了将推荐算法应用到TCP问题上,我们将TCP问题重新建模,进行如下定义:
  这样我们就将一个TCP问题转化为推荐算法问题,从而可以使用推荐算法解决。
  3。2数据
  目前我们拥有了需求数据和测试用例数据,如何将它们关联起来从而可以进行模型训练呢?比较容易想到的方法就是将需求数据与测试用例数据做笛卡尔积,也就是对于每一份需求数据,都将其与所有的测试用例进行关联,也即认为一个需求对所有的测试用例都可能产生影响。这种关联方法优点在于减少了遗漏,不会漏掉需求或者测试用例,但也有明显的缺点,需求并不会对所有的测试用例都产生影响。
  为此,我们设计了关键词关联法,在不增加工作量的基础上,加强需求与测试用例的关联关系。该方法通过将需求和测试用例拆分为关键词词组,若需求关键词词组与用例关键词词组存在交集,则认为两者存在关联。这也是一种非常直观的方法,即需求对应的业务与测试用例对应的业务如果相同,那么两者之间有较大概率存在关联,反之亦然。
  3。3模型
  我们使用的需求数据与测试用例数据的特征非常稀疏,且样本数量与业界动则上亿的样本数量相比显得非常少,因此需要精心挑选推荐模型,以求模型能够达到最佳拟合效果。我们比较了LogisticRegression(LR)、FactorizationMachine(FM)、DeepStructuredSemanticModel(DSSM)、XGBoost、RandomForest等模型算法,并进行了相关实验,最终我们选择了FM模型作为主要的推荐模型。
  04实验结果
  为了探究将推荐算法应用到TCP问题上的效果,我们设计了以下3个问题来验证我们方法的有效性。
  问题1。我们的方法对比用例随机排序有提升吗?
  问题2。使用需求数据与不使用需求数据,有多大的区别?
  问题3。关键词关联法到底有没有效果?
  我们使用了哔哩哔哩粉版6。53。06。84。0共计31个版本的应用来进行实验。
  问题1的实验结果如上图。APFD的箱型图显示,采用FM算法后,发现BUG的时机相比随机结果提前了非常多,这表明我们的整体方法是有效的。同时,我们使用Recall{0。5}来观察BUG的遗漏情况,可以看到在使用一半的测试用例的情况下,平均召回率可以达到90,即只有10左右的BUG会遗漏。
  问题2的实验结果如上图。从APFD箱型图我们可以看到,尽管使用需求数据与不使用需求数据的APFD在均值上相差仅45个百分点,但不使用需求数据的APFD分布更加分散,即仅使用测试用例的情况下,预测BUG的效果并不稳定,并不能稳定将BUG的发现时机提前。再看召回率图则更加明显,仅使用测试用例的模型,其召回率非常不稳定,极端情况甚至出现低于50的召回率,即使用一半的测试用例,甚至无法召回一半的BUG。这个实验表明,在增加了需求数据后,采用FM算法对测试用例进行排序,其效果更加稳定。
  问题3的实验结果如上图。出乎意料的是,全量关联法在APFD上要比关键词关联法表现稍好,即其排列的测试用例,发现BUG的时机要提前一些,但是在召回率上的表现要比关键词关联法稍低一些,且稳定性也不如关键词关联法。因此,是否采用关键词关联法,取决于我们更关注BUG的发现时机,还是BUG的漏测率,但两者本质上并无太大差距。
  05实际落地
  如何将TCP技术应用于实际的生产中呢?我们选择采用例推荐的方式来应用TCP技术。具体的过程如下:
  输入当前版本的需求数据及测试用例数据后,我们会通过已经训练好的FM模型给测试用例打分,进而排序。同时,系统会给排序在前p的用例打上推荐标签。QA们在回归测试时,选择优先去测试打上推荐标签的用例。在时间充足的情况,QA可以选择回归全量测试用例,由于BUG的发现时间提前了,研发们会有更多时间去修复BUG。而一旦测试时间比较紧急,则可以选择延后测试那些没有被推荐的测试用例,这样可以在尽量保证应用质量的同时,不影响应用迭代发布的时间。
  以哔哩哔哩粉版应用为例,首先选择应用及要对用例进行排序的版本,然后根据实际需求选择推荐的用例比例。
  点击【用例推荐】后,Jenkins会自动运行数据下载、模型训练、模型预测等过程。
  模型在执行完打分程序后,会同步更新至TAPD平台,在每条用例上更新【出BUG概率分】和【是否优先推荐】属性。
  在执行完回归测试后,我们也会收集发现的BUG,并计算召回覆盖率,从而观察模型的性能,并进行调整优化。
  06展望
  目前我们已经将需求及测试用例的特征挖掘地差不多了,实际更改模型后也并未取得更好的效果。因此我们还需要将目光投向代码特征,如何在尽可能不增加复杂度及工作量的情况下,获取更多更丰富的代码特征,并加入模型训练,成为我们下一步的目标。
  参考文献:
  〔1〕GreggRothermel,RolandHUntch,ChengyunChu,andMaryJeanHarrold,Testcaseprioritization:Anempiricalstudy,ProceedingsIEEEInternationalConferenceonSoftwareMaintenance1999(ICSM’99)。’SoftwareMaintenanceforBusinessChange’(Cat。No。99CB36360),pp。179188,1999
  〔2〕Pan,RongqiandBagherzadeh,MojtabaandGhaleb,TaherAandBriand,Lionel,Testcaseselectionandprioritizationusingmachinelearning:a
  systematicliteraturereview,EmpiricalSoftwareEngineering,vol。27,no。2,pp。143,2022
  作者:王京京
  来源:微信公众号:哔哩哔哩技术
  出处:https:mp。weixin。qq。comsY69FZlbwNsTLhsFv2yxL7A

2场爆冷!倒数第1逆转宿敌,火箭2连胜!黑马失利,勇士收2项大礼北京时间1月20日,NBA常规赛有多场比赛火热开打。值得关注的是,在此前结束的比赛中,出现了2场爆冷。2场爆冷排名西部倒数第1的火箭队,以116比111险胜爵士队。而雄鹿队,则以1你好星期六三期收视率连跌,何炅疲惫肉眼可见,蔡少芬都缺席自从湖南台新节目你好星期六上线以来,相关话题不少,但是内容基本都是吐槽居多,如今播出三期,就算有不少明星助阵,看点也很勉强,效果和笑料更是少之又少。最新一期播出后,收视热度更是一期昙花一现的内地女星们,曾经有多风光,现在就有多落魄对于我们来说,娱乐圈这个偌大的市场就相当于一个巨大的名利场,多少人在进入这个圈子之后便被蒙蔽了双眼,又有多少人为了争名逐利舍弃了自己最初的梦想和最初想要来到这个圈子发展的初心呢?因大爆冷!世乒赛亚军决赛崩盘,惨败输给15岁18岁法国小将北京时间1月21日凌晨,乒乓球WTT德国杜塞尔多夫赛上爆出了一个超大冷门2019年世乒赛亚军得主曾和马龙王楚钦一较高下的组合罗布勒斯(西班牙)约内斯库(罗马尼亚)在本次男双决赛中大WTT乒乓澳门赛混双8强全部产生,许昕刘诗雯今日冲击半决赛WTT澳门冠军赛正在火热进行中,目前,前两个比赛日的所有赛事已经结束,混双8强全部产生。根据赛程,21号将进行14决赛,22号进行半决赛和决赛。接下来我们来回顾下8强产生的过程。1iOS15。3上手!流畅起飞?iOS15正式版从去年9月份发布以来,总共更新了三个大版本,他们分别是iOS15。1,iOS15。2以及最新的iOS15。3目前最新版本是iOS15。3的beta2开发者版本,这个本泽马一举动昭示野心,他已不甘心沦为配角,皇马夏季引援恐生变2021年度FIFA最佳阵容的入选者中,前锋有4人入选,分别是莱万梅西C罗和哈兰德。作为皇马当家前锋的本泽马却没有入选,这多少让这位顶级射手有些不甘。在最佳阵容的人选公布之后,本泽大冷门!孙颖莎混双出局,王楚钦打脸自责,樊振东带师妹闯进4强1月21日,WTT澳门冠军赛展开混双14决赛较量,诞生大冷门。新科世锦赛冠军王楚钦孙颖莎不敌首次搭档的樊振东蒯曼,无缘混双4强!樊振东蒯曼则向着冠军发起冲击!在本次澳门赛中,国乒教那抹警察蓝,是你我心中最美的情侣装!有一种浪漫是值班备勤时的遥遥相望有一种牵挂是工作间隙时的互道平安有一种幸福是擦肩而过时的相视一笑既是同事又是伴侣既是战友又是知己他们用双倍的责任双倍的守候双倍的理解将警察蓝作为今生国王杯赛前马竞大巴遭对方球迷围攻,西蒙尼被激怒直播吧1月20日讯在今天凌晨进行的西班牙国王杯18决赛,马竞客场02负于皇家社会。赛前马竞大巴遭遇皇家社会球迷围攻,马竞主帅西蒙尼对此很生气。在赛前马竞全队乘坐的大巴抵达球场时,场长期喝三七粉的人,后来怎样了?有哪些禁忌?日本人早有了答案追求长寿是自古以来人们备受关注的话题,毕竟每个人都想拥有健康长寿的体魄,为了让自己收获一个更加健康的身体,越来越多的人加入到了养生的行列中。说起长寿的国家,日本人位居各国榜首,相信
七年战争大英帝国迈向日不落帝国的奠基之战15世纪大航海时代揭开欧洲国家在全球掠夺资源和殖民地的序幕,几百年来上演你方唱罢我登场的好戏。16世纪以前西班牙和葡萄牙引领海上霸权的第一波潮流,17世纪荷兰以海上马车夫的身份垄断莱万站C位!2021年世界足球先生候选出炉11位巨星角逐最后王位FIFA官方刚宣布了2021年各项大奖候选名单,其中有世界足球先生世界最佳教练世界最佳门将等奖项,而在世界足球先生奖项共有11位球星入围,梅西(LionelMessi)和C罗(Cr一文看懂网贷骗局所有套路!人难免有急着用钱的时候但人情债难借难还银行贷款程序繁琐要审批有没有什么方便快捷的方法呢此时,电脑弹出一堆小广告网络贷款手续简单!办理快捷!!不用担保!!!但这往往是骗局的开始如果不柳传志的叙事困境为什么总挨骂作者何伊凡来源盒饭财经(IDdaxiongfan)第1164篇深度文章18分钟阅读每一位企业家会被观察和评判,不过,批评柳传志似乎成了一件特别流行的事。这其中的悖论在于,柳在企业界中国超越美国,成世界最富国家亚太日报Sunshine据美国NextShark网站报道,根据一份新的报告,中国已经击败美国,成为世界上最富有的国家。管理咨询公司麦肯锡的报告称,全球净资产从2000年的1。56亿幸福是我们用心来经营的生活总是有那么多不如意。那些被我们捧在手心的画面,曾经那么多让我们无忧无虑地散飞于天地间的思念,曾经是多么疼痛的青春美好,而如今却是渐行渐远。最终离开那个让我们心生纠结的画面再也无从轮船招商局的命运谈联想5G投票事件本文从独特角度谈联想5G投票。第二次鸦片战争后,英法等国获得了在长江各口岸自由航行的权利,长江上穿梭往来的西式轮船垄断了长江航运,中国商人为此不得不承受昂贵的客货运价格。1872年八旗子弟现在生活得咋样了,和珅的后人也在黑龙江种地可能我们大家都是听说过清朝,很多的人对于清朝也是非常的感兴趣的,清朝也是有着300多年的历史的,其中也有过非常鼎盛的时期,也有后来的闭关锁国,经历了风雨飘摇之后也是灭亡了,我相信大南宋开国皇帝赵构,81岁高龄善终,但56岁就成了太上皇对于宋朝皇帝而言,当皇帝似乎是一件很苦恼的事情。于是宋朝的禅位几乎是历史上最频繁的。宋徽宗就禅位给了儿子宋钦宗,而南宋的开国皇帝赵构,56岁就禅位给了宋孝宗,而赵构则活了81岁,也深度操作系统deepin20。3发布深度操作系统20。3,升级Stable内核到5。15版本,进一步提升兼容性。修复系统安全漏洞,增强安全性。部分深度应用新增及优化常用功能,满足不同场景下的使用需求。针对桌面环境部分11。23正式服史诗级更新7位英雄16件装备大调整,貂蝉废了不知不自觉中S25赛季开启也有一段时间了,小伙伴们也都达到了自己理想的段位。在这一次的赛季中期,策划进行了一次规模较大的更新调整,涉及到了7位热门英雄和16件装备。这是非常罕见的,
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网