浅谈移动互联网App测试

简介: 该篇从各维度介绍了常见的移动互联网测试方法,测试思路可以借鉴。

前言

在移动互联网高速发展的今天,测试作为技术研发流程中最重要的环节之一,其地位是不言而喻的。一个测试人员需要具备什么样的技术能力,怎么样快速对移动互联网测试有一个全面的认识和学习,是测试人员必须面对和考虑的,也给测试人员提出了新的挑战。

功能自动化测试

如果仅仅依靠纯手工的测试,很快就会面临瓶颈,因为每个功能几乎都要经过 bug修复、验证和回归的过程。另外针对接口协议的验证,也必须依赖自动化才能验证。

移动互联网的产品和Web互联网产品类似,后台都有大量的接口提供相应的服务,很多的业务逻辑都是放在后台来处理的,所以可以针对这部分逻辑做轻量级的接口自动化测试。技术方案上,从界面发起相关请求的做法效率不高且不够稳定,所以我们一般采用直接从接口层面发起请求来验证。

除了接口的自动化,App UI 自动化也可以帮助快速地进行App功能的回归。考虑到UI自动化用例建设和维护成本,可以针对相对稳定的功能进行App UI 自动化用例建设,这些用例除了UI的自动化验证之外,持续集成和兼容性测试中也能发挥他们的价值。目前业界用的比较多的App UI自动化测试框架有Robotium和Appium,Robotium相对原生的UI自动化测试框架,提供了更友好的定位控件的方法,在写自动化脚本的时候建议使用Robotium类库来提高测试效率。Appium框架是一个开源的重量级的自动化测试框架,支持iOS和Android等平台的自动化测试,支持跨平台,支持真机和模拟器,也支持多种语言编写测试脚本。每种测试框架都有其优缺点,可以根据实际的项目来挑选适合自己的。

性能测试

产品经过了功能层面的验证,还达不到发布的要求,还有很多影响用户体验的问题需要重点关注,比如App使用时不流畅,操作时服务端响应慢,高峰期使用应用频繁报错,莫名闪退,App使用一段时间后占用内存过高,界面打开速度变慢等等。这些问题虽然不关乎功能,但很有可能造成用户的流失,影响产品的口碑。所以我们需要做充分的性能测试来规避相关风险。

性能测试是一个非常综合的测试技术,涉及面广,测试人员需要有一定的积累才能发现隐藏较深的问题,对于移动App的性能测试,分为Web前端的性能测试、App端的性能测试,后台服务的性能测试。Web前端的性能测试已经较为成熟,Fiddler、FireBug等工具都能辅助测试。App端的性能测试在这三项中是最重要的,页面渲染的时间,CPU的使用情况、内存泄露,都会直接影响到App的运行性能,甚至导致程序崩溃。测试的时候可以借助一些工具帮助分析内存使用情况。基于后台服务的性能测试主要是从负载、压力、持久性等方面量化地评估系统的响应时间和容量等指标。

专项测试

针对某个特殊问题进行的测试,我们称为专项测试,它是移动互联网产品中重要的测试类型,可以从不同的维度发现更多深层次的问题,必不可少。主要有以下几类:

兼容性测试

随着终端设备的型号多样化,用户多了以后自然而然就会遇到兼容性问题,因此需要覆盖不同的软硬件环境来进行兼容性测试。操作系统的版本、屏幕分辨率、网络类型、浏览器类型都是需要考虑的。执行方案上,一般会借助UI自动化和云测试平台来进一步提升兼容性测试的效率和覆盖面。

流量测试

App 使用过程中,很多用户会关心流量用了多少,特别是非宽带的流量需要付费时。如果App设计有缺陷,频繁联网去服务端获取信息,会导致流量消耗较快,最终结果是导致用户卸载App。所以流量测试从两个方面入手,前台用户的操作和后台的流量消耗情况。对于Android系统,可以通过系统提供的API接口来获取流量数据,而对于iOS系统,可以通过Instrument自带的Network来查看网络流量。当然还有其他方法,比如可以通过手机抓包、Wifi代理的方式来获取流量数据进行分析。控制流量的策略也有很多,数据压缩、访问控制、缓存、不同访问策略和不同的数据格式等等,在App设计之初最好能提前考虑到这些方面,避免后续架构改动较多带来一定的风险。

电量测试

电量和流量一样,也是用户较为关心的一个方面。耗电太快,也会导致用户流失。Android系统上,可以借助第三方App来评估手机上各个App的耗电情况。针对iOS系统,还是依赖Instrument提供的Energy工具,从多个维度来查看App的耗电情况,同时苹果提供了类库也可以获取当前设备电量信息。

弱网路测试

很多时候,问题总是在环境比较复杂的情况下才会暴露出来,弱网络就是其中之一。与其让用户遇到带来不好的体验,不如在测试阶段模拟弱网络环境,及早解决。iOS系统中自带的开发者选项可以对网络状态进行设置。另外目前还有好多弱网络模拟工具比如Charles可以帮助测试,还可以采用真机模拟弱网络的方式。

稳定性测试

说起移动App稳定性测试,第一个想到的肯定是Monkey测试,Monkey工具使用起来也比较简单,通过命令就可以执行。当应用程序崩溃或者产生了ANR(Application not responding),Monkey就会停止并报错。

安全测试

移动App产品的安全测试主要有以下几个方面:安装包的安全测试,能否反编译、是否签名、权限检查、完整性校验;敏感信息测试,包括数据库、日志、配置文件中的信息;账户安全和数据通信安全;服务端接口的安全测试,常用的SQL注入,XSS跨站脚本攻击、CSRF跨站请求伪造,越权访问。

以上各项测试可以独立执行,也可以交叉结合,构造更加复杂的测试场景。

写在最后

也许这里的技术/工具方案并不是最好的,但是各维度领域的测试思路,希望能对你有所帮助。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
3月前
|
域名解析 JSON 测试技术
常见移动端APP测试场景
常见移动端APP测试场景
|
3月前
|
编解码 搜索推荐 iOS开发
你知道APP UI设计基础知识和测试点吗?
你知道APP UI设计基础知识和测试点吗?
|
22天前
|
XML 测试技术 数据格式
解决 App 自动化测试的常见痛点
在App自动化测试中,常见挑战包括启动加载慢和弹框干扰。为处理弹框,可以创建一个黑名单列表,遍历并点击消除。使用`handleAlertByPageSource()`方法结合`getPageSource()`判断弹框元素在当前页面的存在性,提高效率。对于首页加载延迟,使用显示等待特定元素如`user_profile_container`,但需注意弹框可能阻止元素定位。因此,结合PageSource判断首页元素和弹框,确保加载完成判断的准确性。通过这样的优化,能更有效地处理自动化测试中的中断问题。
14 1
|
23天前
|
监控 安全 Shell
深入探究App压力测试的关键要点:从零开始学习Monkey
Monkey是Google的自动化测试工具,用于模拟用户随机事件以测试应用的稳定性和压力。它可以在模拟器或设备上运行,通过随机点击发现潜在问题。
24 1
|
29天前
|
测试技术 Android开发
快速上手App自动化测试利器,Toast原理解析及操作实例
`Toast`是Android中的轻量级通知,短暂显示在屏幕任意位置,1-2秒后自动消失,不获取焦点且不可点击。Appium通过uiautomator2在控件树中处理Toast。在测试中,可设置隐式等待,利用XPath或Accessibility ID定位Toast元素进行检测和验证。示例代码展示了如何初始化driver,点击触发Toast,以及如何定位并读取Toast文本。
22 3
|
2月前
|
测试技术 UED
APP交互性如何测试?
APP交互性如何测试?
|
2月前
|
监控 测试技术 Shell
APP的CPU,内存和流量如何测试?
APP的CPU,内存和流量如何测试?
|
2月前
|
监控 测试技术
APP的稳定性测试如何做?
APP的稳定性测试如何做?
|
2月前
|
Web App开发 传感器 Android开发
APP兼容性测试都需要考虑哪些场景?
APP兼容性测试都需要考虑哪些场景?
|
2月前
|
Java 测试技术 API
安卓APP和iOS APP在测试上的区别是什么?
安卓APP和iOS APP在测试上的区别是什么?