一说起软件测试,测试员想到肯定是去检查文件,功能,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等
总结:
也许在工作中,你会觉得开发人员不重视我们做测试的,甚至抱怨测试地位很低等等。其实这个现象挺正常的,当我们基础的测试工作没有做好,线上漏测多,测试结论经常被推翻时,我们在测试方向上的专业性就会受到质疑,人家都不相信你了怎样还能重视你?“学如逆水行舟,不进则退”,资深测试工程师都在不断学习,所以,提升自己的测试水平至关重要!
欢迎加入 51软件测试大家庭,在这里你将获得【最新行业资讯】,【免费测试工具安装包】,【软件测试技术干货】,【面试求职技巧】... 51与你共同学习,一起成长!期待你的加入: QQ 群: 755431660