DroidStar:Android类的回调类型状态
计算机科学中的逻辑
2018-03-05 v3 机器学习
编程语言
摘要
事件驱动编程框架(如Android)基于具有异步接口的组件。与这些组件交互的协议通常可以用我们称之为*回调类型状态*(callback typestates)的有限状态机来描述。回调类型状态类似于经典类型状态,不同之处在于其输出(回调)是异步产生的。尽管有用,这些规范通常不可用,因为编写它们既困难又容易出错。我们的目标是使生成回调类型状态的任务显著更容易。我们提出了一个回调类型状态辅助工具DroidStar,它只需要有限的用户交互即可生成回调类型状态。我们的方法基于主动学习算法L*。我们改进了等价查询(L*的关键组件)的可扩展性,从而使主动学习在Android系统上可行。我们使用DroidStar学习Android类的回调类型状态,既包括文档已提供的情况,也包括文档不清晰的情况。结果表明,DroidStar准确高效地学习回调类型状态。此外,在若干情况下,合成的回调类型状态揭示了令人惊讶且未文档化的行为。
引用
@article{arxiv.1701.07842,
title = {DroidStar: Callback Typestates for Android Classes},
author = {Arjun Radhakrishna and Nicholas V. Lewchenko and Shawn Meier and Sergio Mover and Krishna Chaitanya Sripada and Damien Zufferey and Bor-Yuh Evan Chang and Pavol Černý},
journal= {arXiv preprint arXiv:1701.07842},
year = {2018}
}
备注
Appearing at ICSE 2018