软件测试理论----测试设计方法论

1、测试用例格式

(1)用例编号:用例的唯一标识,要求具有易识别性和易维护性,能能够根据用例编号识别用例的目的和作用,一般格式为:A-B-C-D
其中

  • A:一般表示产品或者项目名称
  • B:表示用例属性(针对哪个的测试阶段,UT,IT,ST)
  • C:表示测试项或者功能模块
  • D:编号
    如:taobao-st-login-001

(2)测试项:说明测试用例所属功能模块
(3)用例名称:用于描述测试用例的关注点,原则上用例名称不能重复
如:输入错误的验证码,登录失败
(4)优先级:体现测试用例的重要程度,一般分为高、中、低
(5)测试类型:如:功能测试、可用性测试,兼容性测试、可靠性测试、安全测试,性能测试
(6)前置条件:描述执行用例时需要优先满足的条件
(7)测试步骤:根据业务流程描述出操作的每一个步骤(包括动作和数据)
(8)预期结果:根据需求描述用例每个测试步骤需要达到的效果(界面表现、功能表现、数据表现)
如:

2、等价类

(1)原理:根据需求将被测对象的所有可能的输入划分为若干集合,在每一个集合中,每一个元素对于发现but的效果是等价的
(2)分类:

  • 1)有效等价类
  • 2)无效等价类

(3)等价类划分原则

  • 1)在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类
  • 2)在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类
  • 3)在输入条件时一个布尔量的情况下,可以确定一个有效等价类和一个无效等价类
  • 4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确定n个有效等价类和一个无效等价类
  • 5)在规定了输入数据必须遵守的规则情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
  • 6)在确定已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步细分

(4)使用步骤:

  • 1)分析需求,根据划分原则,划分出有效等价类和无效等价类
  • 2)列出等价类表
  • 3)为有效等价类设计测试用例(设计原则:一条用例尽量多的覆盖未被覆盖的有效等价类,重复操作,知道所有的有效等价类被覆盖完)
  • 4)为无效等价类设计测试用例(设计原则:每条测试用例覆盖一个未被覆盖的无效等价类,重复操作,知道所有的无效等价类被覆盖完)

举例:邮箱注册:
要求:

  • 1)邮箱地址:6-18个字符,可以包含字母数组下划线,以字母开头
  • 2)密码:6-16个字符,区分大小写
  • 3)手机号:有效

步骤:

  • 1)根据需求,划分有效等价类和无效等价类,列出等价类表

 

2)为有效等价类设计测试用例

3)为无效等价类设计测试用例
每个无效等价类需要用一个用例来覆盖,其他条件需要均为有效,注意,这里无效等价类不能叠加,因为如果叠加,可能存在因为一个无效等价类导致另一个无效等价类不能被测试到
这里无效等价类的用例就不再列举了

 

3、边界值分析法

(1)原理:大多数的缺陷出现在输入的边界,如果边界即边界附近的值都不会引发错误,则集合内其他值引发错误的概率也非常低
(2)基本概念

  • 1)上点:输入边界上的点
  • 2)离点:离上点最近的点
  • 3)内点:输入范围内的点例:[2,6],上点为2,6(有效),离点为1,7(无效)
    例:[2,6),上点2(有效)、6(无效),离点1(无效),5(有效)
4、流程分析

(1)流程图的基本使用

 

如:

(2)基本概念

  • 1)基本流
  • 2)备选流
  • 3)异常流
    在实际测试过程中主要关注基本流和备选流

 

(3)使用步骤

  • 1)根据需求,画出流程图
  • 2)根据流程图提取测试路径
  • 3)利用等价类和边界值方法为每一条路径设计测试用例
    如:1)画流程图

2)提取路径

  •  1)1-2-3-4
  • 2)1-2-5-6-7-8-9-2-3-4
  • 3)1-2-5-10-11-8-9-2-3-4
  • 4)1-2-5-6-7-8-12
  • 3)为每条路径设计测试用例
  • 1)一次猜测正确,奖励1000积分
  • 2)第一次猜大了,第二次猜测正确,奖励1000积分
  • 3)第一次猜小了,第二次猜测正确,奖励1000积分
  • 4)连续猜错5此,游戏结束
5、正交试验

(1)常用于功能测试(查询)、配置测试等
(2)基本概念:

  • 1)因子:影响试验结果的条件
  • 2)水平:每个因子可能的取值

(3)试验步骤

  • 1)分析需求,获取因子以及因子的水平数
  • 2)根据因子及水平选择正交表
  • 3)根据实际情况以及经验优化正交表
  • 4)使用等价类和边界值为每一条规则设计测试用例

    例如:某系统库存查询功能,如图所示,使用正交实验法设计测试用例

 

1)分析因此、水平数(6个因子,2水平)

  • 2)选取正交表(可以使用使用正交小助手(下载地址)),得到正交表,如下

  • 3)优化正交表

  • 1)补充全部不使用(+1)
  • 2)补充只使用一个条件(+6)
  • 4)为每一条规则设计测试用例
    6、状态迁移

(1)什么是状态迁移法
状态机的测试主要关注在测试状态转移的正确性上面,对于一个有限状态机,通过测试验证其在给定的条件下是否需能够产生需要的状态变化,有没有不可达的状态和非法的状态,可能不可能产生非法的状态转移等,对于被测系统,如果我们可以抽象出它的若干状态,以及这些状态之间的切换条件和切换路径,那么我们可以从状态迁移路径覆盖的角度来设计用例对该系统进行测试,状态迁移法的目标的设计足够的用例达到对系统状态的覆盖,状态-条件组合的覆盖以及状态迁移路径的覆盖
(2)使用方法

  • 1)分析需求,明确对象的状态节点
  • 2)绘制状态迁移图
  • 3)绘制状态迁移树
  • 4)提取测试路径
  • 5)利用等价类与边界值为每条路径设计测试用例

 例如:某航空订票系统中订单的状态如下
1)选定座位后,此时为待付款状态
2)付款后,为已支付状态
3)出行,到机场换取登机牌,此时为已出票状态
4)过安检登机,此时为已出行状态
5)在未出行前都可以取消
步骤:
1)分析状态节点:待付款、已支付、已出票、已出行、取消
2)绘制状态迁移图

3)绘制状态迁移树

4)提取路径

  • 1)待付款-取消
    • 2)待付款-已付款-取消
    • 3)待付款-已付款-已出票-取消
    • 4)待付款-已付款-已出票-已出行
    • 5)为上述每条路径设计测试用例

 

7、判定表

(1)用于分析和表达在多个条件下程序执行不同动作的工具
(2)组成

  • 1)条件桩:列出影响结果的所有的条件
  • 2)动作桩:根据不同的条件可能执行的动作
  • 3)条件项:不同条件的组合
  • 4)动作项:在具体的条件下执行的动作
    格式如:

 


举例如:

(3)使用方法

  • 1)分析需求,获取被测对象的输入和输出,定义条件桩,动作桩
  • 2)设计判定表
  • 3)优化判定表
  • 4)使用等价类和边界值对每一条规则设计测试用例

举例:某文件管理系统中对修改文件有如下要求:第一个字符必须是A或者B,其余字符必须为数字,满足条件则修改文件名成功,如果第一个字符不合法,提示:第一个字符必须为A或者B。如果其他字符不合法,提示:其他字符必须为数字
1)分析需求 

  • 1)条件:
    • 1)第一个字符必须是A或者B
    • 2)其余字符必须为数字
  • 2)动作:

    • 1)修改文件名成功
    • 2)第一个字符必须为A或者B
      • 3)其他字符必须为数字

2)设计判定表:


3)优化判定表
4)用等价类的方法和边界值的方法来设计测试用例

 

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/311284.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

android 9 reboot流程

机器出现开机 自动进入fastboot模式。可能是init 那个进程挂了 然后调用了 RebootSystem(ANDROID_RB_RESTART2, “bootloader”); 函数进入重启流程,然后重启后进入fastboot 浅读一下reboot流程和怎么进入的fastboot 比如说是那个进程挂了调用了这个函数&#xff0c…

SpringBoot默认配置文件

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容:SpringBoot默认配置文件 📚个人知识库: Leo知识库,欢迎大家访问 1.前言☕…

CSS3中transform2D变形详解

CSS3变形 在CSS3中,动画效果包括3个部分: 变形(transform)过渡(transition)动画(animation) 在实际开发中,有时需要实现元素的各种变形效果,如平移,缩放,旋转,倾斜等。 在CSS3中&#xff0c…

APP备案流程

一、 APP备案是指 自2000年起,依据《互联网信息服务管理办法》(国务院令第292号)规定,电信主管部门对从事互联网信息服务的网站开展备案核准工作(即ICP备案)。经过20多年的持续优化完善,已形成“电信主管部门-网络接入服务提供者-互联网信息…

数据结构之排序二叉树

排序二叉树 基本概念 二叉树是一种从上往下的树状结构的数据结构,从根节点开始每个节点最多有两个子节点,左边的为左子节点,右边的为右子节点。 排序二叉树–有顺序,且没有重复元素的二叉树。顺序为: 对每个节点而…

APP流量变现——4项关键指标决定了APP混合变现的收入

APP流量变现的方式有很多种,主要的可以分为IAA(广告)收入、IAP(用户应用内付费)收入、订阅收入、单次买断收入。这里主要围绕当前流行的混合变现模式,即广告收入(IAA)应用内付费&…

探索 hasOwnProperty:处理对象属性的关键(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

spring cloud之集成sentinel

写在前面 源码 。 本文一起看下spring cloud的sentinel组件的使用。 1:准备 1.1:理论 对于一个系统来说,最重要的就是高可用,那么如何实现高可用呢?你可能会说,集群部署不就可以了,但事实并…

window11后台服务优化记录

这里:\WINDOWS\xxx\svchost.exe -k netsvcs -p 信号聚合器服务,用于根据时间、网络、地理位置、蓝牙和 CDF 因素评估信号。支持的功能包括设备解锁、动态锁定和动态 MDM 策略 参考: 优化参考v1

数字化发展助力青少年阅读回归“慢节奏”

近日,《2024年学前及中小学生寒假分年级阅读推荐书目》发布,正尝试引领青少年阅读在短视频时代回归“慢节奏”。该推荐书目针对每个学龄孩子的学习特点、认知特点、心理特点进行推荐,旨在培养孩子的深度思考能力。 在数字化时代,…

Docker的介绍及安装基本操作命令

前言 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱…

K8S 存储卷

意义:存储卷----数据卷 容器内的目录和宿主机的目录进行挂载 容器在系统上的生命周期是短暂的,delete,k8s用控制器创建的pod,delete相当于重启,容器的状态也会回复到初始状态 一旦回到初始状态,所有的后天编辑的文件…

区间预测 | Matlab实现CNN-BiLSTM-KDE的卷积双向长短期神经网络结合核密度估计多变量时序区间预测

区间预测 | Matlab实现CNN-BiLSTM-KDE的卷积双向长短期神经网络结合核密度估计多变量时序区间预测 目录 区间预测 | Matlab实现CNN-BiLSTM-KDE的卷积双向长短期神经网络结合核密度估计多变量时序区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.CNN-BiLSTM-KDE多…

显示器新赛道Type-C接口

如果把主机比作大脑,那显示器就是眼睛,没有眼睛,大脑再强大也发挥不出效果,所以显示器作为电脑最重要的输出设备,有着举足轻重的地位,可以说在生活中处处都有显示器的影子。其实显示器的历史也是科技发展史…

谈谈Spring Bean

一、IoC 容器 IoC 容器是 Spring 的核心,Spring 通过 IoC 容器来管理对象的实例化和初始化(这些对象就是 Spring Bean),以及对象从创建到销毁的整个生命周期。也就是管理对象和依赖,以及依赖的注入等等。 Spring 提供…

GPT 商店强势来袭,人人都要有自己的 GPTs

作者:苍何,前大厂高级 Java 工程师,阿里云专家博主,CSDN 2023 年 实力新星,土木转码,现任部门技术 leader,专注于互联网技术分享,职场经验分享。 🔥热门文章推荐&#xf…

AlexNet论文翻译与精读

1:该论文解决了什么问题? 图像分类问题 2:该论文的创新点? 1:使用了大的深的卷积神经网络进行图像分类; 2:采用了两块GPU进行分布式训练; 3:采用了Relu进行训练加速; 4:采用局部归一化提高模型泛化能…

DB2除法的小数位问题(四舍五入问题)以及其他常用的函数

DB2除法的小数位问题(四舍五入问题)以及其他常用的函数 1. DB2取第一条数据2. DB2 中指定值排序2.1 使用case when2.2 使用decode函数 3. 拼接函数4. 强制转换类型——cast函数5. DB2除法的小数位问题(四舍五入问题)5.1 关于round…

03.C++内存管理笔记

1、C/C内存分布 ①内存分那么多区的原因:不同的数据,有不同的存储需求,各区域满足了不同的需求。 ②存放: 临时变量等临时用的变量:栈区; 动态申请的变量:堆区; 全局变量和静态变…

计算机图形学作业:四阶Bezier曲线、三阶 B 样条曲线

3. 请给出四阶Bezier曲线的矩阵表示形式,并作图绘制出一段四阶Bezier 曲线,要求给出控制点的坐标。(共 20 分) 四阶Bezier曲线的矩阵表示形式为: P(t)=P0P1P2P3P41-46-4104-1212-4006-1260004-4000011ttt3t4 给出控制点为: P0(578,389),P1(1018,175),P2(1442,373),P3(1…