Python侧开28期-偕行-学习笔记-用户端功能测试

用户端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)其他

  • 内存:太占用手机内存
  • 电量流量:太耗电和流量
  • 白屏:在使用应用的过程中,点击某一个事件进入的页面现白屏的闪动等