一、为什么要做移动应用的
持续集成与自动化测试
持续集成与自动化测试是移动应用又快又稳发展的催化剂
移动应用需要做持续集成与自动化测试吗?我想告诉大家的是,这事非常值得做。为什么呢?
近5年来移动业务快速发展,市场也日趋成熟,但是移动应用的开发在大部分企业里还是采用传统的开发模式,完全靠手工完成开发-编译-打包-测试等一系列软件研发过程,过程重复且单一,人会疲劳,工作容易出错,无法实现敏捷研发,更无法做到快速发布,虽提出版本快速迭代目标,但未真正达到预期。
引入持续集成与自动化测试,它利用空闲机器资源优势,可以将移动应用研发过程中的大部分工作实现自动化,释放更多的人力投入到更有价值的工作当中去,持续集成与自动化测试才是移动应用又快又稳发展的催化剂。
持续集成和自动化测试是加快移动应用快速发布的有效手段
与传统企业应用相比,移动应用是企业应用生态的有益补充,日趋得到重视,移动本身特点导致移动应用开发过程中测试回归周期长,质量成本高。
但由于投入的不足,移动应用发布周期长,响应市场慢,质量低,用户体验较差。持续集成与自动化测试支持快速回归,缩短周期,自动化执行测试,稳定高效,持续集成和自动化测试组合拳是加快移动应用快速上线的有效手段,现在引入也正当时。
持续集成与自动化测试是移动应用测试发展的必然
从测试行业发展的角度来看,持续集成与自动化测试是移动应用测试发展的必然:
信息科技高速发展,企业的本土化信息也趋于国际化,削减企业营销成本,提升企业形象,优化用户体验,基于移动的信息展现也在影响着企业的品牌形象,各企业开始对移动信息化平台的质量提出更高的要求,并开始重视质量、看重测试;
在移动互联时代,移动应用作为一种新的移动终端营销服务,大部分企业都通过移动信息化来快速响应市场,要求公司移动产品的更新和发布能够更快更稳定;
在测试行业,持续集成与自动化测试不再是新概念,而且持续集成与自动化测试在很多企业内部已开展实施,大部分软件巨头还建立了自己的自动化测试体系与平台,针对移动应用持续集成与自动化测试的工具相继推出,有开源的也有商业的,有条件的企业也正在组织预研,并尝试落地;
在移动应用质量越来越受重视的今天,测试团队的整体能力、测试效率和个人发展等方面也开始得到领导的特别关心,希望测试团队在能在移动应用的持续集成与自动化测试方面实现突破,推动移动应用研发的创新。
持续集成和自动化测试是天生的一对
要真正实现移动应用的持续发布,开展持续集成、持续部署和持续测试是先决条件,在无人值守的持续测试中,持续集成和自动化测试是绝配,是天生的一对,它们相互依托,在移动应用的质量保证中担任重要角色。
二、移动应用持续集成
与自动化测试的四大挑战
挑战一:要支持多技术、多平台,工具选型困难
对于好多企业来说,即使有了传统应用测试经验的积累,要做好移动应用的持续集成与自动化测试,也不是一件很容易的事情,会面临着诸多挑战。
要面临着着针对不同移动技术的持续集成,除了传统技术如Native、Hybrid和Web,还有新兴的技术如驱动原生跨平台技术(Primeton
Mobile),针对不同技术的持续集成该怎么做?
持续集成和自动化测试如何支持多平台,包括iOS、Android等,我们需要为每个平台部署一套,还是一套支持过个平台,具体该如何做?
要做持续集成和自动化测试,工具是不可缺少的,现在市场上测试工具也层出不穷,但成熟度、稳定性方面还需要考究,是否同步移动技术发展、是否含有技术支持,要从众多的工具中选择满足自己应用的自动化测试要求的工具也不那么简单。
挑战二:团队规模小,自动化测试落地难
就大多数企业的移动发展来看,移动应用相对于传统应用规模较小,麻雀虽小,五脏俱全,也需要做功能测试、服务接口测试、兼容性测试、安全测试、性能测试和用户体验测试等,测试任务也并不少,在有限测试投入的情况,自动化测试落地就比较难。
挑战三:测试并行执行互斥,测试数据难以管理
在移动应用的测试工作中,兼容性测试也是重中之重。
自动化测试需要在不同设备中执行,测试用例需要为不同平台准备一份吗?测试用例该怎么维护?测试数据又该如何管理?
根据行业调查结果显示,并行测试在移动测试执行中是一个基本的要求,大部分企业不可能为每个平台准备一个独立运行的后台环境,
在测试资源共享的背景下,要确保自动化测试支持多平台并行执行,随时并不限次数的执行,对测试数据的组织与管理也是一个挑战。
挑战四:测试的投入产出,收益平衡难以把握
少量的投入产生较大的回报,这是每个人都乐意见到的事情。在测试过程中这是领导的要求,也是测试团队努力的目标。
理想很丰满,现实却很骨感。
测试是无止境的,要做好持续集成与自动化测试,测试策略如何制定?测试人员如何分工?如何把握测试这个度?测试的投入和收益比较难以把握。
三、移动应用持续集成
与自动化测试的最佳实践
建立全面的持续测试管理体系
总的来说,移动应用引入持续集成与自动化测试要取得好的效果,仅仅依靠工具还是不够的,建立一套全面的持续测试管理体系作为支撑也很有必要,就我们的经验来讲,主要可以从测试体系、平台与工具和组织保障三个维度入手,有计划有步骤的开展实施,进行系统化建设。
首先,建立适合自身的测试体系:强调领导作用,制订质量方针;制定测试过程与规范;制定测试标准,准备过程文档模板;在研发团队内部进行宣导,由质量部门监督实施。
其次,选择适合自身发展的测试平台与工具:引入持续集成与自动化测试平台,搭建测试管理系统,对测试需求、测试计划、测试环境、产品缺陷等管理;
再次,提供强有力的组织保障:提高质量是整个研发团队的一致目标,我们要从团队建设、技术能力、测试策略方法、监控度量技术等方面进行保障,并在每个项目的迭代种针对度量结果进行分析、总结,推动测试测试体系的不断改进的良性循环。
普元移动应用持续集成技术方案
从工具维度来讲,移动应用的持续集成我们采用的是普元的持续集成平台。普元的持续集成平台支持以项目为单元进行持续集成管理,以任务流驱动持续集成任务的完成;平台支持分布式部署,支持持续集成任务的分布式执行;平台支持持续集成任务机的管理,可以完全胜任采用现有移动技术开发的移动应用的持续集成工作。
普元移动应用自动化测试技术方案
移动应用的自动化测试引入的是普元的统一测试平台产品,这款产品采用行业内典型的层次化体系架构,支持采用图形化的测试用例开发,入手容易;通过组件化方式构件测试用例,后期维护简单;不仅支持移动应用前端UI的自动化测试还支持后台接口的自动化测试,通过选件的扩展还能满足更多的技术测试要求。
统一测试平台与持续集成平台无缝对接,通过持续集成平台能力,则可以实现无人值守的对移动应用进行自动化的持续验证。
针对移动应用的自动化测试,引入普元的统一测试平台,选择移动测试选件MobileTest,使用产品自带的移动技术组件,就能开发一套基于多平台的自动化测试用例,在装有Android或iOS系统的手机、平板等设备上执行。
自动化测试设计原则与实施方法论
有了工具,在自动化测试实施的时候还要遵守一些自动化测试的设计原则与实施方法论,设计原则主要把握四个方面:易实现性、易管理性、易维护性与易定位性。
在测试实施过程中,无论被测对象是啥,我们通过选件提供自动化测试能力,通过组件封装屏蔽技术细节,测试用例采用统一的实现方式,而且低学习曲线;
测试用例作为软件资产进行规划及管理,测试用例实现与开发代码的统一版本控制;测试用例资源的自包含,技术和业务进行分离,降低用例的耦合度,测试数据统一规划,提高测试用例的可维护性;用例设计粒度适中,降低逻辑复杂度,增加测试断言,辅以截图、日志等提高用例执行失败的易定位性。
移动自动化测试用例开发流程化与标准化
在自动化测试设计原则和实施方法论的指导下,我们按照统一的流程与标准实现移动应用的自动化测试用例,并积累和沉淀测试知识库。
应用、数据及用例实行版本化管理
测试数据的管理在移动应用的自动化测试中也比较复杂,因此在实施自动化测试前就要根据业务进行数据分析,根据被测对象的粒度及关系建立对应的数据模型,可以分为基础数据、项目数据、功能数据和用例数据,基准数据在自动化测试执行前由持续集成任务实现初始化或恢复,其他测试数据则可以在自动化测试执行过程中准备。
测试基准数据集
基准测试数据环境是移动应用系统正常使用的前提,必须先恢复环境,才能继续做接下来的测试数据准备工作。
项目测试数据集
项目测试数据需要从版本管理工具中提取出来,通过脚本或者代码的形式部署到测试环境中,为模块的正常执行构造条件。
功能测试数据集
功能模块测试用例在执行前,先在测试环境进行功能测试数据集的发布,为功能模块的测试用例执行提供必要前提。
测试用例数据集
所有的数据环境和功能模块准备完毕后,可以执行用例自动化测试,测试中使用用例数据集。
在实施移动应用的持续集成与自动化测试项目时,要达到不限次数并且是无人值守对升级版本持续验证的目标,我们必须对应用、用例和数据统一实现版本化管理。
制定合理的自动化测试策略,测试收益最大化
建立了体系,选择了工具,面对移动应用的持续集成与自动化测试,该从哪里入手?
我们需要确定范围,制定策略,以稳定功能优先作为自动化测试实施对象,像一些底层接口、关键集成场景、UI常用功能等,我们可以采用由点及面的方式展开,发挥自动化测试的执行优势,争取获得测试收益最大化。
建立金字塔层级结构的自动化测试团队
工具再完备,体系再好,没有人也是不行的。真正实施持续集成与自动化测试的主体还是人,测试人员匮乏在移动应用项目团队中比较常见。
根据我们的经验,按照金字塔层级结构建立起的自动化测试团队,可以充分发挥团队力量。在这样的团队里,通过建立导师机制,让每个测试团队成员得到成长,形成个人的满意感和归属感。
四、总结
简单总结一下,移动应用持续集成与自动化测试的最佳实践是通过持续集成、持续部署和持续测试,实现无人工值守对版本的持续验证。
依靠普元移动测试盒子,移动应用的持续集成与自动化测试落地也不再是件难事。
|