当前位置: 首页 > news >正文

针对单元测试、集成测试、系统测试和验收测试(用户测试)各自的目标和测试内容不同,设计对应的各类测试用例

背景

为了给新项目设计单元测试、集成测试、系统测试和验收测试(用户测试)各个阶段的测试用例。首先需要理清每个阶段的侧重点,各自的目标和测试内容依据是看这位大佬的https://cloud.tencent.com/developer/article/2140352。
然后我们以一个具体的模块为例,来设计不同级别的测试用例。

假设模块:用户登录模块

模块功能描述

  • 输入:用户名、密码
  • 处理:验证用户名和密码是否与数据库中的记录匹配。
  • 输出:登录成功(并返回用户信息)或登录失败(并返回具体错误原因,如用户名不存在、密码错误等)。

1. 单元测试用例

测试对象login(username, password) 函数/方法。

用例ID测试输入预期输出测试目的
UT-001用户名: “admin”, 密码: “correct_password”返回:成功,用户信息对象验证正常登录路径
UT-002用户名: “admin”, 密码: “wrong_password”返回:失败,错误信息“密码错误”验证密码错误处理
UT-003用户名: “non_existent_user”, 密码: “any”返回:失败,错误信息“用户名不存在”验证用户名不存在处理
UT-004用户名: “”, 密码: “any”返回:失败,错误信息“用户名不能为空”验证空用户名处理(边界/数据有效性)
UT-005用户名: “admin”, 密码: “”返回:失败,错误信息“密码不能为空”验证空密码处理(边界/数据有效性)
UT-006用户名: null, 密码: null抛出明确的异常(如“参数不能为null”)验证错误处理(异常路径)
UT-007用户名: 超长字符串(如1000个字符)返回:失败,错误信息“用户名长度超限”验证输入长度限制(边界测试)

测试依据:函数内部的代码逻辑、注释、该模块的详细设计文档。


2. 集成测试用例

测试对象:用户登录模块 + 数据库模块(或用户信息管理模块)的接口。

用例ID测试场景/模块交互预期结果测试目的
IT-001登录模块调用数据库查询接口,传入正确的用户名数据库返回正确的用户记录,登录模块成功验证密码验证模块间数据传输正常
IT-002登录模块调用数据库查询接口,传入不存在的用户名数据库返回空记录,登录模块正确返回“用户名不存在”验证模块对异常数据的协同处理
IT-003数据库连接失败登录模块捕获到数据库异常,并返回“系统繁忙,请稍后重试”等友好信息验证错误处理(单模块缺陷对系统的影响)
IT-004登录成功后,登录模块调用日志记录模块记录登录行为日志系统中成功生成一条登录日志验证与第三方模块的功能协作

测试依据:单元测试通过的模块、概要设计文档(定义了模块间的接口)。


3. 系统测试用例

测试对象:完整的“用户登录”功能,包括前端界面、后端服务、数据库等。

用例ID测试步骤预期结果测试类型
ST-0011. 打开登录页面
2. 输入正确的用户名和密码
3. 点击“登录”按钮
1. 页面跳转到系统主页
2. 页面顶部显示欢迎信息,如“欢迎,admin”
功能测试
ST-0021. 输入错误密码后点击登录页面清晰提示“用户名或密码错误”,且密码框被清空功能测试
ST-0031. 不输入用户名直接点击登录页面提示“请输入用户名”,光标定位到用户名输入框功能测试/易用性测试
ST-0041. 使用浏览器的“后退”按钮 after login不应退回到登录页,或退回到登录页后再次前进应直接进入主页(避免安全漏洞)安全性测试
ST-0051. 模拟100个用户同时登录系统响应时间在可接受范围内(如<3秒),无崩溃性能测试
ST-0061. 在不同的浏览器(Chrome, Firefox, Edge)上执行ST-001功能正常,页面布局正确兼容性测试
ST-Smoke-001在每次新版本构建后,执行ST-001和ST-002基本登录功能正常冒烟测试
ST-Regression-001在修改了密码加密算法后,重新执行所有与登录相关的测试用例所有功能依然正常回归测试

测试依据:需求规格说明文档(如:用户必须能够通过用户名和密码登录系统)。


4. 验收测试用例

测试对象:整个系统,从最终用户的角度验证。

用例ID测试场景(用户故事形式)预期结果(用户期望)备注
UAT-001作为一名已注册用户, 我希望在首页输入我的账号和密码,以便进入系统使用功能。我能顺利进入系统主界面,并看到我定制的仪表盘。对应ST-001
UAT-002作为一名已注册用户, 当我输错密码时,我希望系统能明确告诉我原因,以便我重新输入。系统提示“密码错误”,我不会误以为是账号问题。对应ST-002
UAT-003作为一名新用户, 当我第一次登录时,系统应提示我修改初始密码。登录后直接跳转到修改密码页面,并强制我完成修改。可能是一项特定的业务需求
UAT-004作为管理员, 我查看《用户手册》,其中描述的登录步骤应和实际系统一致。我能够按照手册快速完成登录操作。文档验收
UAT-005作为用户, 整个登录过程不应超过5秒。从点击登录到进入主页,感觉流畅,无长时间等待。非功能性需求验收

测试依据:用户合同、需求方确认的需求文档、验收标准。

总结

通过以上示例可以看出:

  • 单元测试:关注代码内部逻辑,粒度最细。
  • 集成测试:关注模块/服务间的接口和协作。
  • 系统测试:关注整个系统是否满足需求规格,包括功能和非功能需求。
  • 验收测试:从业务和用户角度验证系统是否“可用”和“好用”。

在实际项目中,每种测试的用例都会比示例更详尽,并且会使用不同的测试工具和方法(如JUnit用于单元测试,Selenium用于系统UI测试)。

http://www.dtcms.com/a/406019.html

相关文章:

  • (JDK,Eclipse,Tomcat版本)Java的web配置Part1 (#by 拌面
  • 中企动力算大厂吗周口网站关键词优化
  • 用 Flink DataStream API 搭建流式 ETL从无状态到有状态、从单流到连接流
  • 上海保洁服务网站建设小网站如何做密码找回
  • FreeRTOS内存管理
  • 基于 STM32 的智能洗衣机控制系统设计与实现
  • 【开题答辩全过程】以 IT项目需求发布与管理平台为例,包含答辩的问题和答案
  • 省级旅投集团数据中台架构实战:多租户隔离与主题域建模实践
  • 分布式阳台光伏系统组成及防逆流电表功能详解
  • PostgreSQL 和 MySQL两个数据库的索引的区别
  • 论文流程1
  • 苏州正规制作网站公司去了外包简历就毁了吗
  • 上海网站建设公司哪家好?大淘客怎么自己做网站
  • 解决Markdown笔记图片失效问题:Gitee+PicGo图床搭建全攻略
  • AWS中国云中的ETL之从aurora搬数据到s3(Glue版)
  • 忘记云服务器密码怎么办?阿里云/腾讯云/AWS密码重置官方指南
  • DevOps实战(9) - 使用Arbess+GitPuk+sourcefare+PostIn搭建Java自动化部署
  • 嘉兴优化网站价格怎么做网站xml地图
  • C语言指针深度解析:从硬件架构到现代安全编程
  • Vue 自定义指令详解
  • uniapp 支付宝小程序 扩展组件 component 节点的class不生效
  • 盈利的网站网站开发还找到工作吗
  • 智能体:小白零基础入门第三期,使用 Coze 搭建一款智能语音听写助手(附喂饭级教程)
  • Vue3 + TypeScript + Ant Design Vue 实现左侧菜单动态配置与路由跳转(支持路由选中项同步 + 自动展开父菜单)
  • uniapp项目使用字体图标
  • 前端拖拽,看似简单,其实处处是坑
  • 【数据结构】队列(Queue)全面详解
  • 网站做短信接口具体方法哪个网站做ppt
  • Android compose屏幕适配终极解决方案
  • 无人机飞行高度模块技术解析