功能测试 之 单模块测试----轮播图、登录、注册
- 需求分析
- 拆解测试点
- 编写用例
1.轮播图
(1)需求分析
位置:后台--页面--广告管理---广告列表(搜索index页面增加广告位2)
操作完成后需要点击admin---更新缓存,前台页面刷新生效

(2)拆解测试点

(3)编写用例

注意:
我们一般在公司里面测的时候,需要注意:一般情况下, 系统要分不同的权限(即不同的角色看到的界面是不一样的),所以在公司测试的时候要先把这些权限先测了。
测了之后呢,然后像我们这个商城,它是分了两个子系统:一个前台,一个后台。一般情况下在公司里我们都是先测后台, 后侧前台。
- 因为前台它只是一个就相当于它只是个荧屏,用来展示结果, 整个页面上的所有东西都是在后台配置的。
- 所以你在公司里面测的时候,一般情况肯定是先测后台,我后台的添加这个功能,后台配置这功功能没有问题了,接下来你直接去前台看一下显示效果。
- 如上面这个轮播图,我们要测前台肯定默认的是后台已经测试OK的情况下才能测的。这后台不OK的情况下肯定是没有办法去测的。
2.登录
(1)需求分析
概述:

功能:

- 账户名:格式正确,注册成功的用户账号(手机号或者邮箱);
- 密码:注册成功账号对应密码。
- 验证码:大小写不限定,点击图片可更新验证码内容,不可重用。
点击登录按钮,登录成功后跳转至我的商城页,页面显示用户名。
登录失败显示对应提示。
登录过程提示语如下:
| 序号 | 模块 | 操作 | 提示语 |
|---|---|---|---|
| 1 | 正确登录验证 | 输入正确手机号或邮箱、密码、验证码 | 无提示语,跳转到我的商城界面 |
| 2 | 账号验证 | 非正确的手机号或邮箱格式 | ![]() |
| 3 | 账号验证 | 输入正确格式(手机号,邮箱)未注册的账号,密码,正确验证码,点击登录 | ![]() |
| 4 | 账号为空 | 账号为空,点击登录 | ![]() |
| 5 | 密码为空 | 账号输入正确,未输入密码,验证码填写正确,点击登录 | ![]() |
| 6 | 密码错误 | 账号输入正确,输入错误密码,验证码填写正确,点击登录 |
点击登录后更新验证码 |

(2)拆解测试点

(3)编写用例


3.注册
(1)需求分析
概述:
1.首次登入商城首页为游客状态,网站头部显示登录注册两个链接

2.注册页面,默认为手机号注册

3.可以切换为邮箱注册

功能:
使用手机号和邮箱注册区别仅仅为第一个输入框不同,以下合并说明。
- 手机号:必填项,第一位为1,第二位为大于2,的11位自然数,不能重复
邮箱:正确格式的邮箱格式 xxxx@[126/sina/qq].com
注意:对于邮箱注册,仅验证邮箱格式是否正确
- 验证码:必填项,字母或者数字,与图片一致,点击刷新按钮可以更新验证码
- 设置密码:必填项,要求同输入框提示,6-16位大小写英文字母,数字或符号的组合 (可以是纯字母,数字,符号)
- 确认密码:必填项,同设置密码
- 推荐人手机:(非必填,之前注册成功的用户)
- 我已阅读并同意:勾选之后才可以点击同意协议并注册
注册过程提示语:
| 序号 | 模块 | 操作 | 提示语 |
| 手机/邮箱注册 | |||
| 1 | 正确注册验证 | 输入符合条件的手机号/邮箱,验证码,密码,推荐人手机,勾选同意协议 |
跳转至首页 |
| 2 | 正确注册验证 | 输入符合条件的手机号/邮箱,验证码,密码,勾选同意协议 |
跳转至首页 |
| 3 | 重复注册 | 输入符合条件的手机号/邮箱(已存在),验证码,密码,勾选同意协议 |
点击同意协议并注册后页面提示“账号已存在”,点击确定后,页面账号密码不消失,验证码刷新。 |
| 4 | 手机号/邮箱验证 | 不输入手机号/邮箱,或者输入错误的手机号/邮箱,点击注册 |
点击同意协议并注册后提示请用手机号或者邮箱注册 |
| 5 | 验证码错误 | 输入错误的验证码,点击注册按钮 |
点击同意协议并注册后提示验证码错误 |
| 6 | 验证码为空 | 不输入验证码,点击注册 |
点击同意协议并注册后验证码不能为空 |
| 7 | 密码为空验证 | 未输入密码,点击注册按钮 |
点击同意协议并注册后提示请输入用户名或者密码 |
| 8 | 密码验证 | 两次密码输入不一致,点击注册按钮 |
点击同意协议并注册后两次输入密码不一致 |
| 9 | 密码验证 | 密码输入不符合要求,点击注册 |
点击同意协议并注册后提示上述途中文字 |
(1)注册成功状态
- 前台:弹框提示注册成功;跳转到首页; 显示登录状态
- 后台:会员列表新增一条记录
- 数据库:tp_users表增加一条数据、
(2)注册失败状态
- 前台:弹出提示注册失败的信息
- 后台:无
- 数据库:无
(2)拆解测试点



(3)编写用例

有效的条件可以一条里面覆盖多个。







未完待续。。。
相关文章:
功能测试 之 单模块测试----轮播图、登录、注册
单功能怎么测? 需求分析 拆解测试点 编写用例 1.轮播图 (1)需求分析 位置:后台--页面--广告管理---广告列表(搜索index页面增加广告位2) 操作完成后需要点击admin---更新缓存,前台页面刷新生效 (2)拆解…...
MyBatis-PageHelper 源码解说
归档 GitHub: MyBatis-PageHelper-源码解说 总说明 源码仓库: https://github.com/pagehelper/Mybatis-PageHelper克隆:git clone https://github.com/pagehelper/Mybatis-PageHelper.git切分支(tag):git checkout m…...
基于uni-app和图鸟UI的智慧校园圈子小程序开发实践
摘要: 随着教育信息化和“互联网教育”的快速发展,智慧校园建设已成为推动校园管理现代化、提高教育教学质量的重要手段。本文介绍了基于uni-app和图鸟UI开发的智慧校园圈子小程序,旨在通过一站式服务、个性化定制、数据互通和安全可靠等特点…...
STM32 keil工程移植到Visual Studio Code环境中编译
1、GCC Vscode 搭建 STM32 开发环境 GCC Vscode 搭建 STM32 开发环境(一)- 环境部署 - 知乎 (zhihu.com) 2、在原有keil工程下找到原本CUBEMX生成的.ioc工程文件 3、将.ioc文件复制一个新的文件夹下双击打开工程,将IDE选为Makefile&…...
细说CountDownLatch
CountDownLatch是Java中提供的一个同步辅助类,它允许一个或多个线程等待其他线程完成操作。在面试中,面试官经常会询问候选人是否在实际项目中使用过CountDownLatch,以评估其对多线程编程和并发控制的理解和经验。本文将详细介绍CountDownLat…...
java-克隆应用
5.2 创建复杂对象 对于某些复杂对象,通过克隆来创建其副本比通过构造函数创建新实例更加高效。例如,当对象包含大量字段或需要进行复杂初始化时,克隆可以显著提高性能。 java 复制代码 class ComplexObject implements Cloneable { private …...
RPC协议
3.8 既然有 HTTP 协议,为什么还要有 RPC 假设我们需要在 A 电脑的进程发一段数据到 B 电脑的进程,我们一般会在代码里使用 Socket 进行编程。 这时候,我们可选项一般也就 TCP 和 UDP 二选一。TCP 可靠,UDP 不可靠。 类似下面这…...
医疗器械3D全景展会在线漫游创造数字化时代的展览新篇章
在数字化浪潮的引领下,VR虚拟网上展会正逐渐成为企业展示品牌实力、吸引潜在客户的首选平台。我们与广交会携手走过三年多的时光,凭借优质的服务和丰富的经验,赢得了客户的广泛赞誉。 面对传统展会活动繁多、企业运营繁忙的挑战,许…...
IP_Endpoint类型在CAPL中的使用
在使用TCP/IP协议栈通信时,创建Socket套接字调用接口函数实现通信的整个过程成为一种主流且便捷的方式。在CAPL中,Client需要创建TCP或UDP套接字,绑定自己的IP地址和一个端口号,作为自己的通信端点。 on key c {clientsocket = tcpOpen(ipGetAddressAsNumber("192.16…...
数据资产与用户体验优化:深入挖掘用户数据,精准分析用户需求与行为,优化产品与服务,提升用户体验与满意度,打造卓越的用户体验,赢得市场认可
一、引言 在数字化时代,数据已经成为企业最宝贵的资产之一。通过深入挖掘和分析用户数据,企业能够精准把握用户需求和行为,从而优化产品与服务,提升用户体验和满意度。这不仅有助于企业在激烈的市场竞争中脱颖而出,还…...
基于TCAD与紧凑模型结合方法探究陷阱对AlGaN/GaN HEMTs功率附加效率及线性度的影响
来源:Investigation of Traps Impact on PAE and Linearity of AlGaN/GaN HEMTs Relying on a Combined TCAD–Compact Model Approach(TED 24年) 摘要 本文提出了一种新型建模方法,用于分析GaN HEMTs的微波功率性能。通过结合工…...
具身智能概念
具身智能作为人工智能发展的一个重要分支,伴随着大模型技术的爆发与硬件成本的降低,即软硬件技术走向成熟,正在成为广泛关注的热门,一时之间,具身智能机器人也成为了科技界新的风向标。 什么是具身智能? …...
C++ 43 之 自增运算符的重载
#include <iostream> #include <string> using namespace std;class MyInt{friend ostream& operator<< (ostream& cout , MyInt& int1); public:MyInt(){this->m_num 0;}// 前置自增: 成员函数实现运算符的重载 返回的是 引用&a…...
计算机网络:1概述、2物理层
目录 概述因特网网络、互连网(互联网)与因特网的区别与关系因特网发展的三个阶段因特网服务提供者(Internet Service Provider,ISP)因特网的标准化工作因特网的管理结构 三种交换电路交换分组交换报文交换 计算机网络性…...
【Ardiuno】实验使用ESP32接收电脑发送的串口数据(图文)
使用ESP32可以非常方便的与电脑进行串口通讯,一般我们可以用串口接收ESP32的输出作为调试使用,今天我们再来实验一下从电脑端向ESP32单片机发送数据。 发送数据程序代码: void setup() {Serial.begin(9600); }void loop() { if(Serial.ava…...
思科ospf+rip重发布配置命令
——————————————————————————————————————————— 基础配置 R1 Router>en #进入配置模式 Router#conf #进入配置模式 Router(config)#h…...
椭圆的矩阵表示法
椭圆的矩阵表示法 flyfish 1. 标准几何表示法 标准几何表示法是通过椭圆的几何定义来表示的: x 2 a 2 y 2 b 2 1 \frac{x^2}{a^2} \frac{y^2}{b^2} 1 a2x2b2y21其中, a a a 是椭圆的长半轴长度, b b b 是椭圆的短半轴长度。 2.…...
智慧乡村和美人家信息化系统
一、简介 智慧乡村和美人家信息化系统是一个综合管理平台,集成了首页概览、一张图可视化、数据填报、智能评估、便捷申报、公开公示、任务管理、活动发布和灵活配置等功能。该系统不仅提升了乡村管理效率,也优化了家庭生活的便捷性。通过一张图…...
ios-deploy - Required for installing your app on a physical device with the CLI
ios-deploy 是一个用于在 iOS 设备上安装、调试和运行 iOS 应用的开源工具。如果你正在使用命令行界面(CLI)来部署 React Native 或其他原生 iOS 应用到物理设备,那么安装 ios-deploy 是必要的。 以下是安装 ios-deploy 的一般步骤ÿ…...
thinkphp5使用模型删除与复杂查询EXP
模型删除 应用软删除 表中需要有字段,deletetime 模型中使用下面方法 use SoftDelete;protected $deleteTime delete_time;真实删除 // 软删除 User::destroy(1); // 真实删除 User::destroy(1,true); $user User::get(1); // 软删除 $user->delete(); // 真…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...














