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

【软件工程】具体的设计方法(等价类、边界值、场景法)

文章目录

  • 基于需求的设计方法
  • 具体的设计方法
    • 1. 等价类
      • 等价类分类
      • 根据等价类设计测试用例的方法
    • 2. 边界值
    • 3. 场景法

基于需求的设计方法

测试和开发工作开展的依据:软件需求

基于需求的设计⽅法也是总的设计测试⽤例的⽅法,在⼯作中,我们需要参考需求⽂档/产品规格说明书来设计测试⽤例。

测试⼈员接到需求之后,要对需求进⾏分析和验证,从合理的需求中进⼀步分析细化需求,从细化的需求中找出测试点,根据这些测试点再去设计测试⽤例。

具体的设计方法

1. 等价类

依据需求将输⼊(特殊情况下会考虑输出)划分为若⼲个等价类,从等价类中选出⼀个测试⽤例,如果 这个测试⽤例测试通过,则认为所代表的等价类测试通过,这样就可以⽤较少的测试⽤例达到尽量多的功能覆盖,解决了不能穷举测试的问题。


我们单独看一下姓名的测试:image.png|506
在测试的时候应该测试哪些长度的姓名?

  • 6 位?7 位?8 位?… 15 位?

我们需要测试软件是否做了其应该做的,是否做了其不应该做的。无法借助穷举法来进行测试,耗时耗力。我们就用一个等价类进行测试image.png|451

在一个班级里面,老师讲课,问同学们听懂没有。此时只要有一个同学说听懂了,那就默认全班都听懂了,就不用一个同学一个同学的挨个问了

等价类分类

等价类主要分为:

  • 有效等价类:对于程序的规格说明书是合理的、有意义的输⼊数据构成的集合,利⽤有效等价类验证程序是否实现了规格说明中所规定的功能和性能。(测试程序是否做了其应该做的
  • 无效等价类:根据需求说明书,不满⾜需求的集合。(测试程序是否做了其不该做的

根据等价类设计测试用例的方法

  1. 确定有效等价类和无效等价类
  2. 编写测试用例,设计具体测试数据

练习:根据学到的边界值将上述未完成的用例进行完善
image.png

缺点:等价类只考虑输⼊域的分类,没有考虑输⼊域的组合,需要其他的设计⽅法和补充。


2. 边界值

边界值分析法就是对输⼊或输出的边界值进⾏测试的⼀种⿊盒测试⽅法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试⽤例来⾃等价类的边界


边界值包含:边界值+次边界值

  1. 有效范围是 [6, 15]
    • 边界值:6, 15(有效)
    • 次边界值:5, 16(无效)
  2. 有效范围是 (6, 15)
    • 边界值:6, 15(无效)
    • 次边界值:7, 14(有效)
  • 边界值即给定返回的左数据和右数据
  • 选择次边界值的时候需要根据边界值的有效无效情况来定
    1. 若边界值为有效等价类中的数据,则次边界值为无效等价类中的边界
    2. 若边界值为无效等价类中的数据,则次边界值为有效等价类中的边界

image.png

3. 场景法

现在的软件⼏乎都是⽤事件触发来控制流程的,事件触发时的情景便形成了场景,⽽同⼀事件不同的触发顺序和处理结果就形成事件流。

针对场景法给出⽣活中的案例。以逛街买⾐服为例,讲讲场景法的使⽤⽅法。image.png|588

  • 在每一步骤/流程都可能会出现一些异常/扩展的场景,就会出现其他的步骤/流程。

通过运⽤场景来对系统的功能点或业务流程的描述,从⽽提⾼测试效果的⼀种⽅法。⽤例场景来测试需求是指模拟特定场景边界发⽣的事情,通过事件来触发某个动作的发⽣,观察事件的最终结果,从⽽⽤来发现需求中存在的问题。我们通常以正常的⽤例场景分析开始,然后再着⼿其他的场景分析。场景法⼀般包含基本流/基本时间流和备⽤流/备用事件流,从⼀个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备⽤流来完成整个场景。场景主要包括 4 种主要的类型:正常的⽤例场景,备选的⽤例场景,异常的⽤例场景,假定推测的场景。

  • 用这种方法能够模拟可能出现的用户的操作,尽可能多的覆盖用户在使用的时候可能遇到的场景,保证我们测试的流程尽量使完整的。

确定基本流和备用流后,编写测试用例:

  1. 基本流:点击注册入口同意协议,输入正确的信息,点击注册,成功激活
  2. 备用流:点击注册入口不同意协议,重新点击注册入口同意协议,输入正确的信息,点击注册,成功激活
  3. 备用流:点击注册入口不同意协议,点击注册入口不同意协议,输入错误的信息后重新输入正确的信息,点击注册,成功激活

场景法在工作中是一个非常有用的设计测试用例思路,主要是在需求评审和设计测试用例


http://www.kler.cn/a/396088.html

相关文章:

  • 服务器被挂马怎么办?——解决服务器被挂马的方法和步骤
  • Odoo :一款免费开源的日化行业ERP管理系统
  • JSON.stringify的应用说明
  • FreeRTOS的列表与列表项
  • 林曦词典|养生
  • Taro React-Native IOS 打包发布
  • 【JAVA】使用IDEA创建maven聚合项目
  • 2024React面试精选——持续更新
  • Pycharm 配置 Poetry
  • 【Android、IOS、Flutter、鸿蒙、ReactNative 】启动页
  • 初始 html
  • VSCode可以安装最新版,并且可以对应Node 12和npm 6
  • 多智能体系统实现无直接通信协同
  • Casio推出情感AI宠物机器人Moflin
  • 前后端交互之动态列
  • [CKS] 使用ingress公开https服务
  • 【大模型实战篇】vLLM的由来以及大模型部署、推理加速实践
  • 跨域 总 结 CORS
  • Linux服务器搭建SVN
  • 基于图像处理与机器学习的车牌检测识别系统设计与实现
  • 厦大南洋理工最新开源,一种面向户外场景的特征-几何一致性无监督点云配准方法
  • PyCharm 中的【控制台】和【终端】的区别
  • QT中使用图表之QChart绘制饼图
  • 论文阅读 - Causally Regularized Learning with Agnostic Data Selection
  • 【异常记录】Junitmock之InvalidUseOfMatchersException异常
  • Tomcat 8.5 源码导读