技术领域
[0001] 本
发明属于
软件工程技术领域,特别是涉及一种面向用户评论信息的移动应用缺陷定位方法。
背景技术
[0002] 在移动应用在线商店(比如Google Play Store和Apple Store)中,用户可以评价每一款移动应用(即Mobile apps)。一般地,用户可以给出评分(五颗星法)以及输入评论信息。这些评论信息可以用来指导开发者进行软件维护活动(比如缺陷定位)。通过基于对前50名最活跃的开发者(这些开发者修复最多的缺陷)的调查,结果表明81.6%的开发者通过用户评论信息定位和修复移动应用中的缺陷。然后,通过人工进行缺陷定位是一件非常耗时的工作。目前国内外对于移动应用的缺陷定位研究较少。唯一的一项基于用户评论信息进行缺陷定位的研究是Palomba等人在2017年
软件工程领域国际顶级会议ICSE中提出的一种叫CHANGEADVISOR的方法。该方法通过计算源代码和经过聚类后的用户评论信息的相似度从而达到定位的目的。但CHANGEADVISOR的一个不足之处在于它会遗漏很多用户评论信息类和源代码之间的链接关系。换句话说,一定比例的用户评论信息并不能通过该方法定位到相应的源代码类(即class)中。其主要原因是因为用户评论信息包含的信息量较少,这会导致最终
算法匹配的不成功。
发明内容
[0003] 本发明为了解决现有的技术问题,提出一种面向用户评论信息的移动应用缺陷定位方法。
[0004] 本发明的目的通过以下技术方案实现:一种面向用户评论信息的移动应用缺陷定位方法,包括以下步骤:
[0005] 步骤1、收集用户评论等级小于或等于三颗星的用户评论信息并对用户评论信息进行分类,共分为五个类别,即信息获取、信息搜寻、属性
请求、问题发现和其它,提取问题发现类别中的用户评论信息作为缺陷相关的评论信息;
[0006] 步骤2、通过使用主题模型算法LDA对缺陷相关的评论信息进行聚类,按照主题的不同分为不同的用户评论信息簇;
[0007] 步骤3、通过微软
概念图MCG计算用户评论信息簇和缺陷报告的概念相似度,如果概念相似度大于预先设定的
阈值,则所述缺陷报告视为与用户评论信息相关的缺陷报告,利用所述缺陷报告对用户评论信息簇进行内容加强,将所述加强后的用户评论信息簇作为查询条件构成后续缺陷定位的
基础;
[0008] 步骤4、利用
自然语言处理技术对源代码进行数据预处理,进一步形成缺陷发生的源代码类集合;
[0009] 步骤5、利用基于权重选择的余弦相似度算法计算每一个由步骤3得出的查询条件和源代码类集合中的所有源代码类之间的相似度,如果相似度超过预先设定的阈值,系统将返回缺陷发生的源代码类列表,此时任务执行完毕。
[0010] 进一步地,所述通过微软概念图MCG计算用户评论信息簇和缺陷报告的概念相似度,具体为:将一个单词转化为一个概念向量,从而一个文档便可以随之映射到向量空间Cd中,
[0011] Cd=θT·HM (1)
[0012] 其中,θT表示词汇在文档中的TF-IDF权重值的向量,HM表示概念矩阵;TF-IDF权重值的计算如下所示:
[0013]
[0014] 其中,tft,d表示词汇t在文档d中出现的
频率; 代表逆向文档频率;N代表文档的总数,nt表示包含词汇t的文档数量;
[0015] 所述概念矩阵是由文档中所有词汇的概念向量整合在一起的,通过矩阵的乘法,一个文档被转化为一个概念类别集合的向量空间,即Cd;
[0016] 在得到用户评论信息簇和缺陷报告的概念向量后,通过余弦相似度公式计算它们的概念相似度;余弦相似度公式如下所示:
[0017]
[0018] 其中,Ci表示根据公式(1)得出的用户评论信息簇clusteri的向量空间,Cj表示根据公式(1)得出的缺陷报告BRj的向量空间;ωki表示在用户评论信息簇中第k个词汇的概念向量和TF-IDF权重的乘积;ωki表示在缺陷报告中第k个词汇的概念向量和TF-IDF权重的乘积。
[0019] 进一步地,所述利用基于权重选择的余弦相似度算法计算每一个由步骤3得出的查询条件和源代码类集合中的所有源代码类之间的相似度,具体为:采用10叠交叉验证进行最佳权重值的筛选,所有强化后的用户评论信息簇被平均地分为10组,一组为测试集,其它组为训练集,以此类推进行循环验证,直到每一组都作为测试集验证完毕,当
迭代次数达到200次后,则发现最佳权重值,在每一次迭代中,当排在top-K中的类不是正确的缺陷发生的源代码类时,所有被强化后的用户评论信息簇和源代码类的公共词汇的权重将会被降低一个步长,即0.05;当排在top K+1到最大数量中的类是正确的源代码类,所有被强化后的用户评论信息簇和源代码类的公共词汇的权重将会被增加一个步长,即0.05;其中K为推荐的缺陷发生的源代码类的个数;当F1分数达到最高后,该过程终止;F1分数是精确率和召回率的拟合值;筛选过程之后,将自动选择最佳的词汇权重值计算加强后的用户评论信息簇和源代码类之间的文本相似度。
附图说明
[0020] 图1是面向用户评论信息的移动应用缺陷定位方法
流程图。
具体实施方式
[0021] 下面将结合本发明
实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022] FLARE缺陷定位系统主要是通过两阶段缺陷定位算法实现最终目标的。在第一阶段,FLARE系统对用户评论信息进行采集和分类,检索出与缺陷相关的评论信息并通过缺陷报告对其进行加强。在第二阶段,针对用户评论信息构成的每个簇,FLARE推荐出缺陷发生的类(class)列表。
[0023] 结合图1,本发明提出一种面向用户评论信息的移动应用缺陷定位方法,所述FLARE缺陷定位系统执行以下步骤:
[0024] 步骤1、收集用户评论等级小于或等于三颗星的用户评论信息并对用户评论信息进行分类,加载评论信息分析工具SURF执行用户评论信息的过滤和分类。在此过程中,包含无效信息(比如只包含“Thankyou!”之类的不含信息量的句子)的用户评论信息将被过滤掉。其他信息将会被分为五个类别,即信息获取、信息搜寻、属性请求、问题发现和其它,提取问题发现类别中的用户评论信息作为缺陷相关的评论信息;通过后续的人工校对,SURF对用户评论信息的分类精确率达到91.36%。因此输出的与缺陷相关的用户评论信息是较准确的。
[0025] 步骤2、通过使用主题模型算法LDA对缺陷相关的评论信息进行聚类,按照主题的不同分为不同的用户评论信息簇(Topic 1-Topic N);
[0026] 在聚类之前,首先对用户评论信息和缺陷报告进行预处理。系统加载python库NLTK和TEXTBLOB实现以下步骤:
[0027] 分词:缺陷报告或者用户评论信息被切分成若干词汇,这些词汇被用来计算文本相似度。
[0028] 停止词去除:一些停止词(比如“the”“a”“are”等)频繁出现在英文文本中但又对缺陷定位没有任何具体意义。根据WordNet停止词列表,系统将移除这些词汇。
[0029] 词根化:所有的单词将会被转化为它们的根形态,也就是说第三人称单数,过去时和将来时等时态会被转化为词汇的原始形态。
[0030] 名词和动词筛选:通过加载POS标签分类模
块识别缺陷报告和用户评论信息中的动词和名词。只有这些词汇被用来计算文本相似度,因为它们是文本中最具有代表性意义的词汇。
[0031] 经过预处理后,用户评论信息被用来进行聚类。系统加载phython的工具库gensim建立主题模型。该主题模型使用LDA对用户评论信息进行聚类。为达到最佳性能,主题数N从0-100进行
自动调节,最佳参数被选择用来适应不同的数据集。作为最终结果,用户评论信息分为N个簇。
[0032] 步骤3、通过微软概念图MCG(Microsoft Concept Graph)计算用户评论信息簇和缺陷报告的概念相似度,如果概念相似度大于预先设定的阈值,则所述缺陷报告视为与用户评论信息相关的缺陷报告,利用所述缺陷报告对用户评论信息簇进行内容加强,将所述加强后的用户评论信息簇作为查询条件构成后续缺陷定位的基础;所述通过微软概念图MCG计算用户评论信息簇和缺陷报告的概念相似度,具体为:将一个单词转化为一个概念向量,从而一个文档便可以随之映射到向量空间Cd中,
[0033] Cd=θT·HM (1)
[0034] 其中,θT表示词汇在文档中的TF-IDF权重值的向量,HM表示概念矩阵;TF-IDF权重值的计算如下所示:
[0035]
[0036] 其中,tft,d表示词汇t在文档d中出现的频率; 代表逆向文档频率;N代表文档的总数,nt表示包含词汇t的文档数量;
[0037] 所述概念矩阵是由文档中所有词汇的概念向量整合在一起的,通过矩阵的乘法,一个文档被转化为一个概念类别集合的向量空间,即Cd;
[0038] 在得到用户评论信息簇和缺陷报告的概念向量后,通过余弦相似度公式计算它们的概念相似度;余弦相似度公式如下所示:
[0039]
[0040] 其中,Ci表示根据公式(1)得出的用户评论信息簇clusteri的向量空间,Cj表示根据公式(1)得出的缺陷报告BRj的向量空间;ωki表示在用户评论信息簇中第k个词汇的概念向量和TF-IDF权重的乘积;ωki表示在缺陷报告中第k个词汇的概念向量和TF-IDF权重的乘积。
[0041] 当用户评论信息簇和缺陷报告的概念相似度分数大于预先设定的阈值时,此缺陷报告将会被标记为与用户评论信息相关的缺陷报告。此时用户评论信息簇和缺陷报告的链接建立。注意一个用户评论信息簇可能关联多个缺陷报告。
[0042] 在得到用户评论信息簇和缺陷报告的链接后,缺陷报告被用来强化用户评论信息簇。作为最终结果,可能得到多个强化版本的用户评论信息簇。比如用缺陷报告BR1强化用户评论信息簇clusteri后,系统得到用户评论信息簇clusteri其中一个强化版本Eci1。
[0043] 步骤4、利用自然语言处理技术对源代码进行数据预处理,进一步形成缺陷发生的源代码类集合;
[0044] 对源代码的预处理主要目的是移除噪音数据。除了进行步骤2中提到的所有预处理步骤外,还额外进行了以下三步:
[0045] (1)通过
驼峰分裂法分离复合标识符:带下划线的情形,大写字母情形以及带有数字的情形。
[0046] (2)大写字母转化为小写字母。
[0047] (3)移除特殊字符。
[0048] 步骤5、利用基于权重选择的余弦相似度算法计算每一个由步骤3得出的查询条件和源代码类集合中的所有源代码类之间的相似度,如果相似度超过预先设定的阈值,系统将返回缺陷发生的源代码类列表,此时任务执行完毕。所述利用基于权重选择的余弦相似度算法计算每一个由步骤3得出的查询条件和源代码类集合中的所有源代码类之间的相似度,具体为:采用10叠交叉验证进行最佳权重值的筛选,所有强化后的用户评论信息簇被平均地分为10组,一组为测试集,其它组为训练集,以此类推进行循环验证,直到每一组都作为测试集验证完毕,当迭代次数达到200次后,则发现最佳权重值,在每一次迭代中,当排在top-K中的类不是正确的缺陷发生的源代码类时,所有被强化后的用户评论信息簇和源代码类的公共词汇的权重将会被降低一个步长,即0.05;当排在top K+1到最大数量中的类是正确的源代码类,所有被强化后的用户评论信息簇和源代码类的公共词汇的权重将会被增加一个步长,即0.05;其中K为推荐的缺陷发生的源代码类的个数;当F1分数达到最高后,该过程终止;F1分数是精确率和召回率的拟合值;筛选过程之后,将自动选择最佳的词汇权重值计算加强后的用户评论信息簇和源代码类之间的文本相似度。最终保证达到最佳的缺陷定位性能。对于每一个用户评论信息簇的强化版本,系统都会得到一个最终的缺陷发生源码类的列表。对于一个评论信息簇的所有版本,最终将会把所有的列表取并集,得到缺陷发生源码类的最终列表。
[0049] 基于权重选择的余弦相似度算法
[0050] 输入:Ec:加强后的用户评论信息的簇集合;C:候选的缺陷发生的源代码类集合;Winit_ij:词汇j在Ci中的最初权重值;stepsize:步长值,用来调节词汇的权重;K:系统推荐的缺陷发生的源代码类的个数。
[0051] 输出:得分最高的前K个缺陷发生的源代码类列表。
[0052]
[0053]
[0054] 与CHANGEADVISOR相比,FLARE的创新之处在于以下两个方面:
[0055] 1、针对CHANGEADVISOR无法处理用户评论信息中缺陷描述信息不足的问题,FLARE通过利用与用户评论信息相关的缺陷报告对原始用户评论信息进行内容加强,新生成的用户评论信息簇版本能够获得更好的缺陷定位性能。
[0056] 2、在用户评论信息簇和源代码类进行相似度的计算时,FLARE采用了新开发的基于权重选择的余弦相似度计算算法,这种改进后的余弦相似度算法能够根据不同词汇的重要度赋予不同的权重,从而使得最终的定位结果更加准确。
[0057] 通过对8个开源移动应用项目中的22,459条用户评论信息和1,117个缺陷报告进行的评估实验,表1显示出FLARE的性能优于CHANGEADVISOR。具体地,FLARE的F1分值比CHANGEADVISOR的F1分值高出8.37%。(注:F1分值为一种衡量模型精确度的指标,可以看作为准确率和召回率的加权平均值)
[0058] 表1 FLARE和CHANGEADVISOR的缺陷定位性能比较
[0059]
[0060] 本发明提出的基于用户评论信息的移动应用缺陷定位方法通过利用缺陷报告对用户评论信息进行信息加强和丰富,并通过改进的基于权重选择的余弦相似度算法计算文本相似度。另外,基于此方法开发出的缺陷定位系统FLARE比CHANGEADVISOR的性能更好。
[0061] 以上对本发明所提供的一种面向用户评论信息的移动应用缺陷定位方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本
说明书内容不应理解为对本发明的限制。