The state space of Android apps is huge and its thorough exploration during testing remains a major challenge. In fact, the best exploration strategy is highly dependent on the features of the app under test. Reinforcement Learning (RL) is a machine learning technique that learns the optimal strategy to solve a task by trial and error, guided by positive or negative reward, rather than by explicit supervision. Deep RL is a recent extension of RL that takes advantage of the learning capabilities of neural networks. Such capabilities make Deep RL suitable for complex exploration spaces such as the one of Android apps. However, state of the art, publicly available tools only support basic, tabular RL. We have developed ARES, a Deep RL approach for black-box testing of Android apps. Experimental results show that it achieves higher coverage and fault revelation than the baselines, which include state of the art RL based tools, such as TimeMachine and Q-Testing. We also investigated qualitatively the reasons behind such performance and we have identified the key features of Android apps that make Deep RL particularly effective on them to be the presence of chained and blocking activities.
翻译:Android 应用程序的状态空间是巨大的,测试期间的彻底探索仍然是一项重大挑战。事实上,最佳的探索战略高度依赖于测试中的应用程序的特征。强化学习(RL)是一种机械学习技术,它学习了通过试验和错误解决任务的最佳战略,以正面或负面奖励为指导,而不是通过明确的监督。深RL是利用神经网络学习能力的RL的最近延伸。这种能力使得深RL适合诸如Android 应用程序等复杂的探索空间。然而,艺术状态、公开可用的工具只能支持基本工具,表格RL。我们开发了ARES,即用于Android 应用程序黑箱测试的深RL方法。实验结果显示,它比基线的覆盖和错漏率更高,其中包括基于TimeMachine和Q-Testing等艺术工具的状态。我们还从质量上调查了这种性能背后的原因,并且我们确定了使深RL尤其有效的Android 应用程序的关键特征,使得它们成为链条和阻塞活动的存在。