南京汽车会
您的位置: 南京汽车会首页 >> 企业

基于不一致性分析的移动应用Bug报告生成技术

根据不一致性剖析的移动智能终端 Bug 汇报转化成技术性

图 1 Bug 汇报转化成步骤


1. 研究意义

近些年,伴随着智能产品的普及化,移动智能终端已变成大家生活起居中必不可少的一部分。Android运用因其灵便开源系统的特点和作用多种多样的第三方库深受开发人员亲睐,而其泛娱乐化的绿色生态也一样危害着数十亿客户。不一样移动终端硬件软件自然环境存有差别,促使没经充足检测的运用显现出很多潜在性的Bug,导致客户外流,房地产商信誉损伤,最后造成运用在市场竞争激烈的销售市场中被客户抛下。为确保运用品质,降低客户损害,开发人员必须立即地开展Bug修补,包括了详尽Bug叙述信息内容的运用Bug汇报则是修补环节的关键参照。

但目前Bug汇报不论是在其呈现方式還是转化成高效率层面都存有一些不够。普遍的手工制作检测报告中一般 包括了具有行业专业知识的众包平台检测职工对Bug的了解和剖析,但手工制作检测高效率低,人力成本较高。目前自动化技术检测工具大幅度提高了检测高效率,减少了花销,但其转化成的Bug汇报一般 是对数据测试的简易列举和展现,欠缺针对Bug特点的洞悉,如类型信息内容、修补提议,造成其結果仍依靠人力审批。尽管功能测试可在多机器设备上大批量实行,以仿真模拟运用真正运作情景,但在转化成Bug汇报时,运用在不一样机器设备上造成的反复Bug未被合理除去,沉余的汇报导致Bug审批和修补的人力成本猛增。除此之外,目前手工制作检测和功能测试Bug汇报均未考虑到多机器设备情景下引进的不一致性,即运用GUI特点和机器设备泛娱乐化造成同样运用在不一样机器设备上的个人行为和主要表现存有差别。所述各种原因,促使目前汇报对开发人员在Bug了解和修补环节具有的协助十分比较有限,缺乏全方位且易了解的Bug汇报。因而,融合了不一致性信息内容,包括针对Bug特点的洞悉,去除开反复Bug,可以提高开发人员了解和修补Bug高效率的易了解Bug汇报看起来尤其必需。

2. 研究方向

为融合功能测试和手工制作检测Bug汇报的优势,弥补目前易了解功能测试Bug汇报科学研究存有的空缺,对于Android运用功能测试結果,大家明确提出了一种根据不一致性剖析的移动智能终端Bug汇报转化成技术性—BREGAT(Bug Report Generation for Mobile App Testing)。大家初次对功能测试結果中存有的不一致性开展了流于形式界定,并探讨了Bug和不一致性中间关联,如GUI不一致性有关Bug表明是运用本身难题引发,与机器设备不相干,这对提高最后Bug汇报可了解性十分重要。根据对真正功能测试結果中Bug的核查和剖析,大家界定了一个可拓展的带不一致性标识的Bug分析法,各种别均标明了不一致性标识,搜集了造成缘故和通用性修补提议。BREGAT完成了该分析法,用以对功能测试結果中检验到的结构型Bug开展归类、去重复,并融合截屏、实际操作、机器设备信息内容等对映异构数据信息转化成易了解Bug汇报,加快Bug了解和修补。图2为BREGAT 工作内容。

根据不一致性剖析的移动智能终端 Bug 汇报转化成技术性

图 2 BREGAT 工作内容


Bug检验。对比于截屏和实际操作等GUI数据信息,检测设备系统日志详尽纪录了程序运行的真正运作情况和生命期,能够 发觉大量源代码级別的Bug,在其中一些Bug客户仅从GUI等级乃至没法认知。系统日志也是开发人员剖析运用运作情况,调节运用作用的重要参照信息内容。因而,针对运用检测全过程中在Android机器设备AP(Application Processor)端main,system,events,radio,crash缓冲区域复印的机器设备系统日志,BREGAT根据“fatal”,“error”,“exception”和“ANR”等Bug关键词来精准定位机器设备系统日志中Bug有关出错信息内容。针对复印了出现异常局部变量的Bug,即相匹配系统日志中几行结构型輸出,根据相对的系统日志模式匹配挑选出详细的Bug系统日志。BREGAT最后从机器设备系统日志中过虑出UncaughtException,ANR(Application Not Response)及其包括了普遍Bug关键词的开发人员自定系统日志輸出,或疑是Bug的系统日志精彩片段。

结构型Bug转化成。为融合功能测试全过程造成的截屏、实际操作、机器设备信息内容等对映异构数据信息来对Bug开展不一致性剖析,另外也为提高目前科学研究中Bug叙述单一,难以理解的薄弱点,提升最后Bug汇报的易读性,大家界定了一个结构型Bug实体模型。BREGAT在传统式专用工具仅根据系统日志出错信息内容开展Bug叙述的基本上,根据分析检测实际操作编码序列,获得运用详细的检测途径和网页跳转图,融合截屏编码序列为系统日志中检验到的初始Bug片段关联相对的截屏、实际操作和运用网页页面途径,并添加有利于剖析兼容模式Bug的机器设备知名品牌、型号规格、系统版本等信息内容,转化成了完善的结构型Bug。

Bug归类和去重复。根据对来源于16个类型的50个Android运用在20台不一样机器设备(遮盖9个流行知名品牌、五个常见系统版本)上的功能测试結果中4600两个结构型Bug案例开展不一致性剖析,人力核查并确定Bug和不一致性中间关联,从Stack Overflow、GitHub等难题论坛确定并搜集Bug造成的直接原因和通用性修补提议,大家界定了一个可拓展的带不一致性标识Bug分析法,共包括67个类型。分析法中每一个Bug类型都具备唯一的类型特点三元组(不一致性标识、直接原因、通用性系统日志方式)。BREGAT根据该分析法来具体指导Bug归类和去重复,针对结构型Bug案例,用分析法Bug类型界定中的通用性系统日志方式试着配对结构型Bug的机器设备系统日志精彩片段,配对取得成功则为Bug案例标明相对类型序号,不成功则归到未分类Bug,在最后Bug汇报中交给开发人员进一步核查。针对同类型下的好几个Bug案例,BREGAT根据Bug案例在该类型不一致性标识上的赋值对Bug开展排序,坐落于同类型、同排序下且系统日志精彩片段同样的Bug案例被鉴别为反复Bug开展去除。按类型不一致性标识赋值相同类型下Bug开展排序,在去重复的另外还保存了Bug和不一致性的关联。好似类型下2个Bug案例各自造成于系统版本为6.0和7.0机器设备上,隶属Bug类型不一致性标识为系统版本不一致性,按不一致性标识赋值开展排序后这两个Bug案例都被保存,这对确保Bug汇报的完备性尤为重要。

Bug汇报转化成。BREGAT从好几个层面统计分析归类、去重复后的结构型Bug遍布状况,从不一样角度转化成了可重现、易了解的Bug汇报,图3为汇报实例。汇报包括了运用Bug在机器设备、型号、知名品牌、Bug种类、Bug比较严重级别上的遍布状况。另外从Bug角度为每一个Bug呈现了包括非结构化数据的宝贝详情,除重现流程、截屏、Bug系统日志精彩片段等基本资料外,Bug类型信息内容、通用性修补提议及大家初次引进的不一致性信息内容使汇报具有了对Bug特点的洞悉。除此之外,还从机器设备角度,展现了每一个机器设备在检测全过程中的详细系统日志、截屏编码序列,有利于开发人员迅速了解、精准定位和修补Bug。

3. 科学研究经济效益

移动智能终端检测需求者在云测平台上公布功能测试每日任务,检测完毕后BREGAT全自动对多机器设备检测結果开展Bug检验,转化成结构型Bug结合,并对结构型Bug开展归类、去重复,最后转化成一份具备优良易读性,可重现、易了解的Bug汇报。开发人员根据查看报告能够 把握运用总体的Bug遍布状况,可对于流行型号或Bug比较严重级别优先选择修补相对Bug。汇报中每一个Bug均出示了详细的重现流程、类型信息内容、系统日志精彩片段及其不一致性信息内容,协助开发人员迅速了解和修补Bug。

根据不一致性剖析的移动智能终端 Bug 汇报转化成技术性

图 3 Bug 汇报实例


为评定BREGAT对功能测试結果中Bug的归类和去重复工作能力,大家将其与Bug汇报结合专用工具FuRong(该专用工具选用决策树算法来归类Bug,查默斯斯坦间距开展去重复)开展了比照。在对30个运用在20台机器设备上的功能测试結果开展Bug归类和去重复时,BREGAT遮盖了結果中83%的真正Bug,且归类精准率是86%,归类工作能力明显好于FuRong。BREGAT去除开結果中97%的反复Bug,在去重复准确度、均方误差、精准率等指标值上均好于FuRong。在16名开发人员意味着参加,涉及到9种不一样类型的Bug重现试验中,BREGAT所转化成Bug汇报的均值重现速度为17.4秒/个,通过率为100%。而做为对比的可了解奔溃汇报转化成专用工具—CrashScope,其均值重现速度为78.4秒/个,通过率为85%。参加者在重现试验后填好了密名汇报问卷调查,在其中Bug易读性难题评分的Friedman检测结果显示,BREGAT汇报易读性明显好于CrashScope汇报。

现阶段BREGAT已发布应用。做为功能测试的中下游服务项目,对运用功能测试全过程中在几台机器设备上造成的Bug开展精准地归类、高效率地去重复,最后转化成易读性高,可重现的易了解Bug汇报,全方位加快开发人员Bug了解和修复。

4. 论文致谢

文中由南京师范大学软件学院 2017 级硕士研究生田元汉编写。

谢谢自然科学基金(61690201,61802171)适用!

推荐阅读:中国财经要闻

关于我们 联系我们 XML地图 网站地图TXT 版权声明