热门标签 | 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面会刷很多人)

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

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


推荐阅读
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • php7 curl_init(),php7.3curl_init获取301、302跳转后的数据
    最近在做一个蜘蛛项目,发现在抓取数据时,有时会碰到301的页面,原本写的curl_init函数php7-远程获取api接口或网页内容&#x ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
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社区 版权所有