关于如何来测一款app的思考
最近工作当中需要整体测一遍app,需要全方面思考并且尽可能覆盖所有待测点,因为整理总结了这篇关于app测试的总体大纲
一、功能测试
1.1界面测试
1.1.1导航测试
---是否易于导航、导航是否直观
---不同页面之间的连接需要导航
---是否需要搜索引擎
---菜单、列表、窗口、对话框、按钮等等
1.1.2图形测试
---根据窗口大小自适应
---页面标签风格是否统一
---页面的图片要求整体美观有序
1.1.3内容测试
---文字内容与系统功能是否一致
---文字是否有错别字
---文字长度是否加以限制
---是否有敏感词汇、关键词、隐私等图片
1.2基础功能测试
1.2.1安装
---直接从App Store下载,检查是否支持正常安装、启动、运行、退出
---同样的应用安装到不同版本的手机上,覆盖主流的IOS系统,检查应用是否正常
---从Android应用市场直接下载,检查是否支持正常安装、启动、运行、退出
---从第三方网址下载的安装包,检查是否支持正常安装、启动、运行、退出
---同样的应用安装在不同的Android设备上,覆盖主流的Android机型(华米OV)
---同样的应用安装在不同的Android系统上,覆盖主流的Android系统
---安装过程中,是否可以取消安装
---安装过程中,手机存储空间不足,是否安装成功还是给出提示
---安装过程中,手机本身的意外情况如:死机、断电、关机、重启
---安装过程中,外部的意外情况如:断网,弱网,网络中断后又恢复
1.2.2卸载
---手动长按删除,检查是否有卸载确认信息弹出
---卸载过程中,是否支持取消卸载
---卸载过程中,手机本身的意外情况如:死机、断电、关机、重启
---卸载过程中,外部的意外情况如:断网,弱网,网络中断后又恢复
1.2.3升级更新
---当APP有新版本更新时,会出现更新提示,以提醒用户
---当版本为非强制升级时,用户可以取消更新,老版本能正常使用。用户下次启动app时,仍能出现更新提示
---当版本为强制升级时,当给出强制更新后用户没有更新完成就退出app,下次启动app时,仍让出现强制升级提示
---当版本更新后,检查功能是否正常
---更新升级过程中的意外情况,如死机、断电、重启
1.2.4登录
---系统是否允许多次非法的登陆,是否有次数限制
---使用已经登陆的账号登陆系统是否正确处理,一号一机,互斥原则
---使用禁用的账号登陆系统是否正确处理
---登录账号和密码的错误排列组合
---原用户已不存在,再次登录
---登录超时的处理
---防止爬虫,登录时是否有图形验证码校验
1.2.5注销
---注销是否有二次提示弹窗口
---用户注销后,是否自动退出
---注销原用户,新用户系统能否正确处理
---使用错误的账号、密码、无权限的被禁用的账号进行注销
1.2.6 push
---检查push消息是否按照指定的业务规则发送
---检查不接收推送消息后,用户不会再接收到push
---检查在设置免打扰的时间段内,用户不会再接收到push;非免打扰时间段,用户可以正常接收
---push消息只针对登录用户的情况,支只对app上最后一个登录用户进行消息推送
---测试push时,需要采用真机测试
1.3各项业务测试
---每个页面的功能,与需求文档一致
---页面与页面之间的关联,数据联动
---用户界面、后台管理界面,数据库校验的一致性
---特殊操作测试:手势操作是否正常,长按、拖拽、滑动、放大
二、交叉事件测试
2.1交互测试
备注说明:该app与其他的应用交互是否正常
---调用系统相机,检查是否能够正常打开相机,并且正常拍照
---调用系统相册,检查是否能够正常打开相册,并且上传照片或视频
---调用通讯录,检查是否能够正常打开通讯录、插入记录
2.2交叉事件测试
备注说明:在app运行过程中,其他事件或者应用,中断了当前app应用的执行。跟手机固有的功能模块,进行交互使用,像音量的调节,锁屏,旋转,返回键,主菜单键,截图,闹钟,待机,插拔数据线,耳机,wifi/3G/4G/5G、蓝牙,电话,短信,相机、通讯录、低电量
---在app运行时,接听/拨打电话
---在app运行时,发送/接收短信
---在app运行时,发生网络切换等等
2.3前后台的切换
---APP切换到后台,再回到APP,检查是否停留在上一次操作页面
---APP切换到后台,再回到APP,检查功能及应用状态是否正常,尤其是从后台切回前台数据有自动更新时
---APP切换到后台,再回到APP,注意软件是否崩溃,自动退出
---杀掉APP进程后,再开启APP,检查APP是否能正常启动
---出现必须处理的提示框后,切换到后台,再切回来,检查提示框是否还存在,有时会出现应用自动跳过提示框的缺陷
---对于有数据更新数据交换的页面,每一个页面都必须进行前后台切换、锁屏的测试,这种页面最容易出现崩溃
三、弱网测试
3.1弱网功能测试
①使用较弱的wifi、2G、3G、4G、5G
②切换网络测试 :
wifi--->2G/3G/4G/5G
2G/3G/4G/5G--->wifi
wifi--->无网
2G/3G/4G/5G--->无网
强wifi--->弱wifi
无网--->wifi
无网--->2G/3G/4G/5G
弱wifi--->强wifi
3.2无网测试
①直接断网
②断网重连
3.3弱网用户体验测试
页面显示
---初始化从零加载应显示异常提示
---页面加载部分数据后断网,已加载数据是否正常展示,未加载部分是否符合设计
---已加载所有数据后,断网重连刷新页面是否正常显示还是覆盖已有数据
---友好加载提示:进度条
---超时机制
---重连机制
3.4常用模拟弱网测试工具
charles、
Fiddler、
IOS自带开发者工具:Network Link Conditioner、
Facebook开源的Augmented Traffic Control (ATC)工具
四、权限测试
备注说明:设置某个 App 是否可以获取该权限,例如是否可访问通讯录、相册、照相机等
4.1主要权限
主要包括以下权限:
---存储空间权限
---照片相机权限
---获取设备识别码权限
---通知权限
---位置权限
---麦克风权限
---通讯录权限
---网络权限
---短信读取权限
4.2权限设置
---永不
---读取、写入
---权限开、权限关、使用时主动询问、使用时被动触发授权
五、性能测试
5.1响应时间
---app启动:首次安装启动、冷启动、暖启动、热启动
---app交互:事件响应、内部加载速度、首屏渲染、过度渲染、帧率fps、CPU占用率、流量、耗电量
---接口性能:DNS加载时间、https的请求次数、download时间
---H5性能:cache、资源加载时间
5.2启动性能
重点是要查看启动时间
---首次安装启动:首次安装会耗费较多的时间初始化
---冷启动:进程不存在
---暖启动:进程存在,界面不存在
---首屏启动:第一屏加载完整
5.3接口性能
单个接口的数据返回时间,请参照接口文档来逐一测试,全覆盖
5.4测试工具
---IOS:通过XCODE工具查看内存消耗、CPU、GPU
---Android:android studio工具的DDMS查看
六、安全测试
6.1授权验证
---扣费风险:发送短信、拨打电话、自动续费
---隐私泄露风险:访问手机信息、访问联系人信息
---对App的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测
---检测App的用户授权级别、数据泄漏、非法授权访问等
6.2数据传输
---将密码或其他的敏感数据输人到app时, 其不会被储存在设备中, 同时密码也不会被解码
---输人的密码将不以明文形式进行显示
---密码, 信用卡明细, 或其他的敏感数据将不被储存在它们预输入的位置上
---不同的app的个人身份证或密码长度必需至少在4一8 个数字长度之间
---备份应该加密, 恢复数据应考虑恢复过程的异常通讯中断等, 数据恢复后再使用前应该经过校验
---app不应该模拟进行安全警告误导用户,利用显示误导信息欺骗用户
---在数据删除之前,app应当通知用户或者app提供一个“取消”命令的操作
---app应当有异常保护 ---如果数据库中重要的数据正要被重写, 应及时告知用户
6.3通讯安全
---在运行其软件过程中, 如果有来电、SMS、EMS、MMS、蓝牙、红外等通讯或充电时, 是否能暂停程序,优先处理通信, 并在处理完毕后能正常恢复软件, 继续其原来的功能
---当创立连接时, app能够处理因为网络连接中断, 进而告诉用户连接中断的情况
---app将保持工作到通讯超时, 进而发送给用户一个错误信息指示有连接错误
---应能处理通讯延时或中断,网络异常和及时将异常情况通报用户
---App和后台服务一般都是通过HTTP来交互的,验证HTTP环境下是否正常;
---公共免费网络环境中(如:麦当劳、星巴克等)都要输入用户名和密码,通过SSL认证来访问网络,需要对使用HTTP Client的library异常作捕获处理。
七、兼容性测试
---兼容不同的操作系统:IOS、Andriod、HarmonyOS
---兼容不同的机型:iphone、华米VO、三星
---兼容不同的屏幕分辨率:各类手机的尺寸大小
---兼容不同的APP:与市场上主流的100款软件同时安装在一个手机上,是否会被其他app误认为病毒软件
---兼容不同的语言:同一操作系统中,不同语言设置的兼容性
---兼容不同的网络:保证wifi、3G、4G、5G、GPRS等不同网络的可连接性
八、稳定性测试
8.1测试方案
使用monkey测试app的稳定性:运行1000次,大概八小时,查看日志文件,检查是否出现crash、anr、exception、dump等单词
8.2影响app稳定性
①内存问题
---app所需内存超过设备限制,导致app崩溃闪退
---app内存泄漏,耗尽设备全部内存导致整个系统崩溃
---app内存越界,使用了非授权的内存位置导致app崩溃
②程序逻辑错误
---数组越界,如负数索引、超过数组长度的索引
---堆栈溢出,如堆栈区缓冲区被填满,堆栈空时取数据等等
---并发操作,如并发时调用了一个已释放的指针
---逻辑错误,如0除作为除数等等
③交互逻辑
---app界面交换操作滑动导致app崩溃
---未处理中断或异常,如切后台,接电话,断网等用户的非预期操作
④网络因素
---网络不佳、弱网环境,无法达到app所需的快速响应时间,导致app崩溃
---不同网络的切换
九、其他测试场景
9.1流量测试
备注说明:为什么要做流量测试?如果一款app运行过程中,使用的流量过多,那么大概率不会受到用户的欢迎
---app安装完成后,首次启动时耗用的流量
---app安装包本身的空间大小,下载耗用的流量
---app升级更新时耗用的流量 ---app执行业务操作引起的流量
---app在后台运行时消耗的流量
9.2耗电量测试
备注说明:为什么要做耗电量测试?如果在功能类似的情况下,app特别耗电造成设备发热严重,那么用户大概率会卸载这款应用改用其他app软件
---app运行但没有执行业务操作时的耗电量
---app运行且密集执行业务操作时的耗电量
---app在后台运行时的耗电量
关于如何来测一款app的思考的更多相关文章
- iOS设计 - 一款APP从设计稿到切图过程概述
这篇文章站在GUI设计师的角度概述了APP从项目启动到切片输出的过程,相当于工作流程的介绍.这里写的不是一种规范,只是一种工作方法,加上技术的更新是非常快的,大家在具体工作中,一定要灵活运用. 这里我 ...
- js判断移动端是否安装某款app的多种方法
本文实例讲解了js判断移动端是否安装某款app的多种方法,分享给大家供大家参考,具体内容如下 第一种方法: 一:判断是那种设备 ? || u.indexOf(; //android终端或者uc浏览器 ...
- 关于工伤事故索赔计算很好用的一款APP
关于工伤事故索赔计算很好用的一款APP.详细介绍工伤伤残等级评估 工伤计算器根据国家颁布<劳动能力鉴定 职工工伤与职业病致残等级>,通过关键字检索,快速评估工伤伤残等级. 软件说明: 1 ...
- fir.im Weekly - 如果让你重新做一款APP
设想下:如果让你重新做一款 APP ,你会用到哪些开发.设计等资源和工具? 本期的 Weekly 为大家分享了最近不错的 APP 开发资源,大部分是关于 iOS 开发. Android 开发.UI设计 ...
- 开发者必知的8款App快速开发工具
开发者必知的8款App快速开发工具 “我有一个好创意,就差一个CTO……” “原生APP开发难度大,周期长,成本高,还没上线市场已经被占领了.” “APP版本迭代更新,都是企业的一道难关,没有一个一劳 ...
- 一款APP从设计稿到切图过程全方位揭秘 Mark
纯干货!一款APP从设计稿到切图过程全方位揭秘 @BAT_LCK:我本身是一名GUI设计师,所以我只站在GUI设计师的角度去把APP从项目启动到切片输出的过程写一写,相当于工作流程的介绍吧.公司不 ...
- 工资不高也要给自己放假 这几款APP估计你用得上
我是这样的一个人,我宁愿工资不高,只要给我足够的假期,那我就满足了.都说上班就是为了赚钱,但如果身体不好,赚再多的钱也是无福享受,所以建议各位,有机会的话,一定要抽出时间去旅游,去放松. 现在我们外出 ...
- 教育类APP开发现新增长,多款APP该如何突围?
"十二五"以来,国家共出台相关的重大教育政策文件741个,而进入到"十三五"时期教育领域综合改革深入推进的关键期,不断促进教育现代化的实现.加快迈入人力资源强国 ...
- 如何设计一款APP,才能吸引用户眼球
有APP分析机构研究表明,人们每天耗费在手机和平板上的平均时长为158分钟,其中127分钟是耗费在各类APP中,而仅有31分钟是花费在浏览网页上.随着人们对互联网的依赖性越来越强,移动APP发展迅速已 ...
- 开发一款APP所需要的时间
"要多少钱""要多少时间"这应该是一个企业在打算开发一款APP时问到最多的问题了.的确,现在的人不管做什么事情都讲究计划,更何况在这个时间就是金钱的时代,企业如 ...
随机推荐
- Singleton Pattern 单例模式简介与 C# 示例【创建型】【设计模式来了】
〇.简介 1.什么是单例模式? 一句话解释: 单一的类,只能自己来创建唯一的一个对象. 单例模式(Singleton Pattern)是日常开发中最简单的设计模式之一.这种类型的设计模式属于创建型 ...
- 【博客重构之路】webman-admin安装指南
原文地址[博客重构之路]webman-admin安装指南 视频地址[bilibili] webman是什么 webman是一款基于workerman开发的高性能HTTP服务框架.webman用于替代传 ...
- ctfshow--web入门--XXE
ctfshow--web入门--XXE web373 源码 <?php error_reporting(0); libxml_disable_entity_loader(false); //允许 ...
- 基于C#的消息处理的应用程序 - 开源研究系列文章
今天讲讲基于C#里的基于消息处理的应用程序的一个例子. 我们知道,Windows操作系统的程序是基于消息处理的.也就是说,程序接收到消息代码定义,然后根据消息代码定义去处理对应的操作.前面有一个博文例 ...
- 12、Spring之基于xml的AOP
阅读本文前,建议先阅读Spring之基于注解的AOP 12.1.环境搭建 创建名为spring_aop_xml的新module,过程参考9.1节 12.1.1.配置打包方式和依赖 <?xml v ...
- CF939F Cutlet 题解
题意简述 有一个正反面都为 \(0\) 的卡片,每过 \(1\) 分朝下那一面的数值就会增加 \(1\),你可以在几个区间的时间内翻转卡片,求经过 \(2n\) 秒后能否让这个卡片的正反面的数都为 \ ...
- Selenium 学习笔记
Selenium 学习笔记 Selenium 框架是时下在 Web 领域中被使用得最为广泛的自动化测试工具集之一,它能帮助程序员们面向指定的 Web 前端应用快速地开发出自动化测试用例,且能实现跨各种 ...
- HDLbits_Conwaylife
题目介绍 题目链接 Conwaylife 简介 题目要求我们实现一个康威生命游戏的电路. 该游戏在一个二维网格空间中进行,在该题目中是 16 * 16 的大小,每一个格子都有两种状态(0 或 1),代 ...
- 图解 LeetCode 算法汇总——回溯
本文首发公众号:小码A梦 回溯算法是一种常见的算法,常见用于解决排列组合.排列问题.搜索问题等算法,在一个搜索空间中寻找所有的可能的解.通过向分支不断尝试获取所有的解,然后找到合适的解,找完一个分支后 ...
- python一键过杀软
python过杀软新 利用python加载shellcode过360.火绒等杀软 先上代码 将以下代码保存到 mt.py import base64 import os import shutil b ...