软件测试之测试用例设计方法总结

常见的软件测试用例设计方法有哪些? 阅读详情

一、用例设计方法

1.1 基本概念

  1. 测试用例: 在一次实际测试中使用的数据和步骤的组合
  2. 测试的经济学原理:
    尽可能使用少的用例去覆盖尽可能多的情况。穷举法就不合理。
  3. 测试覆盖度: 按照可能的分类去覆盖
  • 测试悖论:测不尽悖论。不可能找出所有的缺陷,我们所有的工作都是在无限的接近0缺陷。
  • y=x+c:c是一个已知的常量(测试发现的缺陷数),x是没有发现的缺陷数,y是提测版本所固有的缺陷数。

二、等价类划分法

2.1 概念

  1. 等价类:按照输入数据的效果相近或相同来划分类型,然后从这些分类中选择有代表性的数据来作为测试数据的方法。
  2. 有效等价类:满足要求的等价类
  3. 无效等价类:不满足要求的等价类

2.2 作用

  • 使用等价类的方法在保持较高的覆盖率的同时,降低测试用例的数量。

2.3 适用范围

  • 输入域:提供输入功能的组件,只针对单个的输入域

2.4 使用步骤

1. 确认等价类:

  • 输入项有哪些(输入长度、类型等)
  • 再从输入项找出条件限制,针对条件限制进行分类
  • 在这里插入图片描述
    2. 画出等价类划分表
  • 把确认好的有效类和无效类都填入到表中
    3. 根据等价类划分表编写用例
  • 使用尽可能少的用例去覆盖所有的有效类
  • 对于无效类,只能一个用例覆盖一个
  • 在这里插入图片描述

2.5 优缺点

优点:
  1. 减少了大量的用例
  2. 保证了比较高的覆盖度
  3. 设计的步骤清楚简单
缺点:
  1. 只关注分类,忽略了逻辑和特殊情况
  2. 弥补方式:边界值分析法

2.6 功能测试的最终对象是什么?

  • 代码实现逻辑

三、边界值分析法

3.1 概念

  1. 边界值:输入数据是一个有序集合或者是一个范围的时候,处于集合或者范围的边界上的值。
  2. 上点:边界上的点。无论开闭区间,上点都是边界点
  • (4,8)上点是4和8
  • [3,9] 上点是3和9
  1. 离点:将要离开规定区间的点。闭区间的离点在外侧,开区间的离点在内侧。
  • (2,5)离点是3,4
  • [3,8] 离点是2,9
    在这里插入图片描述
  1. 内点:区间内除上点和离点之外的任意一点。
  2. 测试用例取值时,上点和离点都要取。

3.2 适用范围

  1. 输入域条件中有有序集合或范围的时候。
  2. 2、计算机内部的一些数据类型或者配置条件(带宽、容量等都有一个极限值)

3.3 使用步骤

  1. 划分等价类
  2. 设计等价类划分表
  3. 根据适用范围的要求填写边界值

3.4 优缺点

优点

  • 聚焦于输入的边界情况,能够非常有效的找到边界上的问题。
  • 用较少的用例找到大量的BUG。

缺点

  • 只关注边界的情况,不关注其他情况。
  • 不能单独使用,一般配合“等价类划分方法”一起使用,作为等价类的补充。

四、流程分析法

4.1 概念

  1. 流程:用户为了完成或者达成一定的业务目的,需要进行的一系列操作过程。
  2. 基本流:顺利完成业务的流程。
  3. 备选流:由于使用过程出现了一些其他的选择,使得用户需要处理完这些选择后重新回到基本流的过程。
  4. 异常流:使用过程中由于系统故障,导致需要处理这些故障的流程。

4.2 适用范围

  • 涉及到与业务逻辑相关

4.3 使用步骤

  1. 根据需求,画出流程图
    在这里插入图片描述
    (在画流程图的时候,需要注意:判定条件为多个与的话,则放在一个菱形里面,如果是多个条件或的话,要一个条件一个菱形图,避免因为放在一起而漏掉判定,从而导致测试用例覆盖不全)
  2. 根据流程图,编写测试用例
    一个流程分支一条用例,流程分支的数量为菱形的个数+1

4.4 优缺点

优点

  • 快速覆盖用户使用场景,确认用户操作的流程是否通畅,冒烟测试常用。

缺点

  • 只关注场景是否通畅,忽略了大量的异常输入或无效类,因此会导致缺陷遗漏。

五、错误推测法

5.1 概念

  • 基于经验或直觉推荐程序中出现的各种错误,从而针对性的去设计测试用例。
  • 依赖测试工程师对产品业务的熟悉程度,对历史问题的熟悉程度、项目经验等。
  • 有哪些经验可以借鉴?
    • 边界值
    • 极限值
    • 特殊取值:单引号、尖括号<>
    • 年月日取值
    • 工作当中曾经出现过的问题

5.2 优缺点

优点

  1. 发挥人的直觉和经验
  2. 集思广益
  3. 方便使用、快速切入

缺点

  1. 无法评估用例的覆盖度
  2. 容易遗漏未知区域
  3. 带有主观性,无法复制
  4. 只能是一种用例设计的补充方法,无法单独使用

六、状态迁移法

6.1 概念

  1. 根据事物在不同状态下进行转换,从而使用状态转换事件来设计测试用例的方法。
  2. 状态机:在某些事件的推动下,事物的状态会发生变化,但是总的状态的数量是有限的。(有限状态机)

6.2 两个要素

  1. 事件:导致事物状态发生变化的行为。
  2. 状态:事物在某一时刻所呈现出来的情况。

6.3 适用范围

  • 针对被测对象的状态比较多,且转换情况比较复杂的情况。
  • 示例:
    在这里插入图片描述

6.4 使用步骤

  1. 确定被测对象的状态,以及触发状态发生变化的事件,画出状态迁移表:
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/2439f87371a24f7da7a5edb4fc308426.pn
  2. 根据状态迁移表,绘制状态迁移图
  • 圆圈代表状态
  • 有向箭头指示状态迁移的方向
  • 剪头上标记事件
    在这里插入图片描述
  1. 根据状态迁移图,画出状态迁移树
  • 在状态迁移图中任选一个状态,观察指出箭头,按照箭头的方向,转化为树图。
    **加粗样式**
  1. 编写测试用例
  • 根据状态迁移树,编写测试用例,一个分支一条用例。
    在这里插入图片描述

6.5 优缺点

优点

  • 针对被测对象状态比较多,且转换情况比较复杂的情况,能够保证测试用例设计的完整性。

缺点

  • 不关注输入、业务逻辑

七、正交实验法

7.1 概念

  1. 用来研究多因素多水平的一种实验方法。
  2. 使用数学工具:正交表

7.2 适用范围

  1. 配置测试:通过调整不同的配置单元以及配置项,使得软件系统获得最有的服务效果。
  2. 兼容测试
  3. 功能测试:有多个输入框,每个输入框又分别有不同个数的值。

适用特点

  1. 均匀分散
  2. 整齐可比

使用步骤

在这里插入图片描述

  • 在使用正交表设计用例之后,需要根据自己的经验去检查补充遗失的用例。因为正交实验法是两两匹配,对于三个的水平匹配会主动遗失掉,在审查用例的时候,从三个组合入手。

八、常用测试用例设计方法总结

在这里插入图片描述

软件测试设计(完整的测试设计模型) 在早期的软件测试过程中,我们测试时对需求规格进行分析,分析之后就开始直接写用例,我们把这个过程叫测试设计。其实现在很多国内公司都还是根据需求直接写用例的,这个方法过于简单,以致于出现设计出来的用例并不能发现太多问题。这说明一个问题,我们以前的测试设计方法其实很难全面地覆盖到我们的需求,所以在本章中,我们将介绍一个专业的测试设计模型。 阅读详情

相关推荐

软件测试基础理论(入门篇二)---测试用例的设计方法

目录 一、 测试用例介绍 1.1 测试用例要素 1.2 测试用例设计原因 二、 测试用例设计方法 2.1 等价类划分法 2.1.1 等价类划分法适用场景 2.1.2 等价类划分方法 2.1.3等价类划分法执行步骤 2.2 边界值分析法 2.2.1应用场景 2.2.2 执行步骤步骤 2.3 判定表法 2.3.1 判定表介绍 2.3.2 判定表法设计用例步骤 2.4场景法 2.5错误推导法 2.6 正交法 2.6.1基于正交表设计测试用例 2.6.2 基于allpa...

m0_63409362的博客 1560

软件测试常见的用例设计方法

 测试用例方法   1.等价类设计测试用例   具体步骤:   1)明确需求   2)划分有效和无效等价类   ·有效等价类:满足需求的   · 无效等价类:不满足需求的    -规则    - 长度    - 类型    - 是否为空    - 是否重复   3)设计测试用例   · 典型应用场景:输入框   2.边界值设计测试用例   定义:是等价类的一种补充,对输入或输出的边界进行测试的一种黑盒测试方法。   上点:边界上的点。   内点:边界内的点。   离点:离边界最近的左右两

okcross0的博客 8346

软件测试理论-常见的8大测试用例设计方法

软件测试理论-常见的8大测试用例设计方法:边界值等

2301_80602036的博客 1275

软件测试测试用例的设计方法

是一种用最少的测试用例去覆盖最多的测试路径的方法,基于组合数字和概率学,通过设计最少的测试用例来获取最大的测试覆盖率的方法。流程图法是用流程图的方式去展现基于用户使用场景设计测试用例的一种方法,使用形状和连线来表示业务流程执行顺序的一种图,可以帮助测试整理理解系统的业务,各个模块、子模块在业务上的关联性。使用判定表法时的步骤是:1、需求分析,2、明确条件桩,3、明确动作桩,4、对条件桩进行组合,5、明确每个组合对应的动作项,6、设计测试用例,每行数据对应一条测试用例。输入或输出:平行四边形。

Arnodz的博客 1983

【软件测试】测试用例的设计方法

本文主要介绍了基于需求进行测试用例设计的方法,重点探讨了黑盒测试用例设计的多种技术。首先,基于需求设计测试用例是测试设计的基础,需验证需求的正确性、完整性和逻辑自洽性,并细化测试需求以提炼测试点。功能需求测试分析包括界面验证、业务串联测试、功能一致性测试、数据测试、错误操作测试、算法验证和用户体验测试。

大家好,我是敖云岚,一个沉迷代码的 “技术玩家”。擅长 Java、C++ 开发,对 MySQL、Redis、RabbitMQ 等技术也颇有研究。博客里既有硬核技术干货,也有诙谐幽默的编程日常分享。愿和你一起,笑着学技术,快乐敲代码! 1716

软件测试--用例篇(测试用例的好处、测试用例的七种设计方法、测试用例的粒度、测试用例的评价)

作为软件测试工程师,最主要的工作就是:编写测试用例,那么为什么要编写测试用例?它有什么好处?如何编写测试用例?测试用例写简单好还是复杂好?如何评价测试用例的质量? 天呐撸!能说不会吗?! 作为倾向软件测试工程师的老铁们,还是一起来学习吧! 一、编写测试用例的好处 测试用例是测试者的依据 测试用例使得工作可重复,是自动化测试的基础 补充:自动化测试的前提条件是:功能比较稳定,页面...

cherrydreamsover的博客 3734

【测试】软件测试之测试用例的设计方法

【测试】软件测试之测试用例的设计方法 文章目录【测试】软件测试之测试用例的设计方法1、什么是需求?2、什么是测试用例?3、总体设计方法4、具体的设计方法4.1 等价类法4.2 边界值法4.3 因果图法4.4 正交排列法4.5 场景设计法4.6 错误猜测法 1、什么是需求?   需求 是满足用户的期望和正式规定的合同、文档需要的条件和权限。 2、什么是测试用例?   测试用例 就是一个集合,它包括测试平台、测试环境、测试的功能模块、功能点、操作步骤、测试数据、预期结果、实际结果、前置条件、测试方式、重要性

Sunnyside_ 4346

软件测试之常用测试用例设计方法

​软件测试描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

软件测试的坑,让我来踩吧 1047

【软件测试】测试用例设计方法

等价类划分法是把所有可能的输入数据,即程序的输入数据集合划分成若干个子集(即等价类),然后从每一个等价类中选取少量具有代表性的数据作为测试用例,如下图所示。测试某等价类的代表值就等效于对于这一类其他值的测试。比如我在输入域1中选取一个输入,然后进行测试,对于输入域1中的其他输入都是等效的。等价类划分法将不能穷举的测试数据进行合理分类,使用较少的若干个数据代表更为广泛的数据输入。边界值分析法是针对输入数据的边界条件进行分析以确定边界值,然后设计出对应边界值的测试用例。

m0_71259890的博客 2092

软件测试基础知识——测试用例,测试用例的设计方法

测试用例 概念 测试方案和测试用例均属于测试的设计文档,测试用例描述了输入动作和一个期望结果,目的是确定程序的某个功能是否能正常工作 参考依据 需求规格说明书,需求分析结果,测试方案 编写人和时间 编写人:组内经验丰富的软件测试工程师(主要体现在测试用例的选择) 编写时间:测试方案通过评审,编写时间:占用项目周期30%左右的时间 编写工具和输出文档 编写工具: Excel,word,zentao,buggree,testlink… 输出文档:测试用例 评审人: 组内的软件测试工程师,开发代表,产品经理,测试

q22q1的博客 1131

嵌入式STM32控制电梯面板

嵌入式STM32控制电梯面板 用点阵来显示电梯向上还是向下运动,用数码管来显示楼层数(由于灯阵显示楼层数比较困难故用数码管代替)。当按下对应的按钮,就可以去到对应层数,可上升可下降。 #include "stm32f10x.h" #include "stm32f10x_exti.h" #include "stm32f10x_it.h" #define uint unsigned int #define KEY1 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_10) #define

code_init_的博客 2111

软件测试基础篇—测试用例的设计方法

奔溃级别阻碍开发和测试工作的问题;造成系统死机,奔溃,死循环,导致数据丢失的问题,与数据库连接错误,主要功能模块丧失,基本模块缺失等问题。测试也要参与需求分析,分析需求是否合理,需求是否符合用户的行为习惯,站在开发人员角度,分析需求实现的难度,根据难度来合理调整需求。如果是软件的话,考虑软件的布局,图片,色彩搭配,是否合乎大众审美,关键信息能否被用户快速捕捉,界面模块设计是否划分明显。要素测试用例编号,测试项目,测试标题,重要级别,预置条件(测试环境等),测试用例,测试步骤,预期结果。.........

qq_52655865的博客 4273

雷达仿真:FMCW TDMA-MIMO 3D点云获取方法

2 信号建模摘要:通过设置时分复用(TDMA)波形结合FMCW毫米波雷达仿真获取目标的距离、速度和方位角3D点云信息。在本案例中,首先通过发射天线交替发射FMCW波形并通过接收天线依次接收回波信号从而得到雷达原始数据,其次对获取的原始数据依次经行距离、速度、角度估计从而输出目标的3D点云。阅读本文档,你将对TDMA-MIMO雷达的基本原理、毫米波雷达距离估计、速度估计以及角度估计的基本原理有所了解,另外CA-CFAR恒虚警以及MUSIC-DOA估计在本案例中也有所涉及。1 TDMA-MIMO原理。

Poulen的博客 6959

软件测试常见的测试用例设计方法

具有输入功能,但输入之间没有组合关系---等价类。输入有边界 例如长度等,类型有限制时---边界值。多输入,多输出,输入和输出之间存在关系,输入和输出存在依赖关系---判定表,因果图。用最少的测试用来来获得最大的测试用例覆盖率---正交法。多个功能的组合测试---场景法设计测试用例。!!作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

2401_83396023的博客 804

踩坑ubuntu24.04 编译vtk9.3.1的安卓版本

NDK官方明确废弃了旧版 armeabi ABI,强制使用armeabi-v7a或arm64-v8a。错误信息显示你的构建系统仍在使用超级构建(superbuild)模式,并且内部引用了已不再支持的。生成的合并库: $(pwd)/libvtk_combined.a"超级构建过程可能内部未充分考虑现代NDK变化导致内部配置ARM老ABI,重复失败。echo "正在提取所有.o文件..."echo "合并前所有库的总大小:"# 提取所有.a文件中的.o文件。echo "创建合并库..."

zhangyihu321的专栏 1892

保姆级教程:手把手教你用Jacquard V2数据集训练机器人抓取模型(附完整代码)

本文提供了一份详细的保姆级教程,手把手教你使用Jacquard V2数据集训练机器人抓取模型。从环境配置、数据准备到模型架构设计、训练优化和实际部署,全程解析并附完整代码,帮助开发者快速掌握视觉抓取技术。

weixin_29031057的博客 314

【软件测试】 测试用例的设计方法大全

1.测试用例的八要素 用例编号:用于标识当前的用例,具有唯一性和易识别性 测试项目:对当前测试用例的子项有进一步说明的作用 测试标题:简单说明测试的目的,便于他人理解 重要级别:一般分为高、中、低三个级别 预置条件:执行测试用例前,需要执行的操作或者环境的设定 测试输入:执行用例时需要加入的信息,可手工输入或选择 操作步骤:明确描述执行用例需要进行的操作 预期输出:用于检测被测试对象是否正常工作,结果是否正确 2.测试用例的设计方法 1.等价类划分法 应用场景: 输入的集合有无穷个数据,且没有边界,不能通过

ly_6699的博客 1506

中移物联ML307C模组OPENCPU开发环境搭建全攻略

本文详细介绍了中移物联ML307C模组OPENCPU开发环境搭建的全过程。从OPENCPU模式的核心优势解析,到SDK获取、Python与scons工具安装,再到解读SDK目录结构与实战编译命令,最后提供常见问题避坑指南,帮助开发者快速构建高效的物联网应用编译环境。

weixin_29168393的博客 742

软件测试篇---测试用例设计方法

软件测试设计方法

碧瑶的博客呀 4232

【WRFDA教程第四期】雷达数据同化(Radar Data Assimilation)

雷达数据同化(Radar Data Assimilation)

WW、forever的博客 1759

构建AI招聘助手:提高人才筛选与匹配效率

人工成本高:传统招聘过程涉及大量的简历筛选和面试安排,需要耗费大量的人力和时间。匹配效率低:简历筛选过程中,人为因素可能导致信息遗漏或误判,影响匹配效果。招聘周期长:从职位发布到最终录用,传统招聘流程往往耗时较长,影响企业业务发展。机器学习(Machine Learning)是一门让计算机通过数据和经验来学习并改进性能的学科。自然语言处理(Natural Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向,旨在让计算机能够理解和解释人类语言。

AI天才研究院 1305

10年软件测试工程师 常用八大测试用例设计方法

一:等价类划分法 1:有效等价类: 2:无效等价类: 案例:比如一个登陆输入框,规定只能输入中文,同时长度为6-10, 通过等价类设计测试用例: 测试用例中重要的三步: 输入 操作 预计结果 如果与预期结果不符合就是bug 有效等价类: 输入:输入长度为6的中文,输入的为王小明,这就是有效等价类 无效等价类: 1: 输入长度为4的中文,输入位小名,点击登录,预计结果长度不符合要求 2: 输入长度为6,但是是英文的,点击登录,预计结果 请输入中文 3: 输入长度为4,而且不是中文的,是数..

m0_63052740的博客 2601

【OpenCV】第二十三章: 图像特征检测之SURF、FAST、BRIEF、OBR算法

4、由于在检测特征点时是需要对图像中所有的像素点进行检测,然而图像中的绝大多数点都不是特征点,如果对每个像素点都进行上述的检测过程,那显然是种浪费,所以FAST采用一种进行非特征点判别的方法:首先对候选点的周围90度的点(1,9,5,13)四个点进行测试,而且是先测试1和9,如果它们两个符合阈值要求再测试5和13。继SIFT和SURF后,大家在特征点检测的速度上又进行了很多的改进尝试,但速度的提升效果都不是非常明显,直到FAST算法诞生,特征点检测的速度才有了一个质的飞跃。无法计算描述符的特征点将被删除。

因为热爱所以坚持 2159
上一篇: 【Python自动化测试】:cookie
下一篇: 【Python测试开发】Python基础篇
Lucifer__hell
博客等级 码龄8年 53粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值