APP自动化测试很重要?一文带你搞懂怎么测APP

Posted 测试员小静

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APP自动化测试很重要?一文带你搞懂怎么测APP相关的知识,希望对你有一定的参考价值。

现在是移动互联网的时代,移动端APP产品在不断推陈出新,相应的APP测试人员也变得炙手可热。今天小濠跟大家全面谈谈APP应该怎么做测试。

一、首先,移动测试要注意以下几点:

移动APP测试中如何设计Test Case?

移动互联网开发节奏很快,而且版本快速、频繁迭代,建议放弃传统的Tese Case,不需要写详细的测试用例。而采用feature list。比如使用“思维导图+功能点”的方法。这样能节省大量的时间。而且思维导图比较直观,不容易漏掉功能。

让自己成为真实的用户

大部分移动APP都是面向普通用户的,而不是企业用户。既要把自己当作APP的真实用户,又得具有测试员的思维,这样便于彻底了解业务逻辑。

关注用户体验测试

用户体验是APP成功的关键,在这么小的屏幕上,用户体验关系着用户对APP的满意度。

少做UI自动化,多做后台接口的自动化

UI自动化大部分的时候,都没什么意义,投入大,收益少。应该多关注后台接口的自动化测试。

重要的原则:测试你最终要发布给用户的APP版本!

每日构建,每日测试的理念已经深入人心,很多时候我们测试的是APP的开发和Debug版本。而不是最终的Release版本,在打包最终Release版本时。我们一般还要加上数字签名,或者再加上代码混淆。那么最终的发布版本和Debug的版本肯定有不一致的地方。很可能最终的版本会有问题。比如Debug版本是完全工作正常,但是上线后才发现会导致“崩溃”。

HTTP,HTTPS都要覆盖

许多APP和后台服务都是通过HTTP来交互的,正常情况下都一切正常,为什么需要测试HTTPS环境?一些免费上网的环境中,比如,麦当劳,万达商城,他们的网络环境都需要输入用户名和密码,通过SSL认证来访问网络。如果你使用HTTP Client 的Library对这种异常没有做捕获处理,那么你的APP,肯定要“崩溃”。

进行网络异常,服务器宕机或出现404,502情况下的测试

后台服务的稳定性是你有时候很难去控制的,尤其是牵扯到DNS,空间服务商的情况下。如果出现DNS解析故障,碰到这种情况,你对后台API的请求很可能就会出现404错误,而你和API交互的数据应该是某种固定格式(例如JSON和XML),这样你的数据解析可能会出现错误,抛出异常。如果你对异常没有进行正确的处理可能会导致程序不能正常工作。

2G、3G、4G、wifi都要覆盖

这四者之间不仅仅是网络速度的差别,它们代表了不同的网络环境。经常会有些APP能在3G网络下运行,但是不能在wifi下运行。所以在需要在不同的网络环境下执行check。

APPStore冗长的审核机制

一旦你的应用出现严重系统错误,你修复版本基本不可能在很短时间内在APP Store上架,那么你的用户就会离去。

二、至于APP测试要测试哪些点,请接着往下看:

APP测试的方面很多,如:功能测试(功能点测试、流程测试)、兼容性测试、交叉测试、安装卸载测试(包括应用的升级)、压力测试(主要指,接口压力测试)、安全测试等等。

功能测试: 对具体功能点一一测试,验证确认每个点都实现满足需求的相应功能。

APP兼容性测试: 根据屏幕尺寸、系统进行适配测试;对市场上主流的设备安装应用执行测试(如果有特定针对群体,应该根据实际用户数据接入设备进行分析,对靠前的机型选择进行适配测试),确保都能正常运行。

压力测试: 用户量大,交互性高的应用需对接口执行压力测试,确应用在海量的用户使用的情况下能正常运行。

UI/UE测试: 主要是一些适配,用户体验方面,交互方面的测试。

用户行为统计测试: 确保手头的行为统计分析定义文档为最新版本,且与开发员手中的文档一致;确保产品经理在文档中所定义的页面在该产品中都是存在的;尽可能真实地模拟用户行为;核对统计日志,确保各项操作所对应的页面ID以及操作ID都是正确的。

安全测试 : 软件权限、数据安全性、通讯安全性、人机接口安全性。

安装卸载测试: 确保应用都能正确安装、卸载,且能正确运行(注意应用的升级测试:升级前后的状态)。

交叉测试: 对于正在运行的应用,若进入短信、电话等其它软件响应的情况,不会影响被测试应用,且会保证应用能正确运行;杀掉进程时再重新打开APP;多个APP切换数据的保存等。

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

异常测试: 多次快速点击切换页面的响应情况?横屏竖屏的快速操作:切换菜单,播放,下载等;服务器宕机或出现404、502等情况下的测试。

弱网测试: APP在2G/3G/4G/wifi下的表现情况,网络环境变化时,APP的应对情况:是否有适当提示?从有网环境到无网环境时,APP的反馈如何?从无网络环境回到有网络环境时,是否能自动加载数据,且多久才能开始加载数据?

电量测试: 设备在不同电量时(低于10%,50%,95%),APP的响应以及操作流畅度;设备在充电时,APP的响应以及操作流畅度;设备意外断电时,APP数据丢失情况等。

三、移动测试设计用例的要点

安装

1、应用程序是否正确安装到设备上;

软件权限

1、扣费风险:包括发送短信、拨打电话、链接网络是否提醒;

2、隐私泄漏风险:包括访问手机信息、访问联系人信息等;

登录

1、删除或修改后的用户、原用户登陆;

2、登录超时处理;

屏幕旋转

1、确认哪些界面是需要允许横屏或者禁止横屏的;

2、将屏幕锁定为竖屏或者横屏,在几个界面跳转,界面是否正常;

3、当适应横屏时,是否对横屏进行了适配;

应用切换

1、APP切换到后台,再回到APP:①、检查功能及应用状态是否正常;②、程序是否崩溃,功能状态是否正常;③、从后台切换到前台,数据有更新的时候,是否自动更新;

2、手机锁屏解屏后,进入APP是否崩溃,功能状态是否正确,尤其是从后台切换到前台,数据有更新的时候;

3、当APP使用过程中有电话进来中断后再切换到APP,功能状态是否正常;

4、切换用户登录后,是否有原用户脏数据;

升级更新

1、是否有完整的升级策略(强制升级,灰度发布);

2、下载升级包过程中是否可以取消、中断;

3、升级包下载是否可以续传;

4、当客户端有新版本时,是否有更新提示;当版本为非强制升级版时,用户可以取消更新,老版本能正常使用,用户在下次启动时,仍能出现更新提示;

5、当给出强制更新后用户没有做更新时,退出客户端;下次启动时,仍出现强制升级提示;

6、当客户端有新版本时,在本地不删除客户端的情况下,直接更新检查是否能正常更新;

7、如果升级有忽略本次版本升级,那么当有新的升级版本时,是否还有升级提示;

消息push

1、不接受推送消息时,用户是否会再接收到push;

2、检查收到的push与用户身份是否相符,也没推送给其他人;

权限测试

1、当某些权限被安全软件或者系统禁止时,是否可以正常使用,需要注意的权限:麦克风/摄像头/定位/短信息等权限;

2、在做兼容性测试时,需要特别注意权限管理较严的Rom,比如魅族在摄像头等权限为默认关闭;

3、第三方安全软件弹框请求禁止权限时,选择后,是否会影响到被测应用的正常流程;

用户体验测试

1、是否有用户引导;

2、菜单层次是否太深;

3、交互流程分支太多;

4、相关选项离的太远;

5、一次性载入太多数据;

6、界面中按钮点击范围是否适中;

性能测试

1、反复/长期操作下(Andriod应用可以考虑monkey测试),系统资源(cpu占用、内存)是否占用异常;

2、cpu占用、内存、流量,耗时等数据,必须有标准和参考值(可以是市场上同类应用的类似操作的表现,或者同应用的不同版本测试);

交叉事件

1、APP运行时,切换网络;

2、APP运行时使用蓝牙传送/接受数据;

3、APP运行时使用相机、计算器等手机自带设备;

兼容性测试

1、不同系统、不同分辨率的兼容性;

网络环境测试

1、无网络时,执行请求,给与友好提示;

2、网络信号不好,检查功能状态是否正常,确保不因提交数据失败而造成crash;检查数据是否一直处于提交状态,有无超时限制;

3、网络信号不好,执行操作后,在回调没有完成的情况下,退出本页面或执行其它操作,有无异常情况;

4、在各种网络环境下(wifi、电信/移动–2G/3G/4G),应用的表现情况;

服务器宕机或404、502等情况下测试

1、当出现域名解析故障时,后台api请求很可能出现404,抛出异常,应用端是否做处理;

其它情况

1、中文字符的处理,是否乱码;

2、提交的信息是否能重复,比如账号名、昵称;

3、昵称中使用输入法的表情,是否可用或限制;

4、回车键检查,在输入结束后直接按回车键,是否生效或报错;

上面是我收集的一些视频资源,在这个过程中帮到了我很多。如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们扣扣群【175317069】,里面有各种软件测试资源和技术讨论。

当然还有面试,面试一般分为技术面和hr面,形式的话很少有群面,少部分企业可能会有一个交叉面,不过总的来说,技术面基本就是考察你的专业技术水平的,hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求,一般来讲,技术的话只要通过了技术面hr面基本上是没有问题(也有少数企业hr面会刷很多人)

我们主要来说技术面,技术面的话主要是考察专业技术知识和水平,上面也是我整理好的精选面试题。

赶快进来学习了解与交流吧。

以上是关于APP自动化测试很重要?一文带你搞懂怎么测APP的主要内容,如果未能解决你的问题,请参考以下文章

一文带你搞懂 API 网关,别给你的系统引入定时炸弹!

一文带你搞懂“缓存策略”

一文带你搞懂 “数据”在内外网环境下怎么流通

面试官最喜欢问的CAS还不会?怎么和他吹牛?!一文带你搞懂CAS

一文带你搞懂RPC到底是个啥

新手编程之旅:MySQL中的关键点!一文带你搞懂它