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

文章目录

基于需求的设计方法

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

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

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

具体的设计方法

1. 等价类

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


我们单独看一下姓名的测试:

在测试的时候应该测试哪些长度的姓名?

  • 6 位?7 位?8 位?... 15 位?

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

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

等价类分类

等价类主要分为:

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

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

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

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

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


2. 边界值

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


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

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

3. 场景法

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

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

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

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

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

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

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

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

相关推荐
浩子智控2 小时前
不同RPA实现技术的比较
软件工程·rpa
搞科研的小刘选手16 小时前
【数字经济专题会议】第三届粤港澳大湾区数字经济与人工智能国际学术会议(DEAI 2026)
人工智能·aigc·软件工程·电子商务·数字经济·经济学·学术会议
张彦峰ZYF21 小时前
从概念拆解到架构现实的系统性认知低代码平台
低代码·架构·软件工程·概念拆解到架构现实的系统性认知·低代码并非单一技术·应用交付工程范式·建模与可视化工程能力
宇钶宇夕2 天前
CoDeSys入门实战一起学习(十六):采样跟踪功能详解
运维·自动化·软件工程
YUISOK2 天前
如何使用uiautomator2+Weditor 可视化查看一个app组件的vm树
python·软件工程
charlie1145141913 天前
计算机图形学速通指南笔记(0)
c++·笔记·软件工程·计算机图形学·工程实践
九成宫3 天前
计算机网络期末复习——第5章:链路层 Part One
网络·笔记·计算机网络·软件工程
宇钶宇夕3 天前
CoDeSys入门实战一起学习(十四):功能块(FB)与程序(PRG):实例化、调用与工程实践
运维·自动化·软件工程
腾讯云开发者3 天前
反思软件工程,超越Vibe Coding
软件工程
宇钶宇夕4 天前
CoDeSys入门实战一起学习(十三):函数(FUN)深度解析:自定义、属性与实操案例
运维·算法·自动化·软件工程