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

编写测试用例

测试用例(Test Case)是用于测试系统的要素集合

目录

编写测试用例作用

编写测试用例要包含七大元素

测试用例的设计方法

1、等价类法

2、边界值法

3、正交表法     

4、判定表法

5、错误推测法

6、场景法


编写测试用例作用

1、确保功能全面覆盖,避免遗漏

2、量化测试覆盖率,明确测试进度

3、支持自动化回归测试,提升版本迭代效率

4、消除冗余测试,优化测试资源分配

编写测试用例要包含七大元素

用例编号、用例标题、测试模块、前置条件、测试数据、测试步骤、预期结果

测试用例的设计方法
1、等价类法

等价类法就是将输入域分为多个等价类,同一等价类的输入产生相同的输出,测试时从等价类中选取一个代表作为测试用例。若该用例通过,即认为整个等价类测试通过。以此用较少的测试用例实现高效的功能覆盖,突破了穷举法的局限,减少冗余用例,提高测试效率。

很明显,这种方法适合于测试数据存在逻辑分组的情况,比如说有个系统要求用户输入年龄,有效范围是18~60岁,那么就可以据此划分等价类,根据等价类编写测试用例

2、边界值法

值得注意的是通常边界值附近往往是缺陷高发区,比如数据溢出、越界访问、逻辑判断。而边界值法就是对输入域的边界值进行测试,检查程序在处理边界情况时可能出现的错误。所以边界值法通常是和等价类法配合使用的,以确保输入域的全面覆盖。

对于上面“系统要求用户输入年龄,有效范围是18~60岁”分析边界值、次边界值。其中次边界值是根据边界值的有效性而定的,若边界值无效则此边界值就为有效值,反之亦然。

假定要求的年龄范围为[18,60],根据边界值、此边界值补充等价类法中编写的测试用例

3、正交表法     

正交表中每个因素的每个水平出现次数一样,而且不同因素的水平组合均匀分布,这样选出来的测试用例组合能代表各种情况,不会集中在某些特定组合上

等价类法和边界值法都是针对单个输入条件进行测试,但是像登录这种功能就需要填写账号、密码等多种输入条件,正交表法就可以解决多因素多水平的组合测试问题,可以减少测试用例数量,同时保证对交互作用的覆盖。

具体操作步骤:

1)excel填写因素和水平

2)在allpairs.exe同级目录下创建文本文件a.txt,直接复制粘贴excel表格中的内容保存并退出

3)在该目录下打开cmd执行命令生成正交表:allpairs.exe a.txt>zhengjiaobiao.txt

4、判定表法

判定表法则是用于测试多条件组合和对应动作之间的逻辑关系,确保所有可能的业务规则分支被覆盖。核心要素包括条件桩、动作桩、条件项、动作项。

具体操作步骤是,首先确认输入条件和输出条件并找出两者之间的关系,然后画出判定表

比方说一段判定三角形类型,输入三边a,b,c

5、错误推测法

基于经验猜测和对系统的了解、常见错误类型等可能出错的地方设计测试用例

6、场景法

这是我在设计测试用例时习惯性使用的方法,场景法即模拟软件使用中的各种场景,每个场景由一系列相关的步骤组成,通过覆盖各种正常和异常的场景发现系统中可能会出现的问题

首先是确定基本流和备选流,根据两者编写测试用例

比如通过邮箱接收验证码实现注册功能,就可以画出下面基本流,与因每一步骤出现异常情况而形成的备选流

 由此可写出测试用例

1)输入正确的账号密码,点击注册后系统发出确认邮件,并且用户在24h内确认:注册成功

2)输入异常的账号密码(各种异常情况,比如不输入、输入部分、输入超长、输入超短、输入特殊字符、输入emoji、输入敏感信息,两者各种的组合情况,比如不输入账号、输入密码等等都要写,但因为这里我主要想说场景法就先省略了 ..>o<..)

3)在点击注册后系统发送确认邮件时出现网络异常:发送邮件失败或者用户未接收到邮件,或客户端收到邮件但服务端发送状态失败

4)系统发送确认邮件后,用户未在24h内点击确认:注册失败,用户需重新输入账号密码点击注册

5)系统发送确认邮件后,用户未在24h内点击确认,而后重新注册,系统再次发送确认邮件,但用户确认旧的确认邮件:页面无响应,一直等待

http://www.lryc.cn/news/2395289.html

相关文章:

  • 解释程序(Python)不需要生成机器码 逐行解析 逐行执行
  • 每日Prompt:隐形人
  • TensorFlow深度学习实战(19)——受限玻尔兹曼机
  • 告别手动绘图!基于AI的Smart Mermaid自动可视化图表工具搭建与使用指南
  • 【Oracle】安装单实例
  • C++测开,自动化测试,业务(第一段实习)
  • QT中更新或添加组件时出现“”qt操作至少需要一个处于启用状态的有效资料档案库“解决方法”
  • 论文速读《UAV-Flow Colosseo: 自然语言控制无人机系统》
  • ES6+中Promise 中错误捕捉详解——链式调用catch()或者async/await+try/catch
  • CDN安全加速:HTTPS加密最佳配置方案
  • 解常微分方程组
  • C++实现汉诺塔游戏自动完成
  • 在 ABP VNext 中集成 Serilog:打造可观测、结构化日志系统
  • pikachu靶场通关笔记07 XSS关卡03-存储型XSS
  • GitLab CI、GitHub Actions和Jenkins进行比较
  • strcat及其模拟实现
  • OpenCV CUDA模块直方图计算------用于在 GPU 上执行对比度受限的自适应直方图均衡类cv::cuda::CLAHE
  • 华为OD机试真题——矩形绘制(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 通义开源视觉感知多模态 RAG 推理框架 VRAG-RL:开启多模态推理新时代
  • 爬虫入门:从基础到实战全攻略
  • qemu安装risc-V 64
  • JDBC连不上mysql:Unable to load authentication plugin ‘caching_sha2_password‘.
  • AsyncIOScheduler与BackgroundScheduler的线程模型对比
  • Python+MongoDb使用手册(精简)
  • 前端面经 协商缓存和强缓存
  • MacOS安装Docker Desktop并汉化
  • Centos系统搭建主备DNS服务
  • VUE项目部署IIS服务器手册
  • 使用 HTML + JavaScript 实现在线考试系统
  • 谷歌工作自动化——仙盟大衍灵机——仙盟创梦IDE