热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

现在是移动互联网的时代,移动端APP产品在不断推陈出新,相应的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面会刷很多人)

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

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


推荐阅读
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 标题: ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
author-avatar
湘颖宛光秀雅
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有