1、第7章 移动终端测试7.1 移动移动终端测试的终端测试的目标目标7.1.1 传统传统App测试的问题测试的问题 移动互联网持续向传统行业渗透。共享单车火拼已经上演,智慧停车潜力无限,分时租车蓬勃发展。社区电商、移动社区服务应用必将走进人们的生活。互联网家居家装已暗流涌动。商业银行大力推动金融服务互联网化,互联网思维渐变为具体的App产品。然而,海量的App给用户带来便利的同时,也有大量的App质量存在问题,给用户造成了困扰。2016年TestBird测试过的App已达60806款,其中共发现了1864578个问题,平均每个App的问题就有30个。传统的PC端测试工具和移动端的手工测试方法已经无
2、法满足快速发展的移动App的需求,反映出如图7-1所示的一系列问题。第7章 移动终端测试图7-1 传统App测试的问题第7章 移动终端测试归纳起来,上述问题是以下几方面原因造成的。(1)测试设备碎片化严重。App开发公司为了尽最大可能满足用户需求,只能对不同版本和分辨率进行适配。但由于移动终端的碎片化严重,自购手机一次性投入成本高,且手机更新换代快。大量的手机资源,难以管理,经常会出现手机找不到的情况。所以,很多中小型公司不太可能把所有的手机型号都购买来自己维护。(2)测试管理和测试执行是分离并低效的。传统的测试往往是这样的场景:测试人员在电脑上打开测试管理系统,逐个手工书写和修改测试用例,然
3、后通过USB连上手机,安装App,再根据测试用例在手机上操作,这样,测试的管理和执行,实际上是分离的。用例执行的结果,即使测试人员在手机上什么都没有做,也能标为“成功”。这样的分离,耗费了大量人工。第7章 移动终端测试(3)测试过程易疏漏无法监管。人工测试容易因为测试人员的疏忽,导致Bug漏报,产品上线后问题才暴露,致使沟通成本和排错难度增加。如果测试人员记录的测试步骤和实际测试步骤有差异,研发将无法复现。测试过程没有记录,也无法监管复查,留下质量隐患。(4)测试现场不能很好地保护。测试过程中,手机状态信息,如内存、CPU占用等无法得到记录,导致信息现场丢失,无法复现,埋下隐患。第7章 移动终
4、端测试7.1.2 App自动化测试的难点自动化测试的难点1自动化测试自动化测试自动化测试使得人为驱动的测试过程转化为机器执行的过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程,逐步执行测试,将得到实际结果与期望结果比较。在此过程中,为了节省人力、时间和硬件资源,提高测试效率,便引入了自动化测试概念。简单地说,就是把需要人工反复手动执行的测试用例,用机器自动执行,把人力从繁琐的重复劳动中解脱出来,避免了人工操作的失误和无记录,使得还原成为可能,大幅度提升测试质量和效率。第7章 移动终端测试2自动化测试技术的门槛自动化测试技术的门槛但是常见的自动化测试有以下几个问题让
5、很多公司望而却步:(1)测试技能。要实现自动化测试,必须掌握脚本语言,能开发自动化测试系统,所以需要招聘高级测试开发人员,目前能建立完善的自动化测试体系和能力的企业极少。(2)研发成本。通常情况下,一套自动化系统的建立需要投入至少300万,而要基于云手机平台搭建自动化测试体系,投入超过2000万3000万,需要攻克大量的技术难关,比如终端控制、图形化脚本、参数配置和对比等。而类似于金融、旅游等规模较大、功能较为复杂的App,成本投入还会更多。(3)耗时长。TestBird自动化测试能力的积累,从2013年就已经开始了,组织了30人的研发团队耗费两年多的时间,开发才趋于稳定。第7章 移动终端测试
6、7.2 TestBird云手机自动化测试平台云手机自动化测试平台简介简介7.2.1 平台概述平台概述TestBird利用自身在测试领域积累的经验和能力,将云手机技术与自动化测试技术相结合,在业内最先推出了自动化云测试平台,如图7-2所示。第7章 移动终端测试图7-2 TestBird云测试平台第7章 移动终端测试7.2.2 平台特点平台特点1自动化技术先进自动化技术先进领先的顶层设计,让自动化的构建及维护效率高;真正意义上的私有云平台,所有操作100%基于Web浏览器;强大的管理功能,支撑测试和开发的完整工作流;测试资产统一集中在云端存储,将过程数据存储记录下来,以支撑研发效率持续改进。第7章
7、 移动终端测试2平台易用平台易用无需了解自动化脚本语言,即可使用自动回归测试;脚本录制快速高效,只需按照文本描述操作手机,即可完成用例录制;可一键式生成测试报告,报告包含了所有用例的执行结果以及统计结果;报告可以分享,分享链接无需登陆平台即可查看。第7章 移动终端测试3流程可控流程可控测试结果可见,所有用例的执行截图、日志、性能等数据可在线查询;测试进度可见,实时更新和统计测试进度。4报告专业报告专业可根据测试场景统计测试结果;具有丰富的截图、日志及性能数据,可实时在线查看。第7章 移动终端测试7.2.3 平台整体架构和实现原理平台整体架构和实现原理1整体架构整体架构TestBird的自动化回
8、归测试,是基于云手机平台,采用图形化脚本的形式,可以在一部手机上录制脚本,在另外的一部或多部手机上回放该脚本。其中,在多部手机上回放,可以满足用户将功能回归测试与兼容性测试相结合的要求,只有基于云手机的自动回归测试才能做到。云手机平台架构包含了四大子系统,业务子系统、管理子系统、终端控制子系统、手机探针子系统,如图7-3所示。其中,每个子系统的功能作用是:第7章 移动终端测试(1)业务子系统:测试开发人员使用业务子系统功能完成测试及问题定位调试等工作;(2)管理子系统:设备管理(终端、服务器)、账户管理、业务子系统日志信息管理;(3)终端控制子系统:控制终端设备,与终端进行信息交互,下发指令以
9、及收集终端上报的数据。(4)手机探针子系统:接收终端控制子系统的指令,控制终端执行具体的操作命令,单击、拖动屏幕、截屏等操作,同时给控制子系统返回终端信息。第7章 移动终端测试图7-3 TestBird的系统架构第7章 移动终端测试2自动化技术自动化技术TestBird采用领先的图片式自动化脚本,把测试文本用例,在手机上转化成操作步骤的截图,这些截图的集合,即为自动回归脚本用例。这项技术自动化脚本语言,极大地降低了测试人员的技术门槛,使手工测试人员快速成为自动化测试人员。App自动化在当今移动互联网浪潮下开始逐渐流行,但其自动化技术存在很多难点,如图7-4所示。第7章 移动终端测试图7-4 A
10、pp自动化测试的难点第7章 移动终端测试(1)控件识别:可以看到移动终端本身的碎片化,产生了各种各样的手机终端,为了实现一机录制多机回放功能,需要让每一次单击精准,控件识别是在脚本录制过程中,将手机页面xml文件全部载入,找到单击控件,在脚本回放时实现精准单击的技术。(2)Anchor辅助列表识别:针对属性相同,但是值不同的控件,需要对自动化脚本配置一个“辅助锚”让自动化单击准确,这就是Anchor技术。(3)局部图像识别:现今移动端越来越多的H5页面,不再让控件暴露,这就需要图像识别,在脚本编辑时记录图像,在脚本回放时找到单击位置。第7章 移动终端测试(4)OCR识别:如今大多金融行业App
11、为了安全,对键盘进行加密,不会让第三方软件破解,这就需要OCR识别技术,它原来是用于电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。现在用来识别App键盘上的字符并实现自动化精准单击。(5)插件机制:许多大企业,为了对App上更多的数据进行校验,在自动化过程中无法只依靠运行App来实现。这就需要从第三方获取数据,插件机制给第三方数据输入提供了方便,并且也可以提供第三方调用的入口。第7章 移动终端测试7.2.4 平台平台功能功能开发人员将版本管理工具与TestBird自动回归平台对接起来,每个版本build出来后
12、,通过自动触发的方式执行老功能对应的测试用例,如果测试通过,则保障每一个版本中新功能的引入,对老功能没有影响。如果测试不通过,则说明新功能引入了Bug,导致老功能存在问题,开发人员可以在本次修改的代码中快速地找到Bug。TestBird的自动化回归流程非常简单:(1)导入文本用例;(2)自动化脚本录制;(3)用例回归。第7章 移动终端测试1用例管理用例管理1)场景描述所有的测试用例,都是由用例标题、用例描述(预置条件、执行步骤)及预期结果构成,这叫做文本用例。TestBird一站式云手机平台,提供了测试用例管理的功能,用户可以将线下excel保存的文本用例,通过批量导入的方式,直接导入到平台中
13、。另外,平台也提供在线的用例创建、编辑及删除功能。第7章 移动终端测试2)实现过程用户登录云手机平台自动回归测试,进入测试用例管理页面,如图7-5所示,选择导入的用例excel表格,执行导入操作即可。第7章 移动终端测试图7-5 测试用例管理第7章 移动终端测试2脚本录制脚本录制1)场景描述场景描述在自动回归老功能之前,需要把老功能的文本用例,转化成自动化脚本用例,这个转化的过程即为脚本录制,每一个用例在自动回归前,都需要录制脚本。脚本录制完成后,就可以进行多次回放。2)实现过程用户选择需要录制的文本用例,用一部录制终端,根据文本用例的描述进行操作,系统在用户操作过程中,自动纪录所有的操作步骤
14、,生成操作截图。按照用例步骤,操作完成后,单击保存即可完成一个用例的录制,如图7-6所示。第7章 移动终端测试图7-6 保存录制的测试用例第7章 移动终端测试3自动回归自动回归1)场景描述(1)开发完成一个版本创建成功后,通过版本管理工具与平台对接,自动触发已有脚本用例的老功能自动回归测试。(2)当一个版本转测试后,测试人员选择需要验证的老功能用例进行自动回归。2)实现过程用户登录平台,选择需要回归测试的应用版本,再选择测试需要回归的测试用例,创建一个自动回归测试任务即可。第7章 移动终端测试图7-7 实现自动回归测试第7章 移动终端测试4自助功能测试自助功能测试1)场景描述自助功能测试模块,
15、是基于平台化管理的手工测试模块,为了简化测试人员的环境准备工作,节省企业的购机维护成本。将手机集中管理,共享给研发人员,这样的方式特别适合测试研发人员较多或者多地办公的企业。不仅可以节省购机维护成本,且省去了手工测试工作中准备复杂环境和大量手机测试数据的环节,平台详尽的数据记录更能减少开发测试间的沟通成本。第7章 移动终端测试2)实现过程基于“1.用例管理”,选择用例,再选择手机,实际操作与“2.脚本录制”中的脚本录制的实现过程相同,如图7-8所示。图7-8 自助功能测试第7章 移动终端测试图片标注释义:单击“自助功能测试”按钮,进入自助功能测试页面;单击“开始测试”按钮,选择相应App版本和
16、用例执行测试。注:在执行自助功能测试时,可以选择已有用例执行,也可以不选择用例直接测试。第7章 移动终端测试5兼容性测试和性能测试兼容性测试和性能测试1)场景描述兼容性测试是移动App测试的难点,App运行于碎片化非常严重的终端环境(多机型、多操作系统、多分辨率)下,产生了诸多兼容性问题。如果要靠人工测试,工作量将非常巨大,自动化测试平台可以自动完成兼容性测试。2)实现过程自动化的脚本可继承使用“2.脚本录制”中录制的脚本,在兼容性测试模块下选择多手机,自动执行测试,等待测试完成。即可得到一份非常专业的测试报告,包括兼容性问题和终端性能问题。第7章 移动终端测试图7-9 兼容性测试第7章 移动
17、终端测试图7-10 选择被测试的手机第7章 移动终端测试执行方式释义:(1)并发执行:多个手机同时执行。(2)顺序执行:多个手机顺序执行,适用于执行用例时帐号只能在唯一一个手机上登录使用。自动生成报告,如图7-11所示。第7章 移动终端测试图7-11 生成测试报告第7章 移动终端测试6任务分发任务分发1)场景描述一个测试平台需要考虑管理者如何管理繁杂的测试工作,任务分发为管理者提供分配工作并监控工作进度的功能。2)实现过程在任务名称列表下,切换“脚本录制”和“自助功能测试任务”,可将这两种任务分配给测试人员。单击“分配任务”,进入人员筛选对话框,如图7-12所示。第7章 移动终端测试图7-12
18、 测试任务分发第7章 移动终端测试7.3 自动化测试平台自动化测试平台应用应用7.3.1 应用模式应用模式1公有云模式公有云模式所有的硬件资源都在TestBird中进行管理和维护,用户只需要注册一个账号,即可体验兼容性和远程真机调试等服务。2私有云模式私有云模式所有的硬件资源都在测试机房,私有云带来的好处是:为企业节约自动化测试建设成本、公司内部手机资源可共享、安全性有保障并且提升了组织级测试能力。第7章 移动终端测试7.3.2 运行环境运行环境(1)使用:推荐网络带宽500 KB/s,浏览器使用chrome;(2)部署:普通服务器和工控机即可部署。私有云测试平台如图7-13所示。第7章 移动
19、终端测试图7-13 私有云测试平台第7章 移动终端测试7.3.3 硬件组网硬件组网TestBird云手机硬件组网图如图7-14所示。图7-14 TestBird云手机硬件组网图第7章 移动终端测试7.4 自动回归测试自动回归测试实例实例完成一个用例的自动回归测试工作,需要借助平台多个功能模块。操作步骤如下:(1)登录平台:用管理员给的帐号进行登录。(2)进入测试模块相应App产品下,如图7-15所示。第7章 移动终端测试图7-15 开始自动回归测试第7章 移动终端测试(3)上传要进行测试的App安装包:作为产品/项目管理入口,单击进入,如图7-16所示。图7-16 创建新的测试用例第7章 移动
20、终端测试 (4)导入用例/新建用例:在用例管理中生成一个用例文本,如图7-17所示。图7-17 生成测试用例文本第7章 移动终端测试 (5)录制脚本:如图7-18所示,单击“新增用例”按钮,在图7-19中录入相关信息,单击“录制脚本”,进行录制脚本、保存脚本及调试脚本,脚本用于自动化测试,如图7-19所示。图7-18 新增测试用例第7章 移动终端测试图7-19 开始录制脚本第7章 移动终端测试 (6)任务创建后,开始本次录制:系统会自动安装选择的App版本,App安装完成后,系统会自动启动该应用并开始录制,如图7-20及图7-21所示。第7章 移动终端测试图7-20 管理测试用例第7章 移动终
21、端测试图7-21 编辑测试用例第7章 移动终端测试 (7)自动回归测试:在“自动回归测试”模块下,选择在图7-19中录制的脚本用例,选择测试手机,并为测试任务命名,即可开始测试,如图7-22所示,测试开始后在任务列表会生成一项测试任务。图7-22 开始自动回归测试第7章 移动终端测试 (8)测试完成:在“自动回归测试”下,可监控自动化测试任务完成进度,完成后会自动显示。可单击查看详情,如图7-23所示。图7-23 查看自动回归测试进度第7章 移动终端测试 (9)生成报告:在“自动回归测试”下,选择一个或多个测试任务(测试用例),单击“生成报告”,即可一键完成报告汇总,在“报告管理”模块查看即可,如图7-24所示。图7-24 生成测试报告第7章 移动终端测试 (10)完成操作:至此完成自动回归测试任务,可将报告分享给相关人员进行查看和定位,如图7-25所示。图7-25 完成测试分享测试报告