基于图像识别的移动应用众包测试报告生成
Posted 慕测科技
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于图像识别的移动应用众包测试报告生成相关的知识,希望对你有一定的参考价值。
南京大学智能软件工程实验室
iselab.cn
摘要
在移动众包测试中,众包工作者需要测试移动应用程序并提交多个缺陷报告,每个缺陷报告均附有一些缺陷截屏。目前,众包测试人员的水平还远非专家,再加上他们必须手动完成所有测试工作,这导致了上传的缺陷报告往往不专业,并且整个过程耗时较长。在本文中,我们提出了一种称为SUBDeG的新方法,该方法采用图像理解技术来帮助众包测试者使用缺陷截屏来自动生成缺陷报告,以减轻众包测试者负担、大大提高工作效率和报告质量。
关键词:缺陷报告生成,图像理解,移动众包测试
一、 介绍
在移动众包测试中,众包工作者每天都会向众包平台提交大量测试报告。但是,众包工作者往往不是移动应用程序测试的专家,这导致了测试报告通常包含许多不相关的信息以及不专业的单词和短语,从而导致报告质量低下。此外,测试报告中对于缺陷的描述通常不足,使开发人员难以识别出真正的缺陷。
一些研究人员在评估和提升众包测试报告的质量方面做了相关工作。Xin Chen等人开发了评估测试报告质量的框架,He Jiang等人提出了一种使用基于文本的方法来检测重复报告的技术,Rui Hao等人开发了一种使用自然语言处理和空间金字塔匹配技术来概括和汇总重复报告的工具。
但是,在测试报告中,缺陷截屏通常包含许多有用的信息,可以帮助开发人员识别真实的缺陷,而上述工作并未利用这些信息。因此,在本文中,我们提出了一种名为SUBDeG的新方法,该方法使用截屏理解技术来利用截屏中的丰富信息,以自动生成准确且专业的缺陷报告并提高测试报告的质量。SUBDeG可以将截屏转换成若干描述缺陷的语句,并且在可以通过屏幕上的文字比较容易地识别缺陷的情况下,使用文本识别方法来更有效地检测缺陷。SUBDeG汇总了图像翻译部分和文本识别部分的结果,从而进一步提高了生成报告的准确性。
我们的贡献如下:
1) 我们提出了一种基于截屏理解的缺陷报告生成方法——SUBDeG。它由图像翻译部分,文本提取部分和报告生成三个部分组成。
2) 我们将SUBDeG实现成了一个工具。在我们的实现中,我们采用的缺陷描述神经网络是完全可训练的,并使用了图像描述的最先进的解决方案。
3) 我们进行初步实验以评估工具的准确性,发现SUBDeG能够较准确地识别出截图中所包含的缺陷。
二、 方法
SUBDeG旨在根据缺陷截屏生成一个缺陷报告,该列表由多个潜在的缺陷描述组成。图1显示了SUBDeG的框架。它由3个主要部分组成:图像翻译,文本提取和报告生成部分。图像翻译部分提取截屏的特征向量,并使用该向量生成几个缺陷描述。文本提取部分使用预定义的关键词列表提取、过滤截屏中的相关文本信息,然后在报告生成部分中使用文本聚类方法聚合生成的描述生成缺陷报告。
1. 图像翻译
图像翻译部分旨在将缺陷截屏翻译成几个可能的描述。它是一种专门的图像描述模型,经过训练可以生成缺陷描述,而不是图像的一般描述。类似于机器翻译中的Encoder-Decoder结构,图像翻译部分包括从截屏中提取缺陷特征的截屏编码器,以及根据编码器中的那些特征生成描述的缺陷描述解码器。
在图像转换部分的实现中,我们采用了im2txt模型,该模型是当前最先进的图像描述模型。截屏编码器是一个深度卷积神经网络(CNN)。CNN具有从图像中提取丰富特征并生成固定长度的向量的能力[5]。我们使用Inception-v3模型作为截屏编码器。编码器中最后一个隐藏层中的特征向量将馈送给解码器。解码器是一个长期短期记忆网络(LSTM),经过训练后可以得到一个缺陷描述语言模型。众所周知,梯度消失和梯度爆炸是递归神经网络(RNN)的最大挑战,而LSTM可以有效地应对这一挑战[3]。LSTM的每个生成的单词将被馈送到单词嵌入层,以生成相应的单词嵌入,作为后续LSTM的输入。最终,我们使用BeamSearch方法生成若干缺陷描述并按照各自的概率降序排列。
2. 文本提取
文本提取部分的目的是识别截屏上与缺陷直接相关的文本,并将其用作可能的缺陷描述。这部分由一个文字识别器和一个关键词过滤器组成。文字识别器从截屏中提取文本,然后使用关键词过滤器过滤与缺陷相关的文本来作为可能的缺陷描述。
在文字识别器的实现中,我们应用了光学文字识别(OCR)技术,因为当前的OCR技术在通常情况下可以准确地识别图像上的所有字符。当前,许多公司提供了其OCR服务,这些服务通常比大多数开源OCR实现更准确。在对不同公司提供的各种OCR服务进行初步测试后,我们发现百度提供的OCR服务具有最佳性能,并且可以准确识别英文和中文的混合文本。中英混合文本在中文应用程序中较为常见。所以,SUBDeG的文本提取部分使用了百度OCR服务接口。接口的输出是提取的多行文本,其中许多文本与缺陷无关,因此必须进一步处理。
为了从百度OCR输出的文本行中获取与缺陷相关的文本,我们使用预定义的关键词列表过滤文本,该列表包含在缺陷提示的上下文中最常出现关键词。这些关键词是从2605个缺陷截屏中手动收集的。列表包含13个中英文关键词。如果我们用s表示提取的句子,用h(s)表示s包含的关键词数量,用n表示所有关键词的数量,则s成为缺陷描述的概率P(s)由下式定义:
然后,由OCR提取的句子将按照其概率降序排列,舍弃那些概率为零的句子。在具体实现中,我们只选择一个概率最高的句子,它可以反映大多数情况下的实际缺陷。
图1:SUBDeG系统架构
3. 报告生成
报告生成部分的目的是将由图像翻译和文本提取部分生成的描述汇总为一个缺陷报告。我们使用文本聚类方法来获取不同缺陷类型的聚类,并根据聚类大小顺序来组织缺陷描述列表。
由图像翻译部分和文本提取部分生成的描述通常彼此相似。这些相似的描述越多表明存在特定缺陷的可能性更大。所以,我们将这些描述根据相似性分为若干类。在文本聚类步骤中,我们在将单词标记化之后从描述中删除了若干停用词。然后,使用词频-逆文本频率指数(TF-IDF)方法对其余标记进行向量化。TF-IDF向量化在某些描述中为那些高频标记分配了更大的权重,这可以提高随后聚类步骤的准确性。向量化之后,这些向量可以简单地通过k均值聚类方法进行聚类。尽管k均值方法在处理高维向量时有一些缺点,但是由于描述数量很少,因此描述向量的维数非常低。在大多数情况下,缺陷截屏中只有一个或两个缺陷,因此由图像翻译部分和文本提取部分生成的描述数量始终很少。k均值聚类方法可以高精度和高效地处理它们。在我们的实现中,将聚类数k设置为2。在对描述进行聚类之后,我们选择其向量与每个聚类中的聚类中心距离最小的描述。因为聚类大小可以反映那些描述聚类的概率,所以我们根据聚类大小在列表中降序排列那些选定的描述。最终的缺陷报告即是SUBDeG的输出。
三、 实验
1. 实验设置
在SUBDeG的实现中,由于SUBDeG的文本提取部分使用的是第三方闭源OCR服务,因此我们唯一需要训练的模型是SUBDeG的图像翻译部分中的im2txt模型。
我们用来训练和验证im2txt模型的数据集来自百度移动测试中心(MTC)和Mooctest平台,包括成对的缺陷截图以及的相应缺陷报告。由于硬件能力的限制,我们仅对模型进行了10000次训练,这比默认的1000000次要少得多。这可能会降低我们工具的性能。此外,尽管在训练了缺陷描述语言模型后可以提高编码器初始模型与LSTM解码器一起训练的准确性,但我们没有运行第二个训练阶段,因为它花费的时间比第一次训练要长得多,超出了我们的能力。
在训练了im2txt模型之后,我们进行了一些初步实验,以评估SUBDeG的总体准确性。我们还使用了来自百度MTC和Mooctest平台的缺陷截屏,但我们没有选择在训练集或验证集中的截屏。我们采用的评估方法是手动评估。评估人员将SUBDeG生成的缺陷报告与每个截屏的最佳答案进行比较,以确定所生成的报告是否准确。该指标能够可靠地反映生成的报告与实际缺陷的匹配程度。
2. 实验结果分析
根据我们的初步实验,SUBDeG的准确性约为90%。通常,我们发现,当截屏具有某些特殊特征(例如黑屏,闪烁显示等)时,SUBDeG可以准确识别缺陷。SUBDeG还可以发现一些UI的渲染缺陷,例如按钮上缺少文本或不适用的UI。但是,对于与业务逻辑相关的缺陷,其效果往往会降低。
SUBDeG在包含特殊特征的截屏上具有可比的出色表现不足为奇,因为这些截屏较易解释。困难在于对与UI渲染或业务逻辑有关的缺陷的理解。在某些情况下,生成的描述可能包含一些与缺陷直接相关的关键词,但它们并不通顺或含义不准确。在连人都很难根据截屏来分辨缺陷(例如故障按钮或媒体播放器)的情况下,生成的报告与缺陷也总是完全无关。
四、 结论
在本文中,我们提出了一种名为SUBDeG的新方法,该方法采用截屏理解技术来生成缺陷报告,以提高测试报告的质量。SUBDeG可以在大多数情况下效果良好,但是当缺陷与内部业务逻辑相关时, 对于截图的自动化理解能力会有所下降。
致谢
本文由南京大学软件学院 2020 级硕士虞圣呈翻译转述。
感谢国家自然科学基金(61932012,61802171,61772014)支持!
以上是关于基于图像识别的移动应用众包测试报告生成的主要内容,如果未能解决你的问题,请参考以下文章