编写测试用例

发布于:2025-06-22 ⋅ 阅读:(13) ⋅ 点赞:(0)

测试用例元素

  • 测试目标(Why):
    • 明确测试目的:功能/性能/可用性/容错性/兼容性/安全性等
    • 示例:测试登录功能时需说明是验证功能正确性还是安全性
  • 测试对象(What):
    • 具体被测项:对象/函数/类/菜单/按钮/表格/接口/整个系统等
    • 示例:登录功能中的用户名输入框、密码输入框、登录按钮
  • 测试环境(Where):
    • 系统配置要求:操作系统/浏览器/通信协议等
    • 硬件环境:服务器/客户机数量、网络设备需求
  • 测试前提(When):
    • 执行条件限制:如测试登录前需先注册有效账号
    • 示例:测试支付功能前需确保账户余额充足
  • 输入数据(Which):
    • 具体测试数据:数字/字符/文件等(需精确到具体值)
    • 与测试点的区别:不能仅写"输入正确账号",需明确如"账号:test123"
  • 操作步骤(How):
    • 详细执行顺序:如"1.打开登录页 2.输入账号密码 3.点击登录按钮"
    • 必须体现完整的操作流程

测试用例的模板

测试用例
项目名称 程序版本
模块名称
设计人员 编制时间
功能特性
测试目的
预置条件
参考信息 特殊规程说明
用例编号 相关用例 检查点 操作步骤 输入数据 预期结果 实际结果 优先级 测试结果 (通过/不通过) 缺陷编号 备注

1.手机测试模板

  • 基本结构:采用表格形式,包含ID、功能描述、操作步骤、预期结果和备注等列
  • 用例编号:如MMS_001,公司或项目团队可自定义编号规则
  • 功能描述:用一句话说明测试场景,如"彩信不满时选择新建"
  • 操作步骤:分步骤描述测试操作,如"1、进入’新建’;2、选择’彩信’"
  • 预期结果:描述正确操作后应出现的结果,如"进入彩信新建界面正常"
  • 功能拆分:用例上方标注测试范围,如"基本菜单功能测试"表示测试对象

2.银行测试模板

  • 案例编号:命名规范更复杂,如ms_D9_对公操作分公司账户付款i00001
  • 需求参考:需注明依据的需求文档,确保用例有据可依
  • 测试目的:用一句话陈述验证目标,如"验证操作分公司账户付款制单功能"
  • 前提条件:明确测试前的准备要求,如账户类型、权限设置等
  • 测试步骤:详细描述每一步操作和输入的具体数据
  • 期待结果:分条列出每个步骤应产生的正确结果
  • 组合测试:通过注释说明不同参数组合产生的案例数量,如32种汇路组合

3.电梯项目测试案例

  • 检查点:相当于测试目的,如"检查入轿11人,系统报警灯是否亮起"
  • 初始条件:测试前的系统状态,如"加载默认,电梯加电后"
  • 测试步骤:具体操作指令,如"点击’入轿’11次"
  • 预期结果:应出现的正确响应,如"系统报警灯亮起,提示’电梯中人员超载’"
  • 用例追溯:关联需求文档中的具体章节,如"3.4.10"
  • 优先级:标识用例执行顺序,数字越小优先级越高

测试用例的写作总结

  • 核心要素:所有模板都包含用例编号、测试目的/描述、操作步骤和预期结果等基本要素
  • 格式差异:不同行业/公司对相同要素可能有不同命名,如"测试案例"vs"测试用例"
  • 灵活应用:需根据实际项目要求调整模板,但核心内容必须完整
  • 数据具体化:操作步骤中必须使用具体数据,不能模糊描述
  • 一行一用例:每个测试案例应独立成行,避免多个案例混在一起
  • 需求关联:优秀用例应能追溯到具体需求条款
  • 组合覆盖:通过参数组合可系统性地覆盖各种测试场景

测试用例写作

1.用例编号

  • 命名规则:
    • 软件名简称_功能简称_数字(如:MA0901-例-022)
    • 数字位数规则:10个以内用1位,10-99用01,100-999用001
    • 必须保证唯一性,不可重复
  • 组成要素:
    • 软件名/模块简称(如电梯系统用MA)
    • 功能简称(如开关门控制用"例")
    • 序列号(按功能分组编号)

2.初始条件

也称为前置条件,是一个静态的状态。

数据与步骤的书写格式

  • 合并写法:可将数据直接写入步骤,如"输入账号:123456;输入密码:123456"
  • 分离写法:当数据要求高时,可采用"操作步骤"与"数据"分列的形式
  • 参数格式:参数前必须加中文冒号,如"用户名:admin",禁止使用空格或"为"连接

每一步都是动作,不是步骤。

3.预期结果

4.用例状态

5.优先级

冒烟测试

缺陷等级

1.A类-致命缺陷

核心特征:导致系统完全不可用的故障

典型表现:

系统级崩溃:死机、蓝屏、程序中断

关键功能失效:数据库死锁、通信错误

安全风险:数据丢失或损坏

面试准备:需准备实际项目中的案例(如"引起服务器宕机的缺陷")

2.B类-严重缺陷

影响范围:主要功能异常但不导致系统崩溃

具体案例:

数据完整性缺失:数据库约束未设置

业务流程错误:关键业务规则实现错误

功能模块失效:次要功能完全不可用

与A类区别:系统仍可运行但存在重大功能缺陷

3.C类-一般缺陷

界面问题:列名定义不一致、打印格式错误

交互缺陷:删除操作无确认提示

设计瑕疵:输入验证放在后台处理(应在前端控制减少服务器压力)

数据问题:数据库存在大量空字段

4.D类-较小缺陷

用户体验问题:

界面不规范:对齐/大小不一致

提示缺失:长时间操作无进度反馈

术语混乱:中英文混合提示

交互设计缺陷:可输入区域无视觉区分标志(如缺少必填项红星标记)

5.E类-意见或建议

性质说明:不影响功能的优化建议

典型场景:

视觉设计:颜色搭配不协调

交互细节:动画效果生硬

文案改进:提示语不够友好

处理原则:通常作为低优先级优化项处理

缺陷按处理的优先级分类

级别表示方法:通常用P1-P5表示(简写为P),部分软件采用"高/中/低"分级,不同公司可能有自定义标准

核心区别:优先级反映修复的紧急程度(何时改),与严重程度(破坏力)是两个独立维度,但通常严重缺陷会优先处理

级别说明:

P1:必须立即停止当前工作修复,如导致系统崩溃的致命错误

P2:进入常规修复队列,开发人员按顺序处理

P3:可延期修复,但最终需要解决(如界面文字错位等非阻塞性问题)

P4:明确规划在下一版本修复,当前版本不予处理

P5:可能永不修复,包括影响架构稳定性、修复成本过高的缺陷

根据缺陷状态对缺陷分类

  • 状态本质:反映缺陷在生命周期中的处理进度,不同公司可能有不同命名(如"新建"替代"已提交")
  • 核心状态:
    • Submitted:测试人员初步提交的缺陷,未经开发确认
    • Open:开发确认有效并纳入处理计划,相当于"待修复"状态
    • Rejected:包含三种情况:①非真实缺陷 ②重复报告 ③无需修复的"缺陷"
    • Resolved:开发完成代码修改,但尚未经过测试验证
    • Verified:测试人员确认缺陷已正确修复(验证失败则重新打开)
    • Closed:完成全流程的缺陷,通常不再显示在常规查询结果中
  • 状态流转:典型路径为 提交→打开→解决→验证→关闭,拒绝和重新打开构成循环路径

缺陷的简单流程

  • 生命周期概念:缺陷处理流程也称为缺陷生命周期,指缺陷从产生到消除的完整过程,是面试高频考点
  • 核心环节:
    • 提交缺陷报告 → 分配缺陷报告 → 处理缺陷报告 → 返测 → 关闭缺陷报告
  • 状态关联:处理流程与缺陷状态变化紧密相关,但回答时应避免"蹦词",需用完整语句描述过程
  • 返测分支:
    • 通过:进入关闭流程
    • 未通过:直接返回开发人员重新修改
缺陷报告的标准处理流程
  • 提交阶段:
    • 责任主体:测试人员提交报告,可能需经负责人/QA审核(视公司流程而定)
    • 分配方式:可能由负责人分配或测试直接对接开发(敏捷开发常见结对编程情况)
  • 处理阶段:
    • 修改权限:开发人员在开发工具中修改缺陷,需有系统赋权防止随意更改状态
    • 特殊情形:原开发人员不在时可能分配给其他成员,需在系统中标注责任人
  • 返测阶段:
    • 操作规范:测试人员需严格依据修改记录进行验证
    • 未通过处理:状态重置为"打开",直接返回原开发人员(无需重新分配)
    • 通过处理:需负责人审慎确认后关闭,防止误关未修复缺陷
  • 关闭后管理:
    • 复审机制:已关闭缺陷可能被质量管理人员在阶段性复审中重新打开
    • 紧急处理:重新打开的缺陷需立即处理,形成完整生命周期闭环
  • 流程要点:
    • 必须明确各环节责任人(测试/开发/负责人)
    • 公司实际流程可能存在简化(如跳过审核直接分配)
    • 关闭操作具有最终性,需特别谨慎

  • 流程本质:缺陷报告处理流程与缺陷处理流程是同一概念的不同表述
  • 分类标准:包含正常缺陷、重复缺陷、无效缺陷、推迟缺陷、验证不通过、描述不清楚六种处理场景

1.正常缺陷

触发条件:测试人员提交新缺陷(Open状态),开发人员确认有效且无重复

关键判断:

重复性检查:需查询历史缺陷记录确认非重复(Duplicated)

可重现性:必须能够稳定复现(Cannot reproduce/N)

信息完整性:缺陷描述需包含完整复现步骤(Need more info/N)

处理路径:确认修正(Fixed)→测试验证→关闭缺陷

典型特征:完整经历"提交-确认-修复-验证-关闭"全流程

2.重复缺陷

  • 判定标准:与现有缺陷库中的记录存在完全相同的表现
  • 处理步骤:
    • 开发人员标记为Duplicated
    • 测试人员进行二次确认
    • 直接关闭缺陷报告
  • 特殊说明:重复缺陷属于无效缺陷的子类别,但处理流程更明确

3.无效缺陷

  • 核心特征:被判定为非真实缺陷(Not a Bug)
  • 验证机制:
    • 开发人员初步判定
    • 测试人员最终确认
  • 处理结果:标记为无效后关闭,但需保留记录备查

4.推迟修改

  • 决策节点:确认为真实缺陷但暂不修复
  • 后续处理:
    • Known issue:已知问题暂不修复
    • On hold:等待项目经理决策
    • By design:设计预期行为
    • Defer:延后至下个版本修复
  • 管理要求:需明确推迟原因和后续处理计划

5.验证不通过

  • 本质定义:开发修复后测试验证失败(即反测未通过)
  • 处理方式:
    • 重新打开缺陷(Reopen)
    • 返回开发环节重新处理
    • 形成新的处理循环
  • 质量警示:通常表明修复方案不彻底或测试用例不完善

6.描述不清楚

  • 判定标准:信息不完整导致无法复现或定位(Need more info)
  • 处理要求:
    • 测试人员补充必要信息(如操作系统版本、特定操作步骤等)
    • 重新提交完整缺陷报告
    • 进入标准处理流程
  • 常见缺失:环境信息、操作步骤、预期与实际结果的明确对比

7.标准缺陷的处理流程细分

  • 共性环节:
    • 测试人员发起(Open/Reopen)
    • 开发人员初步判断
    • 双方确认机制
    • 最终状态闭环
  • 特殊情形:
    • 复审重开:已关闭缺陷可能被阶段性复审重新打开
    • 经理介入:争议缺陷需提交开发经理决策
    • 版本跟踪:推迟缺陷需在下个版本重新评估
  • 状态标识:包含Fixed、Fix-pending、Deferred等多种状态标签

执行用例总结

1.执行用例过程中需要注意的问题

记录完整性:测试用例执行时必须详细记录实际结果和测试结果,发现缺陷需标注编号,在备注中说明用例重复或表述不清的情况

用例修改规范:执行过程中不允许直接修改用例,但可添加备注说明问题,如"加上第二次以后连接"等补充说明

IP配置测试要点:

服务器IP变更后需验证连接窗口弹出功能(用例07)

IP首段为1或223时需验证连接正常(用例08、09)

IP后三段含255时需验证各组合情况(用例10)

文件权限测试:

首次连接前创建db.info文件并设为只读(用例05)

连接成功后修改db.info为只读再次验证(用例06)

预期结果均为连接窗口关闭后正常弹出登录窗口

2.执行用例后需要注意的问题

执行效率优化:

发现用例冗余或表述问题时应做好记录而非直接修改

通过备注提高后续执行效率,避免重复工作

典型冗余案例:文件只读权限测试存在重复用例(用例05、06)

缺陷管理规范:

发现缺陷立即提交,避免后期遗忘

示例缺陷:防火墙开启时出现"Run-time error 53: File not found"错误(用例01)

完整记录缺陷现象和重现步骤

经验总结要点:

执行约8个典型用例后即可掌握核心测试场景

需反思用例设计质量,如"加上第二次连接"等补充说明反映初始用例不完善

测试过程中应持续优化执行方法,减少简单重复工作耗时

执行记录样本

  1. 缺陷报告处理流程

缺陷发现与记录:发现疑似缺陷时应详细记录,包括缺陷表现、复现步骤等关键信息

缺陷分类标准:

按等级分类:致命、严重、一般、轻微

按优先级分类:立即解决、高优先级、正常排队、低优先级

按处理状态分类:新建、已分配、已修复、已验证、已关闭

2.高质量缺陷报告撰写

写作准则:

标题要求:简明扼要描述缺陷本质

复现步骤:提供清晰、完整的操作序列

预期/实际结果:明确对比正常与异常表现

附件要求:必须包含相关截图和日志

避免问题:

重复提交相同缺陷

描述模糊不清

缺少必要复现信息

3.测试用例执行记录

记录要点:

前置条件:明确测试环境配置要求

测试步骤:详细记录操作顺序

结果比对:严格对照预期与实际结果

缺陷编号:为每个失败用例分配唯一标识

注意事项:

对于通过用例仍需记录完整执行过程

冗余用例需明确标注

合并相似用例可提高效率

4.缺陷管理实践

工具选择:

Bugzilla:需配置Perl环境和邮件服务

ZenTao:集成项目管理功能

SVN:用于版本控制和文件恢复

处理流程:

测试人员提交→负责人分配→开发修复→测试返测→最终关闭

每个状态变更需记录详细说明

5。测试经验总结

执行记录价值:

为后续版本测试提供参考

积累测试经验,避免重复错误

发现潜在改进点(如新增用例需求)

记录技巧:

备注栏记录测试中发现的问题

简要注明改进建议

保留随机测试发现的问题

6.异常场景测试

典型异常场景:

网络中断(拔网线)

服务器重启

IP地址格式错误

防火墙配置变更

错误处理要求:

应给出明确错误提示

提示信息需包含具体原因

需验证各种边界条件


网站公告

今日签到

点亮在社区的每一天
去签到