用户端Web测试
1、web测试设计思路
(1)UI测试
-
UI设计:界面风格统一,与UI设计图一致;
-
文案:界面文案正确,无错别字,语义无歧义;
-
提示:提示、警告或错误说明描述准确;
-
窗口自适应:切换窗口大小,将窗口缩小后,页面是否按比例缩小或出现滚动条,页面是否正确显示;
-
图片加载:所有图片是否都被正确加载;
-
显示兼容:在不同浏览器、分辨率下图片是否能正确显示;
(2)搜索测试
- 模糊查询:是否支持模糊查询,搜索名称中任意一个“关键字”是否都能搜索到;
- 长内容查询:比较长的名称是否能查到;
- 不存在内容:输入系统中不存在与之匹配的条件;
- 多条件切换:不同查询条件之间来回选择,是否出现页面错误;
- 条件组合:查询条件的组合测试;
- 空格:条件前后包含空格是否能够正确搜索;
- 键盘:搜索按钮是否支持键盘Enter,输入框是否支持粘贴搜索;
(3表单测试)
- 按钮:表单按钮功能正常实现;
- 下拉列表:下拉列表数据完整、正确,可以正常选择,是否支持模糊匹配;
- 文件上传:文件上传大小、尺寸、格式、数量、文件内容规则验证;
- 提示信息:表单提交、删除、修改后是否有提示信息;
- 浏览器操作:浏览器的前进、后退、刷新后,是否会造成数据重现或页面报错;
- 键盘功能:提交表单是否支持Enter键、Tab键以及粘贴;
- 数据重复:数据重复检验,比如昵称、用户名等;
- 数据库:提交的数据是否能正确保存到数据库中;
(4)输入域测试
- 类型:输入类型检验,比如大写字母开头、字母数字组合等;
- 长度:输入长度检验,比如8-12位等;
- 必填项:必填项检验,如必填的如果不填写提示及无法进行下一步,非必填不影响下一步等;
- 重复性:重复性检验,不允许重复或必须保持一致等;
- 空格:输入数据前后或者中间包含空格;
- 安全性:密码类输入是否密文显示,传输存储时是否加密传输存储;
(5)分页测试
- 空数据:没有数据时界面展示情况;
- 翻页:翻页后数据展示情况;
- 分页:分页的总页数及当前页数显示是否正确;
- 跳转:是否能正确跳转到指定的页数;
(6)交互性数据测试
- 前后台交互:前台的数据操作是否对后台产生相应正确的影响;
- 权限控制:用户的权限,是否随着授权而变化;
(7)链接测试
- 空链接:有无无法访问或者访问不通的链接;
- 链接查看:是否能直接将对应链接输入浏览器地址栏访问查看;
- 权限控制:链接是否通过权限控制访问或者显示;
- 可配置:链接是否可配置而不是前台代码写死;
- 直接执行:是否直接执行并返回响应结果页还是需要用户复制到浏览器访问;
2、web常见bug解析
(1)页面布局兼容
(2)页面元素控制及逻辑
(3)功能方面不满足需求
(4)代码报错或请求不通
(5)其他
-
更改不同步
- 登录后打开多个页面,各页面间数据不同步;
- 在一个页面中操作修改内容,其他页面同个数据不同步;
-
登录状态不同步
- 打开多个页面,其中一个页面登录成功,另一个页面刷新后没有同步为登录状态;
-
加载时间太长
- 是服务端性能问题还是前端页面的问题
(二)、用户端App测试
1、app测试设计思路
(1)安装、卸载测试
A、安装测试
- 文件:安装后的文件及文件夹是否写入指定的目录;
- 安装选项:软件安装各个选项的组合是否符合概要设计说明;
- 安装向导:安装向导的UI测试;
- 多余文件:安装后没有生成多余的目录结构和文件;
- 系统兼容:在不同操作系统上是否正常安装;
- 厂商兼容:在不同的厂商的手机上是否正常安装;
- 分辨率兼容:在不同分辨率/屏幕尺寸大小的手机上是否正常安装;
- 安装中断:安装过程中,意外情况(如死机、重启、断电、断网、后台运行等)的处理是否符合需求;
- 内存不足:安装空间不足时是否有相应提示;
- 首次安装:首次安装完成后,是否正常启动app;
- 覆盖安装:版本覆盖安装后,是否正常启动app;
- 多方式安装:adb安装、第三方软件安装后是否正启动运行;
- sd卡:Android安装到sd卡之后是否可以正常运行;
B、卸载测试
- 直接卸载:直接卸载是否有提示信息;
- 文件:卸载后安装文件是否全部删除;
- 取消卸载:下载是否支持取消功能,单机取消后卸载的情况;
- 卸载中断:卸载过程中,出现的意外情况(如死机、断电、重启等)的处理是否符合需求说明;
- 第三方卸载:使用第三方卸载软件卸载后是否卸载完全;
(2)UI测试
A、导航测试
- 位置:按钮、对话框、列表、窗口或不同的连接页面之间需要导航;
- 易用:是否易于导航,导航是否直观;
- 搜索引擎:是否需要使用搜索引擎;
- 帮助:导航帮助是否准确直观;
- 风格:导航与页面结构、菜单、连接页面的风格是否一致;
B、图形测试
- 操作方式:横向比较,各控件操作方式统一;
- 自适应:自适应界设计,内容根据窗口大小自适应;
- 风格:页面标签风格是否统一;
- 实际意义:页面的突破应有其实际意义并且要求整体有序美观;
C、内容测试
- 内容:输入框说明文字的内容与系统功能是否一致;
- 长度:文字长度是否加以限制;
- 表意不明:文字内容是否表意不明;
- 错别字:是否有错别字;
- 语言:信息是否为目标国际语言;
(3)业务功能测试
A、运行
- 试运行:安装完成后的试运行是否可正常打开软件;
- 加载:App打开测试,是否有价值状态进度提示;
- 页面切换:App页面间的切换是否流畅,逻辑是否正确;
B、免登陆
- 最近登录:打开App,检查登录状态是否为最近一次登录的用户;
- 切换后台:App切换到后台,再打开App,检查登录状态是否是最近一次登录的用户;
- 杀进程:杀掉App,再打开App,检查登录状态是否是最近一次登录的用户;
- 无网络:无网络情况,打开App,检查登录状态是否是最近一次登录的用户;
- 手机重启:手机重启,打开App,检查登录状态是否是最近一次登录的用户;
- 切换账号:切换账号登录,检查App内登录用户是否为当前登录账号,数据信息和当前账号是否保持一致;
- 退出登录:退出登录后,再打开App,检查App的登录状态是否为未登录状态;
- 多设备:同一个账号登录到多台设备(需求允许),检查多台设备的免登陆状态是否正常;
- 更改密码:用户更改密码后,有数据交互时,检查是否会再次进行身份的验证;
- 登录时效:存在免登录时效限制时,检查在限制的时效外的登录状态是否为未登录;
C、离线浏览-缓存处理
- 本地内容:无网络情况,根据App的特性,是否允许查看存放在本地的部分内容;
- 切换后台:无网络情况,App切换到后台,再切换到前台,能否正常浏览部分内容;
- 杀进程:无网络情况,杀掉App进场,再次打开App,能否正常浏览部分内容;
- 锁屏解锁:无网络情况,手机锁屏解锁后进入App,能否正常浏览部分内容;
- 无网提示:无网络情况,浏览需要请求服务端的内容是,检查是否给予 无网络的提示;
- 瞬间连网:无网络情况,提交表单时,对于后台推送的请求或者前台发送的请求,在联网后是否请求成功;
D、数据
- 正确数据:接受正确的数据输入;
- 错误数据:对一次数据的输入有容错处理并且有相应正确提示;
E、逻辑
- 提示向导:某个操作需要多个步骤实现,应有清楚的提示,或者向导来帮助用户完成;
- 不同入口:某个功能,从不同的入口进入有不同的操作路径,但是逻辑上应该保持一致;
- 流程稳定:系统的各种状态要按照业务流程变化保持稳定;
F、接口
- 请求:发出的请求是正确的;
- 响应及处理:对于响应的数据的处理是正确的;
G、数据更新
a、手动更新
- 数据正确:上拉/下拉/上滑/下滑更新数据,检查更新的数据是否正确;
- 数据复用:更新的列表是否存在头像或者数据复用的问题;
- 动画效果:更新过程中的动画效果是否符合需求设计;
b、自动更新
- 频率及数量:自动更新的频率或数量是否符合需求设计;
- 静默更新/通知更新:自动更新过程中,用户是否可感知,是静默更新还是通知更新;
- 更新时间:根据设定的时间,检查更新的数据是否正确;
H、系统权限
- 定位权限:定位权限关闭,打开App,检查App中涉及定位权限的功能是否正常;
- 网络权限:网络权限关闭,打开App,检查App中涉及网络权限的功能是否正常;
- 相册权限:相册权限关闭,打开App,检查App中涉及相册权限的功能是否正常;
- 相机权限:相机权限关闭,打开App,检查App中涉及相机权限的功能是否正常;
- 通知权限:通知权限关闭,打开App,检查App中涉及通知权限的功能是否正常;
- 通讯录权限:通讯录权限关闭,打开App,检查App中涉及通讯录权限的功能是否正常;
I、注册
- 长度及类型:用户名密码长度,规定的类型;
- 提示页面:注册后的提示及页面;
- 数据一致性:前台注册页面和后台的管理页面数据是否一致;
J、登录
- 合法用户:使用合法的用户登录系统;
- 错误次数:系统是否允许多次非法的登录,是否有次数限制;
- 已登录账号:使用已经登录的账号登录系统是否正确处理;
- 错误或漏填:用户名、密码错误或漏填时能否登录;
- 删除及修改:删除或修改后的用户,原用户名密码登录;
- 不输入密码:不输入用户密码和重复点击“确定/取消”按钮,是否允许登录;
- 登录信息:成功登录后,页面中登录信息是否正确;
- 注销:页面中有注销按钮及相关功能正确;
- 登录超时:登录有效期失效或超时的处理;
(4)交叉事件测试(中断测试)
- 多App:同一手机设备上,多个App同时运行,检查是否影响App应用程序正常功能使用;
- 前后台切换:App使用过程中,接打电话,检查是否影响App正常功能使用;
- 接打电话:App使用过程中,前后台切换,检查是否影响App正常功能使用;
- 收发信息:App使用过程中,收发信息,检查是否影响App正常功能使用;
- 收发邮件:App使用过程中,收发邮件,检查是否影响App正常功能使用;
- 切换网络:App使用过程中,切换网络(4G/wifi),检查是否影响App正常功能使用;
- 蓝牙接传:App使用过程中,蓝牙接传数据,检查是否影响App正常功能使用;
- 系统自带应用:App使用过程中,使用系统相机、计算器、手电筒等自带应用,检查是否影响App正常功能使用;
- 听音乐:App使用过程中,使用其他App听音乐,检查是App的声音功能是否正常;
- 声音调节:App使用过程中,App有声音调大调小功能,建仓App的声音调节功能是否和手机的声音大小调节功能一致;
- 通知打开应用:App使用过程中,通过通知栏通知打开其他应用App,在回到App中,检查是否影响正常功能使用;
(5)兼容性测试
A、硬件兼容性
B、操作系统兼容性
C、分辨率兼容性
D、网络运用商兼容性
E、与其他软件的兼容性
F、软件本身向前或向后兼容
- 升级新版本后,旧版本是否正常运行;
G、数据兼容性
- 版本:新旧版本数据共享;
- 系统:不同系统间的数据共享;
(6)升级更新测试
A、强制更新
- 更新提示及进度条:后台配置了强制更新,打开App后,检查是否有强制更新提示,强制更新提示框是否可以关闭,强制更新是否有进度条显示;
- 更新中断:强制更新过程中出现意外中断,再次打开App,检查App是否再次提示更新;
- 老账号数据:强制更新成功,打开App,检查老账号的数据是否正常,老账号是否可以正常使用App的功能;
- 下架及新增功能:强制更新成功,打开App,检查已经砍掉的功能或者隐藏的功能是否成功去掉或隐藏,检查新增的功能是否按业务需求设计流程操作;
- 版本号:强制更新成功,打开App,检查App的版本号是否限制正确;
- 更新兼容:在不同操作系统、厂商中,检查强制更新是否可以正常更新App;
B、非强制更新
- 更新提示:后台配置了非强制更新,打开App后,检查是否有非强制更新的提示,是否可以关闭提示;
- 历史版本使用:关闭了更新提示,检查历史版本用户是否可以正常使用;
- 关闭更新提示:关闭了更新提示,再次打开App,检查非强制更新的提示是否在弹出;
- 更新中断:更新过程中出现意外,再次打开App,检查App是否再次提示更新,是否还能正常使用;
- 老账号数据:更新成功,打开App,检查老账号的数据是否正常,老账号是否可以正常使用App的功能;
- 下架及新增功能:更新成功,打开App,检查已经砍掉的功能或者隐藏的功能是否成功去掉或隐藏,检查新增的功能是否按业务需求设计流程操作;
- 版本号:强制更新成功,打开App,检查App的版本号是否限制正确;
- 新老版本用户交互:更新成功,检查新版本用户和老版本用户的交互是否正常;
- 更新兼容:在不同操作系统、厂商中,检查强制更新是否可以正常更新App;
- 后台更新:更新过程中将App切换到后台,检查是否能更新成功;
- 检测更新:关闭非强制更新弹窗提示之后,可以在“设置”中点击检查更新,并且更新成功之后功能正常;
(7)消息、通知测试
A、应用图标
- 计数:应用图标上的计数,检查计数的逻辑是否和需求设计一致,检查计数的正确性;
- 计数增加:未打开App,查看计数增加是否和需求设计一致;
- 计数减少:打开App,阅读部分数量通知,在返回到桌面,检查未读计数是否还显示,显示逻辑是否和需求一致;
B、提醒弹窗
- 正常弹窗:App打开,在App应用中操作或者浏览,检查提醒弹框是否正常弹出,是否强制用户做出选择,是否做出选择后弹窗关闭;
- 后台运行:切换App到后台,检查Alert提醒弹框是否会正常弹出;
- 后台切到前台:App从后台切换到前台,检查Alert提醒弹框是否会正常弹出;
- 杀掉进程:杀掉App,再打开App,检查提醒弹框是否会弹出;
- 推送对象:消息推送对象,检查消息推送的对象是否正确;
- 推送时间:消息推送时间,检查消息推送的时间是否和需求一致;
- 切换账号:同一手机,切换账号,打开App,检查提醒弹框是否会弹出;
- 切换手机:同一账号,切换手机,打开App,检查提醒弹框是否会弹出;
C、应用内标记
- 计数:消息标记的数字,检查计数的正确性,计数最多显示多少条,超过后显示的合力性;
- 应用内:在App应用内,收到新消息,检查计数的及时性和正确性;
- 应用外:在App应用外,收到新消息,打开App,检查计数的正确性;
- 未已读标识:消息列表的未读已读消息,检查是否有明确的标识;
- 列表自动更新:消息列表的更新机制,检查有新消息提醒时,消息列表是否会自动更新;
- 计数减少:消息已读好,检查未读消息的计数是否相应的减少;
- 消息类别:消息列表新增了消息类别,检查维度计数汇总是否加入了该消息类别;
- 推送对象:检查消息推送的对象是否正确;
- 推送时间:检查消息推送的时间是否和需求一致;
- 切换账号:同一手机,切换账号,打开App,检查消息的计数是否和当前账号相对应;
- 切换手机:同一账号,切换手机,打开App,检查消息的计数是否和当前账号想对应;
D、Toast
- 弹出:操作完成后,检查Toast消息是否及时弹出,检查Toast消息的文案是否正确;
- 消失:Toast消息弹出后,检查Toast消息是否在几秒后自动消失;
E、push消息(消息栏)
- 发送规则:检查push消息是否安装指定的业务规则发送;
- 不接收:不接收推送消息时,用户不会收到push消息;
- 免打扰:如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接受不到push消息,在非打扰时间段内,用户能正常接收到push消息;
- 针对用户:当push消息时针对登录用户的时候,需要检查收到的push消息与用户身份是否想符合,没有错误的将其他人的消息推送出来;
- 点击跳转:push消息点击可以正确跳转;
(8)性能测试
A、响应能力测试
- 安装卸载:App安装、卸载响应时间;
- 功能操作:App各种功能性操作的响应时间;
B、压力测试
- 反复安装卸载:App反复安装卸载,检查系统资源是否正常;
- 反复操作:其他功能反复进行操作,检查系统资源是否正常;
(9)手势操作测试
- 手势在屏幕上按“方向”滑动;
- 在图片上双击;
- 按住图片下滑;
- 2根手指头分开和聚拢;
- 2根手指头按住屏幕旋转;
- 摇动手机;
- 长按屏幕
(10)安全性测试
A、数据安全性
- 存储在设备:当将密码或其他的性感数据输入到应用程序时,其不会被存储在设备中,同时秘密也不会被解码;
- 密文显示:输入的密码将不以铭文形式进行显示;
- 存储在预输入位置:密码、信用卡明显或其他的铭感数据将不被存储在它们预输入的位置上;
- 写入文件:当应用程序处理西用卡明细或其他的敏感数据时,不以明文形式将数据写到其他单独的文件或者临时文件中,以防止应用程序异常终止而又没有删除这些临时文件,文件可能遭受入侵者的袭击,然后读取这些数据;
- 取消命令:在数据删除之前,应用程序应当通知用户或者应用程序提供一个“取消”命令的操作;
- 通知用户:如果数据库中重要的数据正要被重写,应及时告知用户;
- 提示用户:意外情况下应提示用户;
B、人机接口安全性
- 返回菜单:返回菜单应保持可用;
- 声音设置:声音的设置不影响使用程序的功能;
- 处理非法操作:应用程序必须能够处理不可预知的用户操作,例如错误的操作和同时按下多个键;
2、app常见bug解析
(1)界面展示及兼容性bug
(2)元素样式控制显示bug
(3)功能业务逻辑bug
(4)崩溃bug
(5)性能bug
- app启动:应用程序第一次启动速度慢
- 界面加载:进入到某一个界面加载速度慢
- 动画:启动某一个有动画效果的界面,动画执行过程加载度慢并且有卡顿
- 无响应:响应某一个用户事件时,长时间无响应(ANR)
(6)其他
- 内存:太占用手机内存
- 电量流量:太耗电和流量
- 白屏:在使用应用的过程中,点击某一个事件进入的页面现白屏的闪动等