可以根据两种类型的信息执行错误,重复数据删除和错误分类,第一种类型是错误报告,其中包括错误的类别、优先级、涉及的人员以及一些实时记录。
典型的错误报告通常是包含各种信息的半结构化文件,内容包括崩溃线程的上下文,例如堆栈跟踪和处理器寄存器,以及崩溃时计算机内存内容的子集,它还包括有关错误的基本信息。
典型错误报告中包含的信息错误报告生成bug后,将生成、删除重复数据并会,审其相应的bug报告,它最初标记为“未确认”,然后在正确的时间分配给适当的开发人员。
如果开发人员无法正确修复错误,则错误报告将扔回错误池中,并标记为“未确认”,否则,它将被标记为“已解决”并等待验证,验证程序确认bug已修复后,bug报告将标记为“已验证”,案例将关闭,如果未确认,则丢弃错误报告。
而且bug触发的运行时信息,如堆栈跟踪、覆盖率、控制流、崩溃点等,实现精确的错误重复数据删除,和分类具有挑战性,这两个概念都依赖于相似性。
重复数据删除主要关注内容相似性,而分类也可能考虑修复程序的特征,展示了 bug 报告的特征提取和相似度计算过程,它涉及使用主题建模技术进行特征提取。
随后使用余弦相似性和Jaccard相似性等,数学模型进行相似性计算,它首先从错误报告中的崩溃代码片段中提取控制流图,控制流图用作神经网络的输入,以计算重复或类似错误报告的可能性。