如何做好App的测试工作

作者:严路
链接:https://www.zhihu.com/question/22195880/answer/93212907
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

腾讯有个平台可以实现适配兼容、服务器压力、性能测试、弱网络、耗电量测试等等,挺全面的。WeTest腾讯质量开放平台,本人亲测过体验还不错。
下面说一下测试一个App具体包括哪些方面,以及每个方面的关键点。

测试人员常被看作bug寻找者,但你曾想过他们实际是如何开展测试的吗?你是否好奇他们究竟都做些什么,以及他们如何在一个典型的技术项目中体现价值?本文将带你经历测试人员的思维过程,探讨他们测试app时的各种考虑。本文的目的在于揭示测试人员的这一思维过程,并展示他们通常所考虑内容的广度和深度。

本文是基于我的工作经验而写的,作为一名敏捷软件开发团队的测试经理,我一心投入测试工作。在与其他app测试专家交流的过程中,我深刻了解到app测试工作的困难。在日常工作的摸索中,我将如何做好app的测试归结为如下内容。


(1)   非功能测试

app测试的一个重要方面是app的非功能需求。移动app在推出市场或进行进一步开发前,测试人员有一定的职责做该类需求的跟踪工作。

早期开发阶段要进行的第一个测试应该是实用性测试。通常是由alpha用户或同事进行的。走进一家咖啡馆或餐厅,问问里面的人他们的app使用情况。让他们看看现阶段开发的第一个版本并收集反馈,看看用户是否能很好地使用新功能,以便得出第一印象。


(2)   功能测试

每项开发的新功能都需要进行测试。app测试中功能测试是一个重要方面。测试人员应该要进行手动测试和后期的自动化测试维护。刚开始测试时,测试员必须把app当做"黑盒"一样进行手动测试,看看提供的功能是否正确并如设计的一样正常运作。除了经典软件测试,像点击按钮、提交订单看看会发生什么,测试员还必须执行更多功能的app测试。

除了整个手动测试过程,测试自动化对移动app也很重要。每个代码变化或新功能都可能影响现存功能及它们的状态。通常手动回归测试时间不够,所以测试员不得不找一个工具去进行自动化回归测试。现在市面上有很多自动化测试工具,有商业的也有开源的,面向各个不同平台,如Android,iPhone,WindowsPhone7,BlackBerry以及移动Webapp。根据开发策略和结构,品质管理测试专家需找出最适合他们环境的自动化工具。


(3)   客户端性能测试

一个App做的好不好,不仅仅只反应在功能上。被测的app在中低端机上的性能表现也很重要。比如:一个很好玩的游戏或应用,只能在高端机上流畅运行,在中低端机上卡的不行,也不会取得好的口碑。

关于App的性能测试,我们比较关注的参数有:CPU,内存,耗电量,流量,FPS。同时也需关注一下App的安装耗时和启动耗时。

目前大家可能比较困惑的一个问题,多高的CPU,内存,耗电量,流量,FPS才算是符合发布的值呢?这里可以告诉大家,可以参考精品游戏的一些数值,将自己研发的app与业内精品的app数据做对比。


(4)   适配兼容测试

市面上目前存在的移动设备五花八门,下图列出过去12个月的移动设备品牌占比情况。



App在经过功能测试后,也需对其进行适配兼容测试需要检查的项主要有以下几点:

(a) 在不同平牌的机型上的安装、拉起、点击和卸载是否正常;

(b) 在不同的操作系统上的安装、拉起、点击和卸载是否正常;

我们在实际测试中,常常会遇到下列问题:

(a) 在某个平牌某个系统上,app安装不上;

(b) 在某个平牌某个系统上,app无法拉起;

(c) 在某个平牌某个系统上,app拉起后无响应或拉起后黑屏、花屏;

(d) 在某个平牌某个系统上,app无法顺利卸载;


腾讯WeTest这个产品可以实现多款热门机型的适配兼容测试。





(5)   弱网络测试

App在使用的过程中,难免会遇到弱网络环境,例如在公车上、在地铁里。在这种情况下,常常会出现网络抖动、上行或下行超时,导致应用中出现丢包。

作为一个测试人员,我们要对app在上线前做一定场景的弱网络环境模型,并查看app在弱网络环境下是否存在某些未知的问题。下面是我们常用的弱网络环境场景:

(a) 3G弱网络信号场景模拟;

(b) 市区低速移动场景模拟;

(c) 郊区高速移动场景模拟;

(d) 请求回应超时_上行超时场景模拟;

(e) 请求回应超时_下行超时场景模拟;

(f) 网络抖动场景模拟;

这个工具也可以解决




(6)   耗电量测试

App在手机上的表现,除了功能外,app是否耗电,也是测试过程中重点要关注的一项。手机设备在满电的时候,这个App能玩多久;App每小时的耗电是多少;App在某个场景挂机10分钟耗电量是多少;这些都是我们平时在耗电量测试中比较关注的点。


(7)   协议测试

模拟客户端直接发送协议包给服务器,看看服务器是否有一定的校验,认不认客户端发过来的数据。协议测试,主要是为了处理用户发送恶意协议到服务器,骗过服务器的校验。


(8) 安全测试

App在上线前,都需要做详细的安全测试。安全测试主要为了检测应用是否容易被外界破解;是否存在被恶意代码注入的风险;上线后外挂的风险高不高等。


(9) 服务器性能测试

服务器性能测试,主要包含单机容量测试和24小时稳定性测试。单机容量测试,可以检测到单机服务器在90%的响应时间和成功率都达标的前提下,能够承载多少用户量。使用特定游戏模型压测24小时,服务无重启,内存无泄漏,并且各事务成功率达标。

这个可以在WeTest入口预约。




(10) 服务器容灾测试

服务器容灾测试,主要指某个服务进程奔溃掉后,是否具有自行恢复能力。比如游戏逻辑进程消失后,是否会自动拉起;memcached崩溃时,是否会重新启动,是否会对所有玩家有影响。这些都是app测试过程中需要考虑的因素。


(11) 中断测试

针对智能终端应用的服务等级划分方式及实时特性所提出的测试方法,如:App在前台和后台运行状态时与来电、文件下载、音乐收听等关键运用的交互情况测试等。测试电话,短信,彩信,微博或其他通知进来时app的反应。


(12) 上线后期的舆情跟踪

新的app上线后,用户对此应用的评价,存在哪些测试期间未察觉的Bug,论坛上对于该应用热门的帖子有哪些,应用商店中该应用的口碑如何等,都是app在上线后,测试人员需要关注的点。若需要测试期间未发现的Bug,需要新测试服进行确认并根据该问题的修复。


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页