在线博客系统【测试报告】

article/2025/7/5 10:42:06

🕒 一. 项目背景

  由于纸质笔记容易丢失,携带不变,为了方便自己学习的过程中记录笔记,特开发了这个博客系统。这个系统后端采用 SpringBoot + MyBatis + SpringMVC ;前端使用Html + CSS + JS;数据库使用的是Mysql。


🕒 二. 项目主要功能介绍


本个人博客系统主要包含以下功能:注册,登录、注销、编写博客及删除博客等。

注册功能:用户通过用户名,密码,确实密码,注册成功,然后自动跳转到登录页面。

登录页面:用户输入自己注册的用户名和密码,进入到列表页。


列表页面:列表页展示了一定数量的博客摘要,包括标题、发布时间和内容概览。左侧显示已登录用户信息、文章和分类数量等。右上角包含主页、写博客和注销三项功能:主页即列表页,写博客为博客编辑页,注销则会退出用户并返回登录页面。


详情页面:在列表页点击“查看全文”会跳转至详情页,展现博客全文。右上角设有主页、写博客、删除和注销四项功能:删除可移除博客,操作后页面会返回列表页,且博客被永久删除。


写博客:登录状态下任意页面点击“写博客”将进入编辑界面,完成博客撰写并点击“发布文章”后,文章将被发布且页面会跳转至列表页。

注册页:

登录页:

列表页:

详情页:

编辑页:

🕒 三. 设计测试用例

登录模块:

列表模块:

详情模块

编辑模块

🕒 四. 主要功能模块测试

 4.1 注册页面

测试场景1: 输入账号和密码,然后确认密码点击"提交"按钮

预期结果:登陆成功,跳转到博客登录页
实际结果:登陆成功,跳转到博客登录页

测试场景2:输入正确的账号,输入密码,确认密码和密码不一致点击"提交"按钮

预期结果:弹出对应提示框,提示两次密码输入不一致!请先检查!
实际结果:弹出对应提示框,提示两次密码输入不一致!请先检查!

 4.2 登录页面

测试场景1: 输入正确的账号和密码,点击“登录”按钮

预期结果:登陆成功,跳转到博客列表页
实际结果:登陆成功,跳转到博客列表页

测试场景2:输入正确的账号,输入错误的密码,点击“登录”按钮

预期结果:弹出对应提示框,抱歉:登录失败!用户名或密码输入错误!
实际结果:弹出对应提示框,抱歉:登录失败!用户名或密码输入错误!

测试场景3:账号密码为空,点击“登录”按钮

预期结果:弹出对应提示框,请先输入用户名!
实际结果:弹出对应提示框,请先输入用户名!

4.3 博客列表页

测试场景:登录状态下发布一篇博客,标题为“自动化测试”

预期结果:博客列表页展示一篇标题为“自动化测试”的博客信息
实际结果:博客列表页展示一篇为“自动化测试”的博客

4.4 发布博客

测试场景1:登录状态下,输入标题,输入正文,点击“发布文章”按钮

预期结果:发布博客成功,跳转到博客列表页展示相关信息
实际结果:发布博客成功,跳转到博客列表页

测试场景2:未登录状态下,点击写博客

预期结果:跳转到登录页
实际结果:直接跳转登录页

 4.5 博客详情页(正文页面)

测试场景1:登录状态下,点击“查看全文”按钮

预期结果:跳转到博客详情页
实际结果:跳转到博客详情页

测试场景2:未登录状态下,点击“查看全文”按钮

预期结果:弹出提示框,当前没有登录,请先登录
实际结果:弹出提示框,当前没有登录,请先登录

  4.6 博客修改页

测试场景1:登录状态下,在博客列表页点击修改按钮

预期结果:跳转到修改页面,可以对原来的文章进行修改
实际结果:跳转到修改页面可以对原来的文章进行修改

测试场景2:未登录状态下,在博客列表页点击修改按钮

预期结果:跳转到登录页面
实际结果:跳转到登录页面

4.7 删除博客

测试场景1:登录状态下且当前博客详情是当前登录用户,点击删除.

预期结果:删除成功
实际结果:删除成功

 测试场景2:未登录下,点击删除.

预期结果:弹窗提示,抱歉:操作失败

预期结果:弹窗提示,抱歉:操作失败

注销操作:

预期结果:点击注销,弹框提示,是否退出,点击确认之后,提示退出成功

预期结果:预期结果,点击注销,弹框提示,是否退出,点击确认之后,提示退出成功

🕒 五. 自动化测试

1.先创建一个Maven项目

2.在pom.xml当中引入自动化测试需要的依赖。

3.自动化测试,项目结构

 详细的代码链接:https://gitee.com/chen-tao-1103-Java/java_study/tree/master/AutoTest/BlogAutoTest

🕒 六.测试报告

6.1 测试安排

模块前端后端提测时间测试工时排期进度
注册页陈涛陈涛4.28陈涛0.5d4.29测试完成
登录页陈涛陈涛4.28陈涛0.5d4.29测试完成
列表页陈涛陈涛4.29陈涛0.5d4.30测试完成
详情页陈涛陈涛4.29陈涛0.5d4.30测试完成
编辑页陈涛陈涛4.29陈涛0.5d4.30测试完成

6.2 测试分类

6.2.1功能测试
  • 测试用例,上文已给出测试用例。
  • 功能测试结果:测试用例100%通过。

6.2.2自动化测试

  • 自动化测试覆盖模块:注册页面,登录页面,列表页,编辑页,详情页等。
  • 自动化测试代码链接:https://gitee.com/chen-tao-1103-Java/java_study/tree/master/AutoTest/BlogAutoTest
  • 自动化测试用例数量:20
  • 测试结果,90%通过。
  • 遗留风险:测试时间紧张,先保证了博客的主要功能没问题,可能存在细节测试不到位的风险
  • 测试结果评估:主要功能测试通过,项目可以上线。


http://www.hkcw.cn/article/xOJwnuFXyj.shtml

相关文章

近期手上的一个基于Function Grap(类AWS的Lambda)小项目的改造引发的思考

函数式Function是云计算里最近几年流行起来的新的架构和模式,因为它不依赖云主机,非常轻量,按需使用,甚至是免费使用,特别适合哪种数据同步,数据转发,本身不需要保存数据的业务场景,…

C++ - 模板(一) #泛型编程 #函数模板 #类模板

文章目录 前言 一、泛型编程 二、函数模板 1、函数模板的概念 2、函数模板的格式 3、函数模板的原理 4、函数模板的实例化 1、隐式实例化: 2、显式实例化: 5、模板参数的匹配原则 三、类模板 1、类模板的定义格式 2、类模板的实例化 总结 …

智能制造全场景数字化解决方案

制造企业数字化转型面临的挑战 数智化转型已成为中国制造业高质量发展的关键战略。面对全球制造业格局调整,如何快速构建覆盖全业务流程的可视化应用,通过数据驱动的方式为企业经营管理、预警监测、质量管控、决策支持提供全面支撑,是企业面…

Vue-收集表单信息

收集表单信息 Input label for 和 input id 关联, 点击账号标签 也能聚焦 input 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>表单数据</title><!-- 引入Vue --><scrip…

篮球分组问题讨论

1 问题概述 问题&#xff1a;有5支球队在同一块场地上进行单循环赛,共要进行10场比赛。下表是一个赛程安排&#xff0c;有些队觉得不公平。研究以下问题 A B C D E 每两场比赛间相隔场次数 A X 1 9 3 6 1, 2, 2 B 1 X 2 5 8 0, 2, 2 C 9 2 X 7 10 4…

成都鼎讯--通信干扰设备功能全解析

在现代电子战与通信对抗领域&#xff0c;一款高性能的通信干扰设备是掌握电磁频谱主动权的关键。本文将深入解析一款先进的通信干扰设备&#xff0c;其凭借多频段覆盖、多通道并行、多样化调制方式及灵活供电等特性&#xff0c;成为部队、科研院所等机构在电磁对抗训练与研究中…

vscode中让文件夹一直保持展开不折叠

vscode中让文件夹一直保持展开不折叠 问题 很多小伙伴使用vscode发现空文件夹会折叠显示, 让人看起来非常难受, 如下图 解决办法 首先打开设置->setting, 搜索compact Folders, 去掉勾选即可, 如下图所示 效果如下 看起来非常爽 ! ! !

中国城市间地理距离矩阵(2024)

1825 中国城市间地理距离矩阵(2024) 数据简介 中国城市间地理距离矩阵数据集&#xff0c;通过审图号GS(2024)0650的中国城市地图在Albers投影坐标系中进行计算得出矩阵表格&#xff0c;单位为KM&#xff0c;方便大家研究使用。 中国城市地理距离矩阵数据通过计算城市中心距离…

Linux中的shell脚本

什么是shell脚本 shell脚本是文本的一种shell脚本是可以运行的文本shell脚本的内容是由逻辑和数据组成shell脚本是解释型语言 用file命令可以查看文件是否是一个脚本文件 file filename 脚本书写规范 注释 单行注释 使用#号来进行单行注释 多行注释 使用 : " 注释内容…

20250530-C#知识:抽象类、抽象方法、接口

C#知识&#xff1a;抽象类、抽象方法、接口 在开发过程中接口一般用得较多&#xff0c;程序框架往往定义一堆接口规范&#xff0c;然后程序员自己写逻辑来实现接口功能。掌握接口的知识还是很有必要的。 1、抽象类 用abstract关键字修饰的类不能用来实例化对象可以包含抽象方法…

韩国首尔一地铁车厢内遭纵火 乘客被紧急疏散

当地时间5月31日8时47分左右,韩国首尔地铁5号线一辆列车车厢内起火,乘客随后被紧急疏散。据初步调查,火灾原因为有人纵火,嫌疑人已被抓获。目前暂无人员伤亡报告。受火灾事件影响,该地铁线路部分区段一度暂停运行,首尔市交通部门10时13分通报,事故处理已经完毕,暂停运行…

跨平台浏览器集成库JxBrowser 支持 Chrome 扩展程序,高效赋能 Java 桌面应用

JxBrowser 是 TeamDev 开发的跨平台库&#xff0c;用于在 Java 应用程序中集成 Chromium 浏览器。它支持 HTML5、CSS3、JavaScript 等&#xff0c;具备硬件加速渲染、双向 Java 与 JavaScript 连接、丰富的事件监听等功能&#xff0c;能处理网页保存、打印等操作&#xff0c;助…

聊聊网络变压器的浪涌等级标准是怎样划分的呢?

Hqst盈盛&#xff08;华强盛&#xff09;电子导读&#xff1a;聊聊网络变压器的浪涌等级标准是怎样划分的呢&#xff1f; 在和做防雷产品的客户的深度沟通网络变压器产品选型中发现&#xff1a;客户对网络变压器的浪涌等级划分也很希望有更深的了解&#xff0c;今天就这个问题和…

探索Air780EPM:N种GPIO控制LED的创新应用!

通过创新思维与实用技巧&#xff0c;本文将带你了解Air780EPM如何通过GPIO实现LED控制的N种可能&#xff0c;从简单到复杂&#xff0c;激发项目灵感。 一、GPIO直接驱动LED 1.1 适用场景 低功耗场景&#xff1a;LED电流 ≤ 5mA&#xff08;普通GPIO的驱动能力限制&#xff09;…

JS 事件循环详解

JS 事件循环详解 文章目录 JS 事件循环详解一、JS 的单线程模型与异步机制二、事件循环的核心组件1. 执行栈&#xff08;Call Stack&#xff09;2. 任务队列&#xff08;Task Queue&#xff09;3. Web APIs 三、事件循环的执行流程四、任务类型详解1. 宏任务&#xff08;Macrot…

堆遇到的stl与理论基础

目录 二叉完全搜索树是堆吗:并不是,堆比两孩子都大 1. 二叉完全搜索树的特点 2. 堆的特点 3. 两者的主要区别 4. 结论 c有swap吗 堆的向上调整和向下调整是什么 1. 堆的定义 2. 向上调整&#xff08;Heapify Up&#xff09; 操作步骤 示例&#xff08;最大堆&#x…

年度工作汇报工作总结PPT模版分享

年度工作汇报工作总结PPT模版分享&#xff1a;工作总结汇报类PPT模版https://pan.quark.cn/s/774660cc70e8

一文学会c++中的内存管理知识点

文章目录 c/c内存管理c语言动态内存管理c动态内存管理new/delete自定义类型妙用operator new和operator delete malloc/new&#xff0c;free/delete区别 c/c内存管理 int globalVar 1;static int staticGlobalVar 1;void Test(){static int staticVar 1;int localVar 1;in…

ZC-OFDM雷达通信一体化减小PAPR——直接限幅法

文章目录 前言一、直接限幅法技术1、简介2、原理 二、MATLAB 仿真1、核心代码2、仿真结果 三、资源自取 前言 在 OFDM 雷达通信一体化系统中&#xff0c;信号的传输由多个子载波协同完成&#xff0c;多个载波信号相互叠加形成最终的发射信号。此叠加过程可能导致信号峰值显著高…

【二维数组】

二维数组 需要掌握的知识二维数组与内存二维数组语法Arrays类的常用方法介绍如何实现冒泡排序 需要掌握的知识 二维数组与内存 二维数组语法 //数据类型【】【】数组; //或者 //数据类型 数组名【】【】&#xff1b; //二维数组初始化操作 int [][] scorenew int[][]{{90,85,92…