微信聊天窗口测试用例
以前没测过客户端的测试,昨天面试被问到聊天窗口测试场景设计,感觉自己答的不好,结束后上网查了一下客户端/app测试的要点,按照测试策略来分,主要涉及到如下测试类型:
1、功能测试
2、性能测试
3、界面测试
4、权限测试
5、兼容性测试
6、网络测试
7、异常情况测试
8、易用性测试
9、安全性测试
10、交互性测试
11、稳定性测试
微信聊天窗口的交互测试和易用性测试可以包含在功能测试中。按照测试策略列出以下测试用例:
功能测试
文字消息:
1、发送文字、数字、英文、表情、特殊字符、纯空格、tab,及各种类型字符混合消息,是否发送成功。
2、发送空消息,不允许发送。
3、发送最大长度消息,边界值测试,界点及超出,是否发送成功。
4、是否能够接收对端发送的文字、数字、英文、表情、特殊字符、纯空格、tab,及各种类型字符混合消息。
5、发送链接是否能正常打开、复制、粘贴。
6、消息在指定时间内是否可以撤回,超过时间不能撤回。
7、消息是否可删除,删除后不显示。
8、收发消息是否有提示,已读消息是否显示已读。
9、如果发送失败,是否支持重发。
10、消息较多时,是否支持一键回到之前浏览位置。
11、是否支持查找消息记录。
12、互相是好友的情况下是否发消息正常,未加好友情况下,加好友功能是否正常。
13、收到的消息是否能转发。
14、发送消息被视频请求、电话打断,是否有提示,结束通话后是否回到当前聊天界面。
图片/视频消息:
1、发送图片视频不能为空。
2、支持的多种图片/视频格式是否成功发送和接收。
3、支持的最大图片/视频大小边界值测试,支持原图发送。
4、最多同时发送的图片/视频个数。
5、相册选图和相机拍摄图片/视频发送。
6、发送视频图片过程中切出窗口,传送是否中断,还是后台继续发送。
7、发送视频图片过程中有电话或聊天请求进入,是否有提示,传送是否中断,还是后台继续发送。
8、消息在指定时间内是否可以撤回,超过时间不能撤回。
9、消息是否可删除,删除后不显示。
10、收发消息是否有提示,已读消息是否显示已读。
11、如果发送失败,是否支持重发。
语音消息
1、不支持空消息发送。
2、不支持时间过短语音发送,有提示。
3、不支持大于60秒语音,边界值测试。
4、语音消息转文字。
5、语音消息录制过程中有电话或视频聊天请求进入,是否有提示,是否会被打断,若打断是丢掉消息还是发送已完成部分。
6、消息在指定时间内是否可以撤回,超过时间不能撤回。
7、消息是否可删除,删除后不显示。
8、收发消息是否有提示,已读消息是否显示已读。
9、如果发送失败,是否支持重发。
语音聊天、视频聊天
1、拨打语音视频聊天,接收方是否有提示,没接通是否双方都正确显示。
2、视频语音之间相互切换。
3、语音视频聊天被打断(有电话进入或别的视频语音聊天请求)是否会被强制中断,是否有提示接收新的请求。
群组消息
1、群发消息是否群里所有人都能收到,是否能收到群里其他所有人发的消息。
2、群主公告是否显示正常。
3、@某个成员/某些成员/所有人,是否指定的人能收到消息提醒,别人收不到。
4、发送群视频、群语音是否所有成员能进入聊天。
5、群成员统计是否正确,新加成员,删除成员,统计是否正确。
6、新加成员/删除成员,是否能够正常接收/不再接收群里消息。
7、是否能按照成员搜索聊天记录。
其他功能:
1、红包、转账、位置、名片等功能是否正常使用。
性能测试:
1、对端同时发多条消息,接收顺序是否正确。
2、是否能够在要求时间内收到消息(文字语音图片视频)。
权限测试:
1、电脑手机等多台设备同时登录,发送消息。
2、换设备登录同一个账号,历史聊天记录是否仍然存在。
安全性测试:
1、发送敏感信息。
界面测试:
1、双方头像显示是否正常。
2、聊天框,字体显示是否正常。
兼容性测试:
1、不同手机型号,操作系统测试。
2、不同电脑型号,浏览器,操作系统测试。
3、不同输入法测试
网络测试:
1、网络故障或信号不稳定情况下,发送所有消息类型失败,网络恢复是否能自动重发,接收正常。
2、网络故障或信号不稳定情况下,拨打视频或语音聊天电话不通是否有提示。
3、正在通话中,遇到网络信号消失,是否中断通话或者卡在那里,网络恢复后,是否通话是否能恢复。
4、弱网测试,网络信号较弱情况下,功能是否正常。
稳定性测试:
1、对端同时收发大量消息,是否会引起聊天窗口崩溃,自动退出。
2、同时收发多个大视频图片,是否会引起窗口崩溃。
3、视频或语音通话中,同时进来多个视频语音通话申请,是否会引起通话中断会崩溃。
4、多次长时间快速上滑下滑聊天窗口是否会引起异常。
5、多个聊天窗口来回切换已收发消息是否显示正常。
6、同时打开多个APP来回切换,已收发消息是否显示正常。
7、正在发送图片/视频,切换其他窗口是否能正常发送不被打断。
8、正在发送图片/视频,切换其他APP是否能正常发送不被打断。
9、多次进行发送/撤回消息操作。
10、多次增删好友,发送消息。
异常情况测试:
1、电量仅剩1%,是否能正常发送接收消息。
2、电量耗尽,关机后重启,发到一半的消息是否丢掉或者保留,或发送已完成部分。
3、进程挂住了,杀掉进程后,发到一半的消息是否丢掉或者保留,或发送已完成部分。
4、直接杀掉进程,重启聊天框,发到一半的消息是否丢掉或者保留,或发送已完成部分。
以上是我总结的微信聊天窗口测试,只是微信客户端的一个模块。如果有遗漏,欢迎补充。
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取
相关文章:

微信聊天窗口测试用例
以前没测过客户端的测试,昨天面试被问到聊天窗口测试场景设计,感觉自己答的不好,结束后上网查了一下客户端/app测试的要点,按照测试策略来分,主要涉及到如下测试类型: 1、功能测试 2、性能测试 3、界面测试…...

Linux下配置邮箱客户端MUTT,整合msmtp + procmail + fetchmail
一、背景 在向 Linux kernel 社区提交patch补丁步骤总结(已验证成功)_kernel补丁-CSDN博客文章中提到如何向kernel社区以及其他类似如qemu、libvirt社区提交patch的详细步骤,但还有一点不足的是通过git send-email这种方法基本是只能发送patc…...

[每周一更]-(第75期):Go相关粗浅的防破解方案
Go作为编译语言,天然存在跨平台的属性,我们在编译完成后,可以再不暴露源代码的情况下,运行在对应的平台中,但是 还是架不住有逆向工程师的反编译、反汇编的情形;(当然我们写的都不希望被别人偷了…...

停留时间是您需要跟踪的 SEO 指标
介绍 停留时间是指用户在点击搜索引擎结果后但在返回搜索引擎结果页面之前在网站上花费的时间。它是搜索引擎优化 (SEO) 的一个重要指标,因为它衡量用户参与度并指示网站是否向访问者提供有价值且相关的内容。搜索引擎,如谷歌&am…...
ES常用操作语句
ES常用操作语句 注:本文中的操作语句基于ES5.5和7.7的版本,版本不同操作语句上可能有细微差别,如5.5版本有索引类型,7.7版本已废弃,查询不应该带索引类型 新增 # 添加字段,并设置字段类型 PUT /索引/_map…...

MicroPython STM32F4 RTC功能使用介绍
MicroPython STM32F4 RTC功能使用介绍 🔖STM32和ESP32 RTC功能差不多,相关篇《MicroPython ESP32 RTC功能使用介绍》📌固件刷可参考前面一篇《STM32刷Micropython固件参考指南》🌿 相关篇《Micropython STM32F4入门点灯》…...

【鸿蒙应用ArkTS开发系列】- 选择图片、文件和拍照功能实现
文章目录 前言创建多媒体Demo工程创建MediaBean 实体类创建MediaHelper工具类API标记弃用问题动态申请多媒体访问权限实现选择图片显示功能打包测试 前言 在使用App的时候,我们经常会在一些社交软件中聊天时发一些图片或者文件之类的多媒体文件,那在鸿蒙…...

公有云迁移研究——AWS Route53
大纲 1 什么是Route 532 Route 53能做些什么# 3 通过DNS托管来实现分流3.1 创建DNS托管3.2 对托管创建记录对流量进行分配 4 通过流量策略来对流量进行分流4.1 创建流量策略 5 对比两者的区别6 推荐 在给客户从本地机房往AWS迁移的过程中,我们接到如下需求ÿ…...

浪潮信息KeyarchOS——保卫数字未来的安全防御利器
浪潮信息KeyarchOS——保卫数字未来的安全防御利器 前言 众所周知,目前流行的操作系统有10余种,每一款操作系统都有自己的特点。作为使用者,我们该如何选择操作系统。如果你偏重操作系统的安全可信和稳定高效,我推荐你使用浪潮信…...

python-单词本|通讯录
编写程序,生词本。 def sayHello():print("" * 20 \n 欢迎使用生词本\n 1.查看生词本\n 2.背单词\n 3.添加新单词\n 4.删除单词\n 5.清空生词本\n 6.退出生词本\n * 20 \n)def addW(data):word input("请输入新单词:")trans i…...

oracle impdp 导入元数据表空间异常增大的解决办法
expdp导出的时候指定了contentsmetadata_only只导出元数据,但是在impdp导入到新库的时候,发现新库的表空间增长非常大,其实这个直接就可以想到,应该是大表的initial segment过大导致的 正常impdp,在执行创建表和索引的…...

网站高可用架构设计基础
一、网站高可用概述 不要尝试着去避免故障,而是要把处理故障的代码当成正常的功能做在架构里写在代码里。 高可用是一种面向风险设计,使系统具备控制风险,提供更高的可用性的能力。网站页面能完整呈现在最终用户面前,需要经历很多…...

基础堆溢出原理与DWORD SHOOT实现
堆介绍 堆的数据结构与管理策略 程序员在使用堆时只需要做三件事情:申请一定大小的内存,使用内存,释放内存。 对于堆管理系统来说,响应程序的内存使用申请就意味着要在"杂乱"的堆区中"辨别"出哪些内存是正在…...
ts的一些
以js为基础构建的语言 一个js的超集 引入了类型(type)的概念给变量赋予类型:让从动态类型语言(js)变成静态类型语言(ts) 让变量的类型明确 扩展了js 可以在任何支持js的平台中执行 比js复杂 可维护性更高 ts不能被js解析器执行 不能再浏览器中直接执行 ts会被编译为…...

LORA概述: 大语言模型的低阶适应
LORA概述: 大语言模型的低阶适应 LORA: 大语言模型的低阶适应前言摘要论文十问实验RoBERTaDeBERTaGPT-2GPT-3 结论代码调用 LORA: 大语言模型的低阶适应 前言 LoRA的核心思想在于优化预训练语言模型的微调过程,通过有效地处理权重矩阵的变化(即梯度更新…...
关于在PyTorch中使用cudnn.benchmark= True
关于在PyTorch中使用cudnn.benchmark True 在PyTorch中,cudnn.benchmark True是一个参数,用于启用或禁用cuDNN的基准测试模式。cuDNN是一个由NVIDIA开发的深度神经网络库,它为GPU提供了一个优化的计算接口。 基准测试模式是cuDNN的一个特性…...

re:Invent大会,亚马逊云科技为用户提供端到端的AI服务
11月末,若是你降落在拉斯维加斯麦卡伦国际机场,或许会在大厅里看到一排排AI企业和云厂商相关的夸张标语。走向出口的路上,你的身边会不断穿梭过穿着印有“AI21Lab”“Anthropic”等字样的AI企业员工。或许,你还会被机场工作人员主…...

23、什么是卷积的 Feature Map?
这一节介绍一个概念,什么是卷积的 Feature Map? Feature Map, 中文称为特征图,卷积的 Feature Map 指的是在卷积神经网络(CNN)中,通过卷积这一操作从输入图像中提取的特征图。 上一节用示意动图介绍了卷积算…...

安装获取mongodb
目录 本地安装 获取云上资源 获取Atlas免费数据库 本地连接数据库 在Atlas中连接数据库 本文适合初学者或mongodb感兴趣的同学来准备学习测试环境,或本地临时开发环境。mongodb是一个对用户非常友好的数据库。这种友好,不仅仅体现在灵活的数据结构和…...

【模电】基本共射放大电路的工作原理及波形分析
基本共射放大电路的工作原理及波形分析 在上图所示的基本放大电路中,静态时的 I B Q I\tiny BQ IBQ、 I C Q I\tiny CQ ICQ、 U C E Q U\tiny CEQ UCEQ如下图( b )、( c )中虚线所标注。 ( a ) u i 的波形( b ) i B …...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...