【软件测试】第二章 黑盒测试

news2024/9/27 17:36:20

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 第二章 黑盒测试
    • 2.1 等价类划分
    • 2.2 边界值分析
    • 2.3 因果图法
    • 2.4 判定表驱动
    • 2.5 正交试验法
    • 2.6 其他黑盒测试方法
    • 2.7 功能性测试总结
  • 总结


前言


第二章 黑盒测试

  • 黑盒测试:功能测试或数据驱动测试
  • 测试对象:需求规格说明书和用户手册
  • 动态黑盒测试分类:
    • 功能测试:等价类划分、边界值分析、因果图、错误推测、判定表、功能图法
    • 非功能测试:性能测试、强度测试、兼容性测试、配置测试、安全性测试

2.1 等价类划分

  1. 方法简介
  • 根据等价关系对输入数据或输出数据的集合进行划分
  • 对揭露系统中的缺陷来说,子集中的每个输入条件是等效的
  • 从每个子集中选取少数代表性的数据做为测试用例
  • 将集合划分为互不相交(无冗余性)的子集,且这些子集的并是整个集合(完备性)
    在这里插入图片描述
  1. 划分等价类
  • 等价类划分包括两种情况:

    • 有效等价类:是指对于程序规格说明来说,是合理的、有意义的输入数据构成的集合
    • 无效等价类:是指对于程序规格说明来说,是不合理的、无意义的输入数据构成的集合
  • 等价类的划分原则:

    • 按区间划分:如果可能的输入数据属于一个取值范围或规定了取值个数,则可以确定1个有效等价类和2个无效等价类
    • 按数值划分:如果规定了输入数据的一组值,且程序对于每个值分别进行处理,则可为每一个输入值确立1个有效等价类,为这组值确立1个无效等价类
    • 按输入集合划分:如果规定了输入值的集合,则可以确定1个有效等价类和1个无效等价类
    • 按限制条件划分:如果输入条件是一个布尔量时,可确立1个有效等价类和1个无效等价类
    • 按限制规则划分:如果规定了输入数据必须遵守的规则,可确立1个有效等价类和若干个无效等价类
    • 按处理方式划分:在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,应将该等价类进一步划分
  • 确立等价类后,建立等价类表
    在这里插入图片描述

  • 再从划分出的等价类中选择测试用例

  1. 确定测试用例
  • 选择测试用例的原则:
    • 为每一个等价类规定一个唯一的编号
    • 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类;重复这一步骤,直到所有的有效等价类都被覆盖为止
    • 设计一个新的测试用例,使其仅覆盖一个无效等价类,重复这一步骤,直到所有的无效等价类都被覆盖为止
  1. 应用实例PPT
  2. 传统等价类测试存在的问题
  • 规格说明往往没有定义无效测试用例的期望输出应该是什么样的。因此,测试人员需要花费大量时间来定义这些测试用例的期望输出
  • 在“合理分类”基础上,未实现“精心挑选”
  • 强类型语言、图形化用户界面没有必要考虑过多无效输入
  • 适合处理输入条件相互独立的情况,若存在联系则很难描述,且测试效果无法保障
  1. 等价类划分方法分类
  • 弱一般等价类
    • 单缺陷原则:缺陷极少是由两个或多个缺陷的同时发生引起的
    • 遵循单缺陷原则,要求用例覆盖每一个变量的一种取值即可,取值为有效值
    • 两变量x1, x2的函数
      • a≤x1≤d, 区间 [a, b), [b, c), [c, d]
      • e≤x2≤g, 区间 [e, f), [f, g]

2.2 边界值分析

2.3 因果图法

2.4 判定表驱动

2.5 正交试验法

2.6 其他黑盒测试方法

2.7 功能性测试总结

总结

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

发布会实录|悠易科技CTO李旸:洞察新引擎 品牌新增长

4月26日,悠易科技LinkFlow对其核心的 “洞察”产品能力进行了升级。作为开场嘉宾,悠易科技CTO李旸做了题为《洞察新引擎 品牌新增长》的精彩分享,为我们阐释了本次发布升级的背景和出发点,帮助我们更好地理解LinkFlow CDP如何借助…

【postgresql】一些函数记录

1、coalesce函数:合并,coalesce(值1,值2,值3……),返回第一个不为null的值; 2、coalesce和ifnull的区别,ifnull只有两个参数,返回第一个不为null的参数 3、if和casewhen的区别&…

信息安全评估

安全评估基础 概念、作用、安全评估标准 安全评估基本概念 什么是安全评估 针对潜在影响资产正常执行其职能的行为产生干扰或者破坏的因素进行识别、评价的过程 对安全评估的理解 狭义指对一个具有特定功能的工作系统中固有的或潜在的危险及其严重程度所进行的分析与评估&a…

通用路由封装协议GRE

通用路由封装协议原理 通用路由封装协议GRE(Generic Routing Encapsulation)可以对某些网络层协议(如IPX、ATM、IPv6、AppleTalk等)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IPv4)中传输。 GRE提供了将一种协议的报文封装在另一种协议报文中…

国产AI大模型酣战,科大讯飞打响“智慧涌现”第一枪

配图来自Canva可画 ChatGPT问世半年之久,人与AI“你问我答”的游戏热度不降反升,AI大模型技术需求也随之水涨船高,成为科技企业重点关注的方向。 在海外,OpenAI、谷歌、微软的AI大模型战争正打得火热;在国内&#xf…

PowerShell系列(二):PowerShell和Python之间的差异介绍

目录 1、Python定义 2、Python用途 4、PowerShell用途 5、PowerShell和Python对比 5.1 共同点 5.2 不同点 6、总结 今天给大家聊聊PowerShell和Python之间有哪些共同之处,各自有哪些优势,希望对运维的朋友了解两种语言能提供一些有用的信息。 1、Python定…

Unit 为啥还能当函数参数?面向实用的 Kotlin Unit 详解

视频先行 下面是视频内容的脚本文案原稿分享。 文案原稿 很多从 Java 转到 Kotlin 的人都会有一个疑惑:为什么 Kotlin 没有沿用 Java 的 void 关键字,而要引入这个叫 Unit 的新东西? // Java public void sayHello() {System.out.println(&qu…

Unity大面积草地渲染——2、草地的动态交互

大家好,我是阿赵。 这里继续讲大面积草地渲染的第二个部分,草地动态交互。这里主要有风吹效果和球体碰撞效果2种。 一、风吹效果 Unity使用shader控制草的渲染和动画 风吹动草的效果,主要还是使用顶点程序来控制顶点的偏移 回顾一下之前的基…

全方位揭秘!大数据从0到1的完美落地之Shuffle和调优

MapReduce高级 shuffle阶段 概述 MapReduce会确保每个reducer的输入都是按键排序的。从map方法输出数据开始、到作为输入数据传给reduce方法的过程称为shuffle。在此,我们将学习shuffle是如何工作的,因为它有助于我们理解工作机制(如果需要…

MYSQL数据库进阶多表查询,MYSQL数据库主键和外键

目录 友情提醒第一章:MYSQL数据库多表主键和外键1)外键介绍(FOREIGN KEY)2)外键约束作用2)三种情况下添加外键约束①一对一关系②一对多关系多对多关系 4)删除外键约束 第二章:MYSQL…

配置您的 Web 服务器以包含 X-Frame-Options 标头

介绍 X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 <frame>, </iframe> 或者 <object> 中展现的标记。网站可以使用此功能&#xff0c;来确保自己网站的内容没有被嵌套到别人的网站中去&#xff0c;也从而避免了点击劫持 (clickjackin…

mysql数据库之备份和恢复

1.数据备份的重要性 备份的主要目的是灾难恢复。 在生产环境中&#xff0c;数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。 造成数据丢失的原因&#xff1a; 程序错误人为,操作错误,运算错误,磁盘故障灾难&#xff08;如火灾、地震&#xff09;和盗窃. 2.数据…

Python爬虫入门之爬虫解析提取数据的四种方法

本文主要介绍了Python爬虫入门之爬虫解析提取数据的四种方法&#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家Python爬虫的学习有所帮助。 基础爬虫的固定模式 笔者这里所谈的基础爬虫&#xff0c;指的是不需要处理像异步加载、验证码、代理等高阶爬虫技术的爬虫…

Vscode开发第一个Vue+Element Plus示例

Vscode开发第一个VueElement Plus示例 目前&#xff0c;前端开发工具非常多&#xff0c;如Webstorm、Atom、HBuilder、Visual Studio Code、Sublime Text、Notepad等。对于有经验的开发者来说&#xff0c;使用哪一款工具都可以。笔者习惯使用Visual Studio Code。 Visual St…

什么是镜像?阿里云服务器镜像是什么?镜像怎么选?

阿里云服务器镜像就是云服务器的装机盘&#xff0c;镜像是为云服务器安装操作系统的。阿里云镜像分为类型分为公共镜像、自定义镜像、共享镜像、云市场镜像和社区镜像&#xff0c;如下图&#xff1a; 目录 什么是镜像&#xff1f; 镜像种类说明 公共镜像 自定义镜像 共享…

【HarmonyOS】轻量级智能穿戴应用如何在页面中实现数据传递与全局变量的使用

【关键词】 轻量级智能穿戴、LiteWearable、数据传递、全局变量 【问题描述】 开发轻量级智能穿戴LiteWearable应用&#xff0c;在app.js中定义全局变量&#xff0c;在页面中通过this.$app.$def.xxx获取时&#xff0c;报错TypeError: Cannot read property $def of undefined…

FlinkTableAPI与SQL编程实战

FlinkTableAPI与SQL编程实战 接下来我们一起来进入到FlinkSQL的编码实战当中&#xff0c;通过代码来实现FlinkSQL的编码开发 1、Flink TableAPI实践 1.1、创建Maven工程 并添加以jar包坐标依赖 <properties><maven.compiler.source>8</maven.compiler.source…

Spring Redis 启用TLS配置支持(踩坑解决)

由于线上Redis要启用TLS,搜遍了google百度也没一个标准的解决方案,要不这个方法没有,要不那个类找不到...要不就是配置了还是一直连不上redis.... 本文基于 spring-data-redis-2.1.9.RELEASE 版本来提供一个解决方案: 1.运维那边提供过来三个文件,分别是redis.crt redis.key …

设计模式 -- 解释器模式

前言 月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂) 央是一片海洋,海乃百川,代表着一块海绵(吸纳万物) 泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出) 月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容 希望大家一起坚持这个过程,也同…

易基因:精原干细胞移植后出生小鼠子代中的精子DNA甲基化变化机制|新研究

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 精原干细胞移植&#xff08;Spermatogonial stem cell transplantation&#xff0c;SSCT&#xff09;被提议作为儿童癌症幸存者的生育疗法。SSCT首先冷冻保存睾丸活检&#xff0c;然后再…