Deep GUI: Black-box GUI Input Generation with Deep Learning

Deep GUI: Black-box GUI Input Generation with Deep Learning
复制标题

DOI:
10.1109/ase51524.2021.9678778
复制
发表时间:
2021-11
期刊:
2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE)
影响因子:
--
通讯作者:
Faraz Yazdani;S. Malek
Faraz Yazdani;S. Malek
中科院分区:
其他
文献类型:
--
作者:
Faraz Yazdani;S. Malek

文献摘要

相似文献

尽管Android测试工具扩散了,但Google猴子仍然是从业者的事实上的标准。但是,无论它们的基本实现细节。旨在通过更智能的GUI输入生成来完成黑盒测试的好处。对于正在测试的应用程序而无需探究其实现细节,因为数据收集,培训和推理过程是独立于平台执行的,因此Deep GUI推断的模型也应用于其他平台中的测试应用程序。我们通过扩展Google Monkey的工具,在一个名为Monkey ++的工具中实现了一个原型,并评估了它的爬网Android应用程序的能力,我们发现Monkey ++在App的UI很复杂的情况下对Google Monkey进行了重大改进。此外,我们的实验结果表明,使用深GUI推断的模型可以重复使用,以跨平台有效地产生无需再培训的GUI输入。
Despite the proliferation of Android testing tools, Google Monkey has remained the de facto standard for practitioners. The popularity of Google Monkey is largely due to the fact that it is a black-box testing tool, making it widely applicable to all types of Android apps, regardless of their underlying implementation details. An important drawback of Google Monkey, however, is the fact that it uses the most naive form of test input generation technique, i.e., random testing. In this work, we present Deep GUI, an approach that aims to complement the benefits of black-box testing with a more intelligent form of GUI input generation. Given only screenshots of apps, Deep GUI first employs deep learning to construct a model of valid GUI interactions. It then uses this model to generate effective inputs for an app under test without the need to probe its implementation details. Moreover, since the data collection, training, and inference processes are performed independent of the platform, the model inferred by Deep GUI has application for testing apps in other platforms as well. We implemented a prototype of Deep GUI in a tool called Monkey++ by extending Google Monkey and evaluated it for its ability to crawl Android apps. We found that Monkey++ achieves significant improvements over Google Monkey in cases where an app’s UI is complex, requiring sophisticated inputs. Furthermore, our experimental results demonstrate the model inferred using Deep GUI can be reused for effective GUI input generation across platforms without the need for retraining.