Validation of Android apps via testing is difficult owing to the presence of flaky tests. Due to non-deterministic execution environments, a sequence of events (a test) may lead to success or failure in unpredictable ways. In this work, we present an approach and tool FlakeShovel for detecting flaky tests through systematic exploration of event orders. Our key observation is that for a test in a mobile app, there is a testing framework thread which creates the test events, a main User-Interface (UI) thread processing these events, and there may be several other background threads running asynchronously. For any event e whose execution involves potential non-determinism, we localize the earliest (latest) event after (before) which e must happen.We then efficiently explore the schedules between the upper/lower bound events while grouping events within a single statement, to find whether the test outcome is flaky. We also create a suite of subject programs called DroidFlaker to study flaky tests in Android apps. Our experiments on subject-suite DroidFlaker demonstrate the efficacy of our flaky test detection. Our work is complementary to existing flaky test detection tools like Deflaker which check only failing tests. FlakeShovel can detect flaky tests among passing tests, as shown by our approach and experiments.


翻译:通过测试来校验安卓应用程序是困难的,因为存在片状测试。 由于非决定性的执行环境, 一系列事件( 测试) 可能会以无法预测的方式导致成功或失败。 在这项工作中, 我们展示了一种方法和工具 FlakeShovel, 以便通过系统探索事件命令来检测不透明测试。 我们的主要观察是, 在移动应用程序中进行测试时, 有一种测试框架线, 产生测试事件, 一个主要的用户- 界面( UI) 线处理这些事件, 并且可能还有其他几种背景线在不同步地运行。 对于任何事件, 其执行可能涉及非确定主义, 任何事件( 测试) 都可能导致成功或失败。 在( 之前) 必须发生的事件后, 我们将最早( 最晚) 事件定位为本地化 。 我们然后在将事件分组到一个单项中, 找出测试结果是否不透明。 我们还在AndroidFlaker Apps 上创建了一套名为 Droid Flaker 的主题程序, 来研究烟状测试。 我们在对象中进行的实验展示了我们粉状测试的测试工具, 。 我们的工作是用来测试测试的辅助的测试, 。 我们的测试工具,, 只能为测试, 的测试, 我们的测试, 的测试只是测试, 测试的测试的测试工具只能用来进行。

0
下载
关闭预览

相关内容

Android(安卓)是一种以 Linux 为基础开发的开放源代码的操作系统,主要应用于便携设备。2005 年,Android 公司被 Google 收购,随后 Google 联合制造商组成开放手机联盟。Android 已从智能手机领域逐渐扩展到平板电脑、智能电视(及机顶盒)、游戏机、物联网、智能手表、车载系统、VR以及PC等领域。
【Manning新书】C++并行实战,592页pdf,C++ Concurrency in Action
Stabilizing Transformers for Reinforcement Learning
专知会员服务
60+阅读 · 2019年10月17日
强化学习最新教程,17页pdf
专知会员服务
177+阅读 · 2019年10月11日
2019年机器学习框架回顾
专知会员服务
36+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
195+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
94+阅读 · 2019年10月10日
已删除
将门创投
4+阅读 · 2018年6月1日
Zero-Shot Object Detection
Arxiv
9+阅读 · 2018年7月27日
Arxiv
4+阅读 · 2018年6月14日
Arxiv
7+阅读 · 2018年3月19日
VIP会员
相关VIP内容
【Manning新书】C++并行实战,592页pdf,C++ Concurrency in Action
Stabilizing Transformers for Reinforcement Learning
专知会员服务
60+阅读 · 2019年10月17日
强化学习最新教程,17页pdf
专知会员服务
177+阅读 · 2019年10月11日
2019年机器学习框架回顾
专知会员服务
36+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
195+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
94+阅读 · 2019年10月10日
相关资讯
已删除
将门创投
4+阅读 · 2018年6月1日
相关论文
Zero-Shot Object Detection
Arxiv
9+阅读 · 2018年7月27日
Arxiv
4+阅读 · 2018年6月14日
Arxiv
7+阅读 · 2018年3月19日
Top
微信扫码咨询专知VIP会员