基于持续集成的Android自动化测试

合集下载

持续集成与自动化测试的结合

持续集成与自动化测试的结合

持续集成与自动化测试的结合现如今,软件开发已经成为了一项大业。

而在软件开发中,测试和集成是非常重要的环节,它们可以帮助我们检测并修复一些潜在的问题,使我们的软件更加稳定和可靠。

其中,持续集成和自动化测试是两个非常重要的组成部分,他们的结合可以为我们带来更好的效果和更高的效率。

首先,我们来看看什么是持续集成。

持续集成是一种软件开发流程,它通过自动化的方式将开发人员的代码集成到主干分支中,以此来保证代码的稳定性和质量。

持续集成还包括了一些自动化的构建、测试和部署等过程,以此来保证每次的更新都是一致的并且不会出现任何问题。

而自动化测试,则是在这个过程中起到了非常重要的作用。

自动化测试是指将测试过程自动化,通过编写一些测试脚本来检查软件的功能和稳定性。

自动化测试可以省去手动测试的繁琐过程,也可以快速地进行排查和修复一些问题。

同时,自动化测试还能帮助我们对测试覆盖率进行监控和统计,以此来保证测试的全面性。

那么,持续集成和自动化测试的结合又是如何实现的呢?首先,持续集成可以通过自动化的方式来将测试脚本集成到代码仓库中,每当有代码更新的时候,测试脚本就会自动执行。

这样就能够保证每次的更新都是经过测试的,并且可以快速地发现并解决一些潜在的问题。

其次,自动化测试还可以帮助我们快速地定位和解决一些问题。

当测试脚本发现了一个问题的时候,它可以自动地将该问题的信息反馈给开发人员,以此来加速问题的解决。

同时,自动化测试还可以通过测试结果的反馈来帮助开发人员了解代码的情况,以此来指导开发工作的进一步进行。

最后,持续集成和自动化测试的结合还可以帮助我们加快软件的发布过程。

当我们在持续集成的过程中,每当有代码更新的时候,测试脚本就会自动执行,并将测试结果反馈给开发人员。

如果测试通过,我们就可以直接将更新的代码部署到线上环境中。

这样就能够极大地缩短发布的时间,同时还能提高代码的稳定性和可靠性。

总的来说,持续集成和自动化测试的结合可以为软件开发带来很多好处。

持续集成:自动化测试篇

持续集成:自动化测试篇

持续集成:自动化测试篇前言如果组件A\B\C的可靠性都为90%,是否说明了A\B\C组成的系统整体可靠性为90%?其实不是,实际结果是90% * 90% * 90%* = 73%。

大部分软件系统都由几百个甚至几千个对象组成,如果包含了100个组件的线性系统,每个组件的可靠性均为99%,那么整个系统的可靠性只有37%。

如果想要构建一个在服务层面承诺到达100%或接近100%的软件系统,则必须在单个对象层面上确保可靠性。

如果不能从最低层面确保并测量可靠性,就不可能在系统层面上达到要求。

这就要求我们在每当系统发生变更时测试都必须执行,并且这些测试不单单是单元测试,还应包括组件测试、系统测试等,在日常的开发过程中,反复进行多种测试无疑是枯燥乏味的,在CI系统中包含持续测试则能让你轻松解决这一烦恼。

自动化单元测试“单元测试”是验证软件系统中所有小元素的行为,这些小元素通常都是一个类。

有时单元测试和被测试的类之间一对一的关系也会被放大,因为一些测试的类耦合程度较高。

单元测试没有外部依赖关系,不会依赖于文件系统和数据库。

因为编码和看到单元测试之间的时间很短,所以单元测试是一种有效的除错方法。

在进行持续集成过程的单元测试时,可以利用NUnit或JUnit单元测试框架,让单元测试自动化。

真正的单元测试应该少于1秒的时间内完成。

如果花费的时间较长就需要检查一下,它是否失败了,或者它实际是一个组件级测试。

配置自动化测试需要一些代价,但是执行这些测试的资源代价可以忽略不计。

自动化组件测试“组件测试”或“子系统测试”验证的是系统的各个部分,可能需要安装整个系统或某些外部依赖关系,如数据库、文件系统、网络终端等。

典型的组件测试需要底层数据库支持,甚至可能跨越架构边界,这些测试涉及更多对象,每个测试的代码覆盖率也更大,通常比单元测试需要花更长的时间,如果用到数据库可以使用DbUnit\NDbUnit实现自动化。

组件测试执行的时间比较长,可以作为次级构建的一部分来执行或定期执行。

持续集成与自动化测试

持续集成与自动化测试

持续集成与自动化测试随着软件开发行业的不断发展,持续集成和自动化测试成为了现代软件开发过程中不可或缺的一部分。

持续集成(Continuous Integration)是指将团队成员开发的代码频繁地集成到主干代码仓库中,以保证软件开发的高效和质量。

自动化测试(Automated Testing)则是通过编写自动化脚本来执行测试,并验证软件的功能和性能,以提高测试效率和准确性。

1. 持续集成的意义持续集成通过持续地将开发人员的代码进行集成,帮助团队快速发现和解决bug,降低集成时的冲突和错误率。

它可以及早发现代码质量问题,并保证软件的稳定性和可靠性。

通过自动化构建和测试流程,持续集成能够减少手动工作量,提高开发团队的效率。

2. 持续集成的工作流程在持续集成的工作流程中,一般需要以下几个步骤:a. 代码提交:开发人员将自己的代码提交到主干代码仓库中。

b. 编译构建:持续集成服务器自动从代码仓库中获取最新的代码,并进行编译构建。

c. 自动化测试:在构建完成后,自动运行相应的测试脚本进行功能和性能测试。

d. 部署和发布:通过自动化脚本将经过测试的软件部署到测试环境或生产环境中。

e. 反馈与修复:如果在测试过程中发现了问题,开发人员及时修复并重新提交代码。

3. 自动化测试的价值自动化测试能够提高测试的效率和准确性,减少人为的错误和遗漏。

它可以快速执行大量测试用例,并自动生成测试报告,帮助开发团队及时发现和解决问题。

自动化测试还可以保证在频繁的迭代和持续集成过程中,软件的可靠性和稳定性。

4. 自动化测试的实施步骤实施自动化测试一般需要以下几个步骤:a. 确定测试范围:根据需求和业务场景,确定需要进行自动化测试的功能模块和核心流程。

b. 选择合适的测试工具:根据需求和技术栈,选择适合的自动化测试框架和工具,如Selenium、Appium等。

c. 编写测试脚本:根据测试需求和测试工具的语法规范,编写相应的测试脚本。

软件研发构建自动化测试和持续集成流程

软件研发构建自动化测试和持续集成流程

软件研发构建自动化测试和持续集成流程在软件研发过程中,构建自动化测试和持续集成流程是至关重要的。

自动化测试和持续集成能够提高软件质量、加速开发周期,同时减少人力资源的需求。

本文将就自动化测试和持续集成的概念、重要性和实施步骤进行探讨。

一、自动化测试的概念和重要性自动化测试是指通过使用自动化工具将测试过程中的一些重复性、机械化的操作自动化执行。

它可以提高测试效率,减少测试时间,加快软件发布速度。

自动化测试除了能够保证软件在不断迭代过程中的质量稳定性,还能够减少测试过程中的人为错误。

自动化测试对软件研发的重要性体现在以下几个方面:1. 提高测试效率:相比于人工测试,自动化测试的执行速度更快。

它可以同时执行多个测试用例,覆盖更多的功能点,减少测试环境的时间消耗。

2. 提高软件质量:自动化测试能够规范和标准化测试流程,减少人为的错误。

它能够及时发现和修复软件中的缺陷,确保软件在发布前质量可控。

3. 减少测试成本:自动化测试可以节约人力资源,减少测试过程中的人力工作量。

通过自动化执行测试用例,可以省去大量的繁琐重复操作,使测试人员能够更专注于测试结果的分析和Bug的定位。

4. 提高持续集成的效果:自动化测试是持续集成过程中的关键一环。

它能够保证代码在集成后的正确性,提供实时的反馈,及时解决问题。

二、构建自动化测试流程的步骤实施自动化测试需要经过以下几个关键步骤:1. 定义测试用例:根据软件功能需求和规格说明书,制定详细的测试用例。

测试用例应该涵盖软件的各个功能点和各种边界情况。

2. 选择自动化测试工具:根据项目的特点和需求,选择适合的自动化测试工具。

常见的自动化测试工具有Selenium、Appium、Junit等。

3. 编写自动化测试脚本:通过选择的自动化测试工具,编写自动化测试脚本。

自动化测试脚本应该覆盖测试用例的所有步骤,并进行合理的断言。

4. 执行自动化测试脚本:将编写好的自动化测试脚本在测试环境中执行。

持续集成与自动化测试的实现

持续集成与自动化测试的实现

持续集成与自动化测试的实现一、引言持续集成与自动化测试是现代软件开发中不可或缺的环节。

通过持续集成,开发人员能够频繁地将代码集成到共享仓库中,并自动构建、测试和部署应用程序,以确保代码质量和稳定性。

自动化测试则能够减少人工测试的工作量,提高测试效率,并能够快速发现和修复潜在的问题。

本文将详细介绍持续集成与自动化测试的实现方法及步骤。

二、持续集成的实现1. 版本控制持续集成的第一步是使用版本控制系统(如Git)对代码进行管理。

开发人员将代码提交到共享仓库,并使用分支进行开发。

每个提交都应该包含有意义的注释,以便其他开发人员理解代码的变更。

2. 自动化构建自动化构建是持续集成的核心步骤之一。

通过使用构建工具(如Maven、Gradle),可以自动化地编译、打包和构建应用程序。

构建过程中还可以执行一些静态代码分析工具(如Checkstyle、FindBugs)来检查代码质量,并生成代码覆盖率报告。

3. 自动化测试持续集成的另一个关键步骤是自动化测试。

在构建过程中,可以执行各种类型的测试,包括单元测试、集成测试和端到端测试。

单元测试是针对代码中最小的可测试单元进行的测试,集成测试是测试各个模块之间的交互,而端到端测试则是模拟真实用户场景来测试整个应用程序的功能。

4. 持续部署持续部署是持续集成的最终步骤,它将构建和测试通过的应用程序自动部署到生产环境中。

通过使用自动化部署工具(如Jenkins、Travis CI),可以实现自动化部署,并确保部署过程的稳定性和可靠性。

三、自动化测试的实现1. 测试策略在进行自动化测试之前,需要制定测试策略。

测试策略包括确定测试的范围、目标和优先级,以及选择合适的测试工具和技术。

测试策略应该与软件开发的需求和目标相一致,并根据项目的特点进行调整和优化。

2. 自动化测试工具选择合适的自动化测试工具是实现自动化测试的重要一步。

常用的自动化测试工具包括Selenium、Appium、JUnit等。

自动化测试的持续集成与持续交付

自动化测试的持续集成与持续交付

自动化测试的持续集成与持续交付随着软件开发的快速发展和迭代周期的压缩,如何保证软件的质量和稳定性成为了一个重要的问题。

传统的手动测试方法已经无法满足大规模的测试需求,因此自动化测试逐渐成为了测试领域的趋势。

在自动化测试的基础上,持续集成和持续交付成为了保证软件质量和加速软件发布的关键步骤。

一、自动化测试的概念与意义自动化测试是指利用自动化测试工具和脚本来执行测试用例,对软件进行功能、性能、安全等各方面的验证。

相比于传统的手动测试,自动化测试具有以下几个优势:1. 提高测试效率:自动化测试可以大大减少测试人员的工作量,提高测试效率。

2. 提升测试质量:自动化测试能够准确地模拟用户的操作,减少人为的错误,提升测试质量。

3. 增加测试覆盖范围:自动化测试可以快速执行大量的测试用例,覆盖更多的功能和场景。

二、持续集成与持续交付的概念1. 持续集成:持续集成是指将开发人员的代码频繁地集成到主干分支中,并进行自动化的构建、测试和部署。

通过持续集成,可以快速发现代码集成引入的问题,保证软件的稳定性。

2. 持续交付:持续交付是指在保证软件质量的前提下,将软件的可发布版本交付给用户。

通过持续交付,可以缩短软件的发布周期,加快功能的迭代更新。

三、自动化测试在持续集成与持续交付中的作用1. 在持续集成中的作用(1)快速发现问题:在代码集成到主干分支后,自动化测试可以快速执行测试用例,发现代码集成引入的问题,及早修复。

(2)提供可靠的反馈:自动化测试可以提供详细的测试报告和日志,为开发人员提供可靠的反馈信息,帮助他们快速定位和解决问题。

(3)减少回归测试成本:在持续集成中,自动化测试可以快速执行回归测试,减少回归测试的时间和成本。

2. 在持续交付中的作用(1)确保软件质量:通过自动化测试,可以在软件交付给用户之前对其进行全面的测试,确保软件的质量和稳定性。

(2)加快发布速度:自动化测试可以快速执行大量的测试用例,缩短测试时间,从而加快软件的发布速度。

如何进行持续集成和自动化测试

如何进行持续集成和自动化测试持续集成(Continuous Integration)和自动化测试(Automated Testing)是现代软件开发中非常重要的环节。

它们可以提高团队的效率,并保证软件质量。

本文将介绍如何进行持续集成和自动化测试,以及如何应用合适的工具和技术来实现。

一、持续集成的概念和原则持续集成是一种开发实践,要求开发者将代码频繁地集成到主干代码库中。

它的目的是通过尽早地发现和解决问题,最大限度地减少集成过程中的冲突和错误。

持续集成的原则包括:1. 尽早提交代码:开发者应该尽早地提交代码,不等到代码被积累起来再一次性提交。

2. 自动化构建:通过构建工具(如Maven、Gradle等)自动执行编译、测试和打包等任务。

3. 频繁集成:开发者应该频繁地将代码集成到主干代码库,最好是每天或每个工作任务结束后。

4. 快速反馈:持续集成需要快速反馈,通过自动化测试和构建过程来提供准确和及时的问题报告。

二、持续集成的步骤1. 版本控制:使用版本控制工具(如Git、SVN等)来管理代码,确保团队成员都使用相同的代码版本。

2. 自动化构建:使用构建工具来自动执行编译、测试和打包等任务。

常用的构建工具有Jenkins、Travis CI等。

3. 自动化测试:编写自动化测试脚本,覆盖功能测试、单元测试、集成测试等多个层次的测试。

常用的自动化测试框架有JUnit、TestNG 等。

4. 集成和部署:将代码集成到主干代码库,并自动部署到测试环境或生产环境中。

可以使用持续集成工具来实现自动集成和部署,如Jenkins、TeamCity等。

5. 快速反馈:通过自动化测试和构建过程提供快速反馈,及时发现和解决问题。

三、自动化测试的概念和类型自动化测试是使用脚本和工具来执行测试任务的过程,相比手动测试,它具有更高的效率和准确性。

常用的自动化测试类型包括:1. 单元测试:针对软件的最小可测试单元(如函数、方法)编写测试用例。

自动化测试中的持续集成与持续测试

自动化测试中的持续集成与持续测试在软件开发领域,自动化测试已成为提高产品质量与开发效率的重要环节。

为了确保测试的准确性和效率,持续集成与持续测试成为了自动化测试中的核心概念。

本文将介绍什么是持续集成与持续测试,它们的意义以及如何在自动化测试中应用这些概念。

一、什么是持续集成与持续测试持续集成是一种软件开发实践方法,通过频繁地将代码集成到主干分支,使得团队成员能够更早地发现代码集成引起的问题,并且可以立即进行修复。

持续集成的目标是保持代码的稳定性和可靠性,同时提高软件开发团队的整体效率。

持续测试是持续集成的重要组成部分,它确保在频繁地集成代码的同时,测试也是连续进行的。

通过持续测试,可以在代码集成之后自动执行一系列测试用例,确保新添加的代码没有破坏系统的功能和稳定性。

持续测试的目标是提供即时反馈,减少测试延迟,并加速问题的解决。

二、持续集成与持续测试的意义1. 问题早发现:通过持续集成与持续测试,可以及早发现并解决代码集成引起的问题,避免问题扩散到整个系统,提高代码的稳定性和质量。

2. 自动化流程:持续集成与持续测试的实施需要构建自动化的流程,包括自动化构建、自动化测试用例执行等。

这有助于减少人工干预带来的错误,并加快软件发布的速度。

3. 可追溯性:持续集成与持续测试的每个过程都有详细的记录,可以追溯到具体的代码提交和测试结果。

这对于问题的排查和团队协作非常重要。

4. 增强团队合作:持续集成与持续测试要求团队成员频繁地合并代码和测试,这促进了团队的合作和沟通,提高了开发效率和整体质量。

5. 快速反馈:持续测试通过自动化的方式提供即时反馈,使得开发人员可以快速获知代码的质量和稳定性,促使及时的改进和修复。

三、在自动化测试中应用持续集成与持续测试1. 自动化构建:利用构建工具(如Jenkins)实现自动化构建,通过构建脚本将代码从版本控制系统中获取并编译。

每次代码提交后,都会触发自动化构建过程,确保代码的一致性和可编译性。

如何进行自动化测试和持续集成开发

如何进行自动化测试和持续集成开发自动化测试和持续集成开发在软件开发领域起着至关重要的作用。

自动化测试可以提高测试的效率和准确性,减少人工测试的工作量和测试错误的概率;而持续集成开发则可以实现代码的快速交付、早期发现和修复缺陷,并提高开发团队的协作效率。

在本文中,我将详细介绍如何进行自动化测试和持续集成开发。

一、自动化测试自动化测试是通过使用脚本和工具来代替人工进行软件测试的过程。

它可以提高测试的效率和准确性,减少测试的工作量和测试错误的概率。

以下是一些进行自动化测试的关键步骤:1.确定自动化测试的范围:首先,需要明确哪些测试场景适合进行自动化测试。

通常,功能测试、性能测试和回归测试是自动化测试的主要应用场景。

2.选择合适的自动化测试工具:根据项目的需求和技术栈,选择适合的自动化测试工具。

常用的自动化测试工具包括Selenium、Appium和JUnit等。

3.编写测试脚本:使用选定的自动化测试工具,编写测试脚本来执行自动化测试。

测试脚本应该覆盖项目的主要功能和边界条件,以确保测试的全面性和准确性。

4.执行自动化测试:执行编写好的测试脚本,并生成测试报告来分析测试结果。

测试报告应包含详细的测试结果、错误信息和错误堆栈,以便开发人员追踪和修复问题。

5.持续集成:将自动化测试融入到持续集成流程中,实现自动化测试的自动执行和结果的及时反馈。

这样可以早期发现和修复缺陷,提高开发团队的协作效率。

二、持续集成开发持续集成开发是一种通过频繁集成代码和自动构建、测试和部署的方法,来实现代码的快速交付、早期发现和修复缺陷,并提高开发团队的协作效率。

以下是一些进行持续集成开发的关键步骤:1.创建代码仓库:使用版本控制系统(如Git)创建代码仓库,并将项目代码放入仓库中。

确保每个开发人员都有访问仓库的权限,并可进行代码的修改和提交。

2.创建构建脚本:使用构建工具(如Maven或Gradle)创建构建脚本,定义项目的构建过程。

持续集成与自动化测试的实现

持续集成与自动化测试的实现持续集成(Continuous Integration)和自动化测试是现代软件开发过程中非常重要的环节,它们的实现可以提高开发团队的工作效率、减少出错风险,并保证软件的质量。

本文将从持续集成和自动化测试的基本概念开始介绍它们的实现过程。

持续集成是指将开发者的代码持续地集成到一个共享的代码库中,并通过自动化构建、测试和部署的过程进行验证。

实施持续集成的关键是使用一个版本控制系统(如Git)来管理代码,并建立一个自动化的构建管道来触发构建和测试流程。

下面是实施持续集成的一般步骤:1.版本控制:将代码存放在一个共享的代码库中,团队成员可以随时获取和提交代码。

2.构建脚本:编写一个脚本,用于自动化构建软件。

在脚本中,可以定义构建所需的依赖、编译代码、打包软件等操作。

3.自动化测试:编写自动化测试脚本,用于验证代码的正确性。

可以使用各种测试框架和工具来编写单元测试、集成测试、端到端测试等不同类型的测试脚本。

4.持续集成服务器:配置一个持续集成服务器,用于监听代码库的变化,并触发构建和测试流程。

持续集成服务器可以周期性地或在代码提交时自动触发构建和测试流程。

5.自动化构建:持续集成服务器在触发构建时,会执行构建脚本,自动编译和构建软件。

6.自动化测试:在构建完成后,持续集成服务器会执行自动化测试脚本,验证代码的正确性。

测试脚本可以运行在不同的环境中,例如模拟器、容器等。

7.测试报告和部署:持续集成服务器会生成测试报告,显示测试结果的统计信息和详细信息。

如果所有的测试通过,可以将软件部署到目标环境中。

自动化测试是持续集成过程中的一个重要环节,它可以提供快速、可靠的反馈,帮助开发团队尽早发现和解决问题。

以下是实施自动化测试的一般步骤:1. 选择测试框架和工具:根据项目的需求和技术栈,选择适合的测试框架和工具。

例如,Java项目可以使用JUnit或TestNG,JavaScript项目可以使用Mocha或Jasmine等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2015年第24卷第5期 http://www.c—S—a.org.cn 计算机系统应用 基于持续集成的Android自动化测试 王焱,张征 (华中科技大学自动化学院,武汉430074) 摘要:Android测试方面的研究大多集中在测试工具和框架的实现上,有些工具和框架可以实现测试用例的自 动生成和测试脚本的自动执行.然而在项目开发过程中,测试这个活动是需要人工启动的,不能及时有效地保证 新增或者修改代码的质量.在Robotium测试框架的基础上,通过研究持续集成方案,包括被测代码和测试代码 的托管、版本控制,应用的自动构建,测试的自动执行,实现了Android的自动化测试平台.使用该测试平台,可 以及时自动地对被测代码的修改进行测试,直观可控地保证了Android应用的质量. 关键词:Android测试;Robotium框架;自动化测试;持续集成 

Continuous Integration Based Study on Automated Testing for Android Platform WANGYan,ZHANGZheng (School ofAutomation,Huazhong University of Science&Technology,Wuhan 430074,China) Abstract:Research on Android test mostly focused on the realization of the testing tools and frameworks,some tools and frameworks carl realize automatic test case generation and test scripts execution.However,during software development,test requires human start,thus can't guarantee the quality of new or modified code timely and effectively. Based on Robotium framework,this paper researched continuous integration solution,including the code under test and the test code hosting,version controlling,building the application and test automatically,fmally realized the Android automation test platform.With the test platform,the code updates Can be test automatically in time,the quality of the Android applications Can be intuitive and controllable. Key words:Android test;Robotium framework;automated testing;continuous integration 

伴随着Android系统的走红,市场对Android应用 程序(APP)的开发提出了更高的要求,快速推出、快速 迭代、快速响应用户的需求.然后在这个“快速”的过 程中,APP的质量难以等到保证,在用户使用时出现应 用无响应(ANR,Application Not Responding),甚至直 接崩溃(Crash),导致的直接后果就是被用户卸载.如 何才能保证产品的质量?这就需要对Android应用程 序进行全面严密的测试. Android APP的测试在业界已经有大量的研究,从 砌 t单元测试,到Instrumentation进行全方面的集成测 试,还有Monkey、MonkeyRunner、Robotium、Robolectric 等自动化测试工具和框架【1】.其中Robotium框架由于 ①基金项目:国家自然科学 ̄(61100145) 收稿时间:2014.11-21;收到修改稿时间:2014.12.29 其功能强大、使用简单赢得了大量的用户,它能够模 拟几乎所有的用户操作,实现对APP全面的功能测试. 同时,国内外学术领域对Android测试也有很多研究. 张灿等【 】基于录制一回放技术提出了Android平台的 自动化测试解决方案.候菊敏[3J把基于关键字驱动的 软件测试技术移植到Android测试中,实现了从数据 文件中直接导入测试用例进行测试,使测试数据与测 试代码分离,降低测试数据与测试代码的耦合性.郭 柏廷【4】提出基于一段式状态机的GUI测试模型,可以 提取Android应用程序GUI控件可能的互动行为,用 来协助生成测试用例序列.Tae.San Baek等 从 Android应用程序源码中抽象出状态图,根据该状态 

Research and Development研究开发261 计算机系统应用 http://www.c-S—a.org.ca 2015年第24卷第5期 图产生测试场景,并用Jython语言实现自动化测试. Amalfitano等【6】基于爬虫技术建立Android应用程序的 GUI模型,并生成可以自动执行的测试用例. 这些研究大多是集中在Android测试工具和框架 的实现上.在自动化测试方面,关注在测试用例的自 动化生成和测试脚本的自动化执行上.然而测试作为 项目的一个重要部分,应该在项目开发过程能够随时 自动化运行,每次修改应用代码或者添加新代码的时 候,应该自动运行部分或者全部测试代码,从而保证 代码的修改和添加都能通过先前的测试I 】. 本文基于软件工程的持续集成思想,提出了一种 解决Android自动化测试问题的方案.持续集成是一 种敏捷软件工程实践,通过持续地、频繁地集成和测 试,来减少集成时间和提高软件质量 J,它的一个显 著特点是自动化的.本文的研究旨在实现基于持续集 成的Android自动化测试平台,在该平台上使用 Robotium框架对Android APP进行测试,从测试之前 的准备,到测试的执行,最后测试结果的输出,这一 整套自动化流程建立在许多优秀的开源软件和工具之 匕. 

1 Android ̄J]试框架Robotium Robotium是一款测试Android Application的测试 框架,它是Android自带类Instrumentation的一个封装, 方便测试人员直接调用封装好的接口,实际上我们直 接使用Instrumentation也能够进行全面的测试,但 Robotium可以简化我们的测试步骤. 如图1所示,Robotium基于Android自带的测试工 具类Instumentation,应用程序和测试程序运行在同一 个进程中,测试程序通过InstrumentationTestRunner来 控制应用程序,实现各种测试操作. 

J一一 一一 一~ 一一 一 一 

L 

图1 Robotium测试架构 

262研究开发Research and Development 

Robotium框架中最重要的一个类是Solo,它实现 了对Android控件操作的封装,下面给出部分示例: 

基于Robotium框架的测试用例编写与JUnit类似, 所有测试方法命名以test开头,另外有两个特殊的方 法:setUp()和tearDown0,在测试开始前和结束后做一 些初始化和垃圾清理的事情.对Android应用程序的 测试,在测试操作之前需要先加载一个启动Activity 类. Robotium框架使用系统提供的InstrumentationTe. stRunner,在测试AndroidManifest.xml中指定instum. entation的name和targetPackage,其中name指定所使 用的测试工具,targetPackage指定被测应用的包名.另 外需要使用android.test.runner这个系统类库,如图2 所示.在Eclipse中,测试以Android JUnit Test运行. 

<ins专 u e ta℃ 0^ android:na = android.test.InstrumentationTestRunn r 。ndroid targetPackage=’"dev.tonTwong.ahorefokk” 

aD0licati0n android:icoB ̄  ̄dronobte/ic lGunc ̄er android:label=‘ 豁t,t 咖 —n ”, 0§e 5 ii}一0 android:na e android.t05亡.r“^n r 00 jic 0 l0 

图2 Android测试项目AndroidManifest.xml文件 

2 Android持续集成系统设计 2.1系统组成 搭建持续集成环境,首先需要一个持续集成的平 台和一个统一的代码库L9】,通过持续集成平台监听代 码库的变化,有变化则拉取新的代码,采用某种方法 进行新的集成构建,并运行自动化测试,测试之前需 要部署好相应的测试环境,在本文研究的Android测 试中,需要启动Android模拟器(AVD).Android测试持 续集成系统组成如图3所示. (1)持续集成平台 当前最流行的开源持续集成平台是Jenkins。它由 以前的Hudson更名而来.Jenkins主要由两部分组成, 第一部分是一个可以独立运行的Java程序,它主要负

相关文档
最新文档