ITPub博客

首页 > 自动化运维 > 大规模网络运维 > 老司机经验:如何做好APP测试?你需要记住这8条法则!

老司机经验:如何做好APP测试?你需要记住这8条法则!

原创 大规模网络运维 作者:博为峰网校 时间:2018-10-11 17:49:56 0 删除 编辑

一说起软件测试,测试员想到肯定是去检查文件,功能,API,性能并确定软件是否安全,以及关于软件特定部分的其他事项。但是对于移动测试,测试员不得不基于用户移动使用模式考虑移动相关的功能。

下面主要说说移动测试,对于产品的手机项目(应用软件),主要是进行系统测试。而针对手机应用软件APP的系统测试,我们通常从如下几个角度开展:功能模块测试、兼容性测试、安装和卸载测试、软件更新测试、性能测试、用户体验性测试、交叉事件测试、用户界面测试等。

作为一名软件质量保证经理,我一心投入iPhone,Android,WindowsPhone7的移动apps和移动webapps。在日常工作以及与其他移动测试专家交流的过程中,我深刻了解了移动测试工作的困难。所以,基于我的工作经验总结了这篇文章,希望可以帮助大家解决一些实践中的问题。有关APP测试的重点,整理一下贴出来给大家看看。

首先看看下面这个图:

这幅图应该能够很明确的展示APP测试的流程了。然后需要说明的是执行测试那一段。因为用的xmind,字数太多图看起来就太小了,所以在这里说一下每个阶段对应的东西。

APP测试的流程

1、UI测试

检查UI图片,icon,文字,布局等UI元素与效果图是否一致。一般UI方面不会存在特别严重的问题,作为建议提给产品就好了。

2、功能测试

检验功能是否符合需求,涉及到UI层,接口,数据,服务端,代码逻辑等。功能方面的缺陷一般被定义为严重缺陷,必须修复。

3、健壮性测试

检验产品在出现异常时的处理机制。同时需要检验出现这些异常场景,或者是比较极限的情况的时候会否出现crash、anr的情况。需要注意一些极限和异常场景,还有中断和弱网的测试。

4、适配

检验产品的兼容性,不同的硬件设备,分辨率,操作系统,屏幕尺寸,手机型号等。安卓这一块儿是不太好做的,国内的定制系统太多了,一般方法都是针对主流机型进行测试。

5、稳定性测试

这里通常使用的是monkey进行测试。之前我也是对monkey不屑一顾,后来经过前辈指点也是发现了它的强大之处。目前也属于正在学习的阶段。主要手段还是通过伪随机事件流,进行大量的点击,滑动等操作,主要是用来检测产品中隐藏的crash、anr的缺陷。

6、性能测试

客户端性能:主要监测,客户端运行时设备的CPU,GPU,流量,耗电量,响应时间等数据。进行数据分析,针对客户端对产品进行优化,从而提升产品的竞争力。再深入的发掘可以分析客户端的性能瓶颈,甚至定位出影响客户端性能的代码。

服务端性能:主要监测,I/O,吞吐量,并发,压力,负载等数据。针对测试结果进行分析,寻找性能瓶颈,完成对性能的优化。主要目的是检查服务端的稳定性,能否达到预期目标,完成预期任务。

7、回归测试

回归测试,主要是针对开发修复的缺陷进行测试。评估改动的影响范围,有目标有针对性的进行测试。其实还需要对老版本的功能、数据等进行回归。

8、上线测试

在发布上线之后,要在生产环境上进行最后一轮的系统测试。我一般是把前面所有做过的东西全部在做一次。

App测试中ios和Android的区别

1、Android长按home键呼出应用列表和切换应用,然后右滑则终止应用;
2、多分辨率测试,Android端20多种,ios较少;
3、手机操作系统,Android较多,ios较少且不能降级,只能单向升级;新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash);
4、操作习惯:Android,Back键是否被重写,测试点击Back键后的反馈是否正确;应用数据从内存移动到SD卡后能否正常运行等;
5、push测试:Android:点击home键,程序后台运行时,此时接收到push,点击后唤醒应用,此时是否可以正确跳转;ios,点击home键关闭程序和屏幕锁屏的情况(红点的显示);
6、安装卸载测试:Android的下载和安装的平台和工具和渠道比较多,ios主要有appstore,iTunes和testflight下载;
7、升级测试:可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本号),对于Android若有内置的应用需检查升级之后内置文件是否匹配(如内置的输入法)
另外:对于测试还需要注意一下几点:
1、并发(中断)测试:闹铃弹出框提示,另一个应用的启动、视频音频的播放,来电、用户正在输入等,语音、录音等的播放时强制其他正在播放的要暂停;
2、数据来源的测试:输入,选择、复制、语音输入,安装不同输入法输入等;
3、push(推送)测试:在开关机、待机状态下执行推送,消息先死及其推送跳转的正确性;应用在开发、未打开状态、应用启动且在后台运行的情况下是push显示和跳转否正确;推送消息阅读前后数字的变化是否正确;多条推送的合集的显示和跳转是否正确;
4、分享跳转:分享后的文案是否正确;分享后跳转是否正确,显示的消息来源是否正确;
5、触屏测试:同时触摸不同的位置或者同时进行不同操作,查看客户端的处理情况,是否会crash等

总结:

也许在工作中,你会觉得开发人员不重视我们做测试的,甚至抱怨测试地位很低等等。其实这个现象挺正常的,当我们基础的测试工作没有做好,线上漏测多,测试结论经常被推翻时,我们在测试方向上的专业性就会受到质疑,人家都不相信你了怎样还能重视你?“学如逆水行舟,不进则退”,资深测试工程师都在不断学习,所以,提升自己的测试水平至关重要!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31407649/viewspace-2216082/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-11-02

  • 博文量
    98
  • 访问量
    33520