首页> 外文学位 >An Evolutionary Approach for System Testing of Android Applications.
【24h】

An Evolutionary Approach for System Testing of Android Applications.

机译:Android应用程序系统测试的进化方法。

获取原文
获取原文并翻译 | 示例

摘要

Mobile app markets have created a fundamental shift in the way software is delivered to the consumers. The benefits of this software supply model are plenty, including the ability to rapidly and effectively deploy, maintain, and enhance software used by the consumers. This paradigm, however, has given rise to a new set of concerns. Small organizations do not have the resources to sufficiently test their products, thereby defective apps are made available to the consumers of these markets. The situation is likely to exacerbate given that mobile apps are poised to become more complex and ubiquitous.;Automated testing of Android apps is impeded by the fact that they are built using an application development framework (ADF). ADF allows the programmers to extend the base functionality of the platform using a well-defined API. ADF also provides a container to manage the lifecycle of components comprising an app and facilitates the communication among them. As a result, unlike a traditional monolithic software system, an Android app consists of code snippets that engage one another using the ADF's sophisticated event delivery facilities. This hinders automated testing, as the app's control flow frequently interleaves with the ADF. At the same time, reliance on a common ADF provides a level of consistency in the implementation logic of apps that can be exploited for automating the test activities, as illustrated in this research.;Evolutionary testing technique has shown to be particularly effective for event driven software. In this research, I present the first evolutionary testing framework targeted at Android, called EvoDroid. Evolutionary testing is a form of search-based testing, where an individual corresponds to a test case, and a population comprised of many individuals is evolved according to certain heuristics to maximize the code coverage.;The most notable contribution of EvoDroid is its ability to overcome the common shortcoming of using evolutionary techniques for system testing. Evolutionary testing techniques are typically limited to local or unit level testing, as for system testing, they generate many invalid test cases. This occurs when the individuals (test cases) are crossed over to create new ones. The crossover does not consider which input and event genes are coupled to which part of the app, hence, it is not able to preserve the genetic makeup of parents in any meaningful way. I overcame this challenge by leveraging the knowledge of how Android specifies and constrains the way apps can be built. I devised a technique to analyze apps and infer models of their interface and behavior. Using these models my technique generates test cases reaching deep into the code in segments, i.e., sections of code that are amenable to evolutionary testing without the possibility of generating invalid test cases. Since a key concern in search-based testing is the execution time of the algorithm, I built EvoDroid to run the test cases in parallel on Android emulators deployed on the cloud, thus achieving several orders of magnitude improvement in execution time.
机译:移动应用市场已经在向用户交付软件的方式上发生了根本性的转变。这种软件供应模型的好处很多,包括能够快速有效地部署,维护和增强用户使用的软件的能力。但是,这种范例引起了新的关注。小型组织没有足够的资源来对其产品进行测试,因此有缺陷的应用程序可供这些市场的消费者使用。鉴于移动应用程序准备变得更加复杂和无处不在,这种情况可能会加剧。Android应用程序的自动测试由于使用应用程序开发框架(ADF)构建而受到阻碍。 ADF允许程序员使用定义明确的API扩展平台的基本功能。 ADF还提供了一个容器来管理组成应用程序的组件的生命周期,并促进它们之间的通信。因此,与传统的单片软件系统不同,Android应用程序由代码片段组成,这些代码片段使用ADF的复杂事件传递工具进行交互。由于应用程序的控制流经常与ADF交错,因此这会阻碍自动测试。同时,如本研究所示,对通用ADF的依赖在应用程序的实现逻辑中提供了一定程度的一致性,可利用这些逻辑来自动执行测试活动。进化测试技术对事件驱动特别有效软件。在这项研究中,我提出了第一个针对Android的进化测试框架,称为EvoDroid。进化测试是一种基于搜索的测试形式,其中一个人对应一个测试用例,然后根据某些启发式方法进化一个由许多人组成的总体,以最大程度地扩展代码覆盖范围; EvoDroid最显着的贡献是它具有以下能力:克服了使用进化技术进行系统测试的常见缺点。演化测试技术通常仅限于本地或单元级别的测试,因为对于系统测试,它们会生成许多无效的测试用例。当个体(测试用例)交叉创建新个体时,就会发生这种情况。交叉不考虑哪个输入和事件基因与应用程序的哪个部分耦合,因此,它无法以任何有意义的方式保留父母的基因组成。我通过利用有关Android如何指定和限制应用程序构建方式的知识来克服了这一挑战。我设计了一种分析应用程序并推断其界面和行为模型的技术。使用这些模型,我的技术会生成测试用例,这些测试用例会深入到段中的代码,即适合进行进化测试的代码段,而不会生成无效的测试用例。由于基于搜索的测试中的一个关键问题是算法的执行时间,因此我构建了EvoDroid以在部署于云上的Android模拟器上并行运行测试用例,从而将执行时间缩短了几个数量级。

著录项

  • 作者

    Mahmood, Riyadh.;

  • 作者单位

    George Mason University.;

  • 授予单位 George Mason University.;
  • 学科 Computer science.;Information technology.
  • 学位 Ph.D.
  • 年度 2015
  • 页码 130 p.
  • 总页数 130
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号