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

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

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


推荐阅读
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • Spark与HBase结合处理大规模流量数据结构设计
    本文将详细介绍如何利用Spark和HBase进行大规模流量数据的分析与处理,包括数据结构的设计和优化方法。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 【实例简介】本文详细介绍了如何在PHP中实现微信支付的退款功能,并提供了订单创建类的完整代码及调用示例。在配置过程中,需确保正确设置相关参数,特别是证书路径应根据项目实际情况进行调整。为了保证系统的安全性,存放证书的目录需要设置为可读权限。值得注意的是,普通支付操作无需证书,但在执行退款操作时必须提供证书。此外,本文还对常见的错误处理和调试技巧进行了说明,帮助开发者快速定位和解决问题。 ... [详细]
  • 在处理大规模数据数组时,优化分页组件对于提高页面加载速度和用户体验至关重要。本文探讨了如何通过高效的分页策略,减少数据渲染的负担,提升应用性能。具体方法包括懒加载、虚拟滚动和数据预取等技术,这些技术能够显著降低内存占用和提升响应速度。通过实际案例分析,展示了这些优化措施的有效性和可行性。 ... [详细]
  • 本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ... [详细]
  • 本文最初发表在Thorben Janssen的Java EE博客上,每周都会分享最新的Java新闻和动态。 ... [详细]
  • Dell Latitude 5290 2-in-1 平板电脑黑苹果体验评测
    本文基于notebookcheck的详细数据和个人实际使用体验,对Dell Latitude 5290 2-in-1平板电脑进行评测。评测内容包括外观设计、散热性能、基准测试、游戏表现和续航能力等方面,旨在为读者提供全面的参考。 ... [详细]
  • 微信公众号推送模板40036问题
    返回码错误码描述说明40001invalidcredential不合法的调用凭证40002invalidgrant_type不合法的grant_type40003invalidop ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
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社区 版权所有