功能测试 之 单模块测试----轮播图、登录、注册
- 需求分析
- 拆解测试点
- 编写用例
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(); // 真…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...














