摘要: Android兼容性测试旨在帮助解决Android应用在不同真机机型上的各类兼容性问题,包括 Crash/ANR分析、6项性能分析、UI检测、3个版本的覆盖安装检测等。Android兼容性测试使用非常简单,客户只需要提交被检测的APK文件(如需登录再提供测试账号/密码),最快经过10分钟全面测试(其他平台在1-3分钟测试时长)之后,将收到测试完成通知,就可以来MQC上查看测试报告。
一、自动化测试服务
Android兼容性测试
Android兼容性测试旨在帮助解决Android应用在不同真机机型上的各类兼容性问题,包括 Crash/ANR分析、6项性能分析、UI检测、3个版本的覆盖安装检测等。Android兼容性测试使用非常简单,客户只需要提交被检测的APK文件(如需登录再提供测试账号/密码),最快经过10分钟全面测试(其他平台在1-3分钟测试时长)之后,将收到测试完成通知,就可以来MQC上查看测试报告。测试报告非常丰富和全面,包括“测试概况”、“终端详情”、“错误日志”、“全部截图”、“性能报告”。
通过机器学习的方式对以往大量的应用进行测试总结,通过深度机器学习,对测试Robot进行智能化训练,能够更加高效准确的检测到应用更多问题。换句话说就是,让测试更有针对性。同时,MQC的测试Robot具备非常多的复杂手势操作能力,比如多点滑动、缩放、双击、多击、多点触摸等等,能够模拟出真实用户的使用效果,让测试“实战化”。
得益于MQC强大的测试技术,兼容性测试的Crash/ANR检出率远远高于业界水平。同时,在性能测试方面,MQC即提供了6项性能指标曲线、性能分析,更提供了强大的内存泄漏和内存溢出的检测和分析能力。
图2.1.1-1终端详情
图2.1.1-2性能曲线
图2.1.1-3错误日志
图2.1.1-4全部截图
Android功能测试
Android功能测试与Android兼容性测试不同,主要目标是检测移动应用的功能正确性。通过功能测试,开发者可以积累自己的功能测试用例,方便之后的回归测试。并且,为了降低客户编写功能脚本的难度,我们一方面提供了全面细致的Robotium帮助文档和Appium帮助文档;同时也提供了在线录制回放工具,让客户无须编写脚本即可得到稳定的高质量脚本,极大降低功能测试成本。
目前功能测试支持Robotium框架和Appium框架(国内只有MQC提供Appium支持),能够满足所有客户的功能脚本编写需求。同时,功能测试支持三类不同的网络选项:WIFI、3G、2G,客户可以在不同的网络场景下进行功能验证,保证应用“全天候”功能正确性。此外,功能测试还支持不同的截图方式:视频(录制整个功能脚本运行过程)、自动截图(按照Activity进行自动截图)、自定义截图(脚本发送指令,自定义截图)。为了满足部分应用账号互踢的场景,我们支持了“账号池”功能,客户可以提交多个账号并行测试,不用担心账号被互踢。
功能测试报告包含:“用例结果聚合分析”、“Crash/ANR错误分析”、“UI截图”、“终端详情”、“测试过程视频”、“错误日志分析”、“性能分析”、“内存泄漏检测”、“内存溢出分析”等。您可以通过测试报告,快速的分析出应用的功能问题、Crash/ANR错误,并且根据用例的通过率将错误严重程度分级,优先解决通过率低功能问题和Crash/ANR错误。
图2.1.2 -1 功能测试提交任务页
图2.1.2 -2 功能测试报告视频
图2.1.2 -3 功能测试报告测试概况
图2.1.2 -4 功能测试报告终端详情
图2.1.2 -1 功能测试报告性能报告
Android深度性能测试
深度性能测试提供更细致可靠的性能检测服务,覆盖“内存泄漏检测”、“内存溢出分析/定位”、“内存抖动检测”、“卡顿检测”、“启动性能分析”、“主线程IO”、“过渡绘制检测”共7项深度性能检测项。
深度性能检测对每一项问题出现的原因都会进行分析,可以直接定位到代码行,并且能够跟测试过程视频进行关键点联动。真正能够帮助用户“发现问题”->“分析问题”-> “定位问题” -> “解决问题”。
图2.1.3 -1 深度性能测试测试 界面卡顿
图2.1.3 -2 深度性能测试测试 过渡绘制
图2.1.3 -3 深度性能测试测试 主线程IO/对象泄漏
图2.1.3 -4 深度性能测试测试 主存抖动
Android远程真机租用
远程真机租用可以帮助客户在MQC提供的远程真机上,进行应用开发、Bug复现、双机调试等。例如,Android兼容性测试、功能测试,或者是用户反馈来的问题,但是本地没有此类机型无法复现出问题场景,那么就可以来MQC进行远程真机租用,通过网页调试MQC机房里的真机。
远程真机租用增加了很多创新性功能:双机租用、远程调试。
双机租用可以让客户一次选择两台真机进行在线租用,可以验证类似钉钉这种需要两台设备来接受/发送的功能;双机租用还可以支持“同步操作”,可以操作一台设备,另外一台设别一起联动,一次验证两台手机,让功能验证更加方便、快速。
远程调试是在真机租用基础之上,对客户非常实用的技术创新。通过下载并执行远程调试Jar包,您可以把MQC机房里的远程真机映射到本地机器上。您可以通过adb命令对远程设备进行操作,同时还可以通过Eclipse/Android Studio等开发工具进行断点调试。
图2.1.5 -1 远程真机租用 双机租用
图2.1.5 -2 远程真机租用 真机调试
Android在线脚本录制
在线脚本录制帮客户解决了编写脚本、维护脚本的难题,您可以在短时间内,迅速的录制生成高质量的脚本。与此同时,你无需关心设备问题,由MQC提供真机设备;您也无需担心脚本的在不同系统版本上的脚本健壮性问题,由MQC帮您自动生成高质量脚本。
在录制完成脚本之后,你可以在构建脚本并执行回放,通过回放后,您可以将脚本提交至MQC线上脚本管理中心,并且可以在功能测试中直接使用该脚本进行功能回归验证。
图2.1.6 -1 在线脚本录制 录制脚本
图2.1.6 -2 在线脚本录制 回放脚本
iOS兼容性测试
iOS兼容性测试可以将被测应用在不同系统版本,不同iOS机型上进行兼容性检测,主要以发现Crash为目的。iOS兼容性测试的Crash检测率也远远高于业界水平(其他平台的检测结果就是告诉你没问题)。
同时兼容性测试的整个过程都被记录成视频,方便您回溯出现的Crash问题。我们也提供了Crash错误的调用栈信息,让您轻松的进行问题Debug。
图2.2.1 -1 iOS兼容性测试 测试概况
图2.2.1 -2 iOS兼容性测试 终点详情
图2.2.1 -3 iOS兼容性测试 错误日志
iOS功能测试
iOS功能测试和Android功能测试类似,是以验证应用的功能正确性为目的。现在iOS功能测试支持原生的UIAutomation脚本。为了方便客户编写脚本,我们也配备了脚本编写文档,帮助iOS测试同学提高测试技能。
iOS功能测试只需提交被测应用和JS脚本文件即可,我们会在不同的机型和系统版本的设备上运行功能脚本,验证不同机型上的功能正确性。测试完成之后,会提供一份详细的用例分析报告,您可以查看各个case整体的通过率,以及失败case出错的日志,从而方便您快速的定位到问题原因。
图2.2.2 -1 iOS功能测试 测试概况
图2.2.2 -2 iOS功能测试 终端详情
图2.2.2 -3 iOS功能测试 查看视频
iOS在线脚本录制
与Android在线录制功能一样,提供对iOS机型的脚本在线录制功能,通过Web端的方式录制Appium的Python语言脚本。MQC针对iOS不同机型的脚本适配提供了“唯一控件判断”的能力,不同iOS系统版本尽管控件树各不相同,但是依然可以一套脚本跑所有机型,极大的减小了开发工作量。
iOS在线录制的响应速度在业界也是非常领先的,我们可以做到百毫秒内的响应延迟,相比其他方案要提升数十倍的效果。
H5性能测试
H5测试提供了全面的H5测试能力,包括:浏览器兼容性、二级页面遍历、不同容器支持、弱网络支持。测试结果包含了13项性能指标:首资源时间、首次渲染时间、首屏时间、资源加载时间、HTTP请求数、网页大小、DOM节点数、重定向次数、域名数、失败资源数、CPU占用、内存占用、FPS。
为了帮助客户快速提升H5应用性能,我们还提供了多达33项的性能优化建议,让您知道页面哪里做的不好、哪个代码有问题,该怎么去解决?通过优化建议,您可以有针对性的提升网页性能。
另外,为了让大家更清楚的回溯页面加载过程,我们将不同浏览器打开页面的过程录制成了视频。您可以轻松查看加载过程中的每一帧细节。同时,我们继续保留了二级页面遍历,以及页面资源加载瀑布流的功能,保障所有加载细节,一览无余。
图2.4.1 -1 H5测试 加载瀑布流
图2.4.1 -2 H5测试 加载视频
图2.4.1 -3 H5测试 性能指标+修复建议