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

测试理论知识三:测试用例、测试策略

1.测试用例

完全的测试是不可能的,对任何程序的测试必定是不完全的,那么,最显然的测试策略就是努力使测试尽可能完全。

进行测试前,推荐先使用黑盒测试的方法设计测试用例,然后使用白盒测试方法来补充的测试用例。

2. 白盒测试

白盒测试关注的是测试用例执行的程度或覆盖程序逻辑结构的程度。

白盒测试下的用例测试的包括范围:语句覆盖、判断覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖。

语句覆盖:语句覆盖是指测试用例可以被测试的目标程序的每行代码都执行。

3. 黑盒测试

我们知道,黑盒测试的举例用法——穷举法是不可能完成的,因此,我们就需要在所有可能的输入测试中寻找出某个小的子集。

在这里,我们将介绍黑盒测试下的:等价类划分、边界值分析、因果图分析、错误猜测。

3.1. 等价类划分

基于3中描述的“子集”,我们还需要准备两个特性:

  1. 严格控制测试用例的增加,减少为达到“合理测试”的某些既定目标而必须设计的其他测试用力数量。

  2. 它覆盖了大部分其他可能的测试用例。

所以使用等价划分设计测试用例主要有两个步骤:确定等价类、生成测试用例。

3.1.1 确定等价类

确定等价类:我们将测试参数分为两大类,有效等价类、无效等价类。有效等价类是指输入的测试参数对于程序来说是合理的,在该程序的测试范围之内的。无效等效类同理。有效等价类和无效等价类都是确定等价类的子集。

3.1.2 生成测试用例
  1. 为每个等价类设置一个不同的编号。

  2. 编写新的测试用例,尽可能多地覆盖那些尚未被涵盖的有效等价类,直到所有的有效等价类都被测试用例所覆盖(包含进去)。

  3. 编写新的用例,覆盖一个且仅一个尚未被涵盖的无效等价类,直到所有的无效等价类都被测试用例所覆盖。

3.2. 边界值分析

一般来说,考虑边界条件的测试用例与其他没有考虑边界条件的测试用例相比,具有更高的测试回报率

所谓边界条件,是指输入和输出等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。

边界值分析方法与等价划分方法存在两方面的不同:

  1. 与从等价类中挑选出任意一个元素作为代表不同,边界值分析需要选择一个或多个元素,以便等价类的每个边界都经过一次测试。

  2. 与仅仅关注输入条件(输入空间)不同,还需要考虑从结果空间(输出等价类)设计测试用例。

3.3. 因果图分析

边界值分析和等价分析的一个弱点是未对输入条件的组合进行分析。

因果图有助于用一个系统的方法选择出高效的测试用例集,同时可以指出规格说明不完整性和不明确之处。

3.4. 错误猜测

顾名思义,就是靠自己的主观能动性来进行测试,一般常用的猜测如下:

  1. 输入列表为空。

  2. 输入列表仅包含一个条目。

  3. 输入列表所有条目的值都相同。

  4. 输入列表已经排过序。

4. 测试策略

经过对白盒测试、黑盒测试的测试方法介绍,我们总结了以下测试要点:

  1. 如果规格说明中包含输入条件组合的情况,应首先使用因果图分析方法。

  2. 在任何情况下都应使用边界分析方法。

  3. 应为输入和输出确定有效和无效等价类,在必要情况下对上面确认的测试用例进行补充。

  4. 使用错误猜测技术增加更多的测试用例。

  5. 针对上述测试用例集检查程序的逻辑结构。

相关文章:

测试理论知识三:测试用例、测试策略

1.测试用例 完全的测试是不可能的,对任何程序的测试必定是不完全的,那么,最显然的测试策略就是努力使测试尽可能完全。 进行测试前,推荐先使用黑盒测试的方法设计测试用例,然后使用白盒测试方法来补充的测试用例。 2…...

【clickhouse】在CentOS中离线安装clickhouse

https://packages.clickhouse.com/rpm/stable/ 通过如下命令检查是否安装过clickhouse [root172 ~]# rpm -qa | grep clickhouse 把rpm安装包放到opt/lzh目录 按照如下命令顺序安装 [root172 /]# rpm -ivh /opt/lzh/clickhouse-common-static-22.1.2.2-2.x86_64.rpm [root…...

微信商户号申请0.2费率

我们都知道,目前市场上的支付宝或者微信商户收款,无论是线上收款还是实体店收款,一般都采用0.6%的收款费率,1万元就是60元。 其实这不低的。 大多数线下实体店商家可能使用的聚合支付码可能是0.38%,1万元是38。 虽然不…...

基于单片机设计的电子指南针(LSM303DLH模块(三轴磁场 + 三轴加速度)

一、前言 本项目是基于单片机设计的电子指南针,主要利用STC89C52作为主控芯片和LSM303DLH模块作为指南针模块。通过LCD1602液晶显示屏来展示检测到的指南针信息。 在日常生活中,指南针是一种非常实用的工具,可以帮助我们确定方向&#xff0…...

深度学习 该用什么标准判断差异最小

决定差异最小的标准通常依赖于您的具体问题和任务。以下是一些常见的用于评估预测性能的标准和思路: 1. **均方根误差 (RMSE):** RMSE 是预测值和真实值之间差异的平方的平均值的平方根。它对较大的误差更加敏感。 from sklearn.metrics import mean_squared_error…...

汽车制造厂设备故障预测与健康管理PHM

在现代汽车制造工业中,设备的可靠性和稳定性对于保证生产线的高效运行至关重要。为了提高生产效率、降低维修成本以及确保产品质量,汽车制造厂逐渐采用设备故障预测与健康管理(PHM)系统,以实现对设备状态的实时监测和预…...

如何通过宝塔面板搭建一个MySQL数据库服务并实现无公网ip远程访问?

文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几步,通过宝塔面板cp…...

C++ Qt开发:TabWidget实现多窗体功能

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍TabWidget标签组件的常用方法及灵活运用。 Q…...

【轻量化篇】YOLOv8改进实战 | 更换主干网络 Backbone 之 RepGhostnet,重参数化实现硬件高效的Ghost模块

YOLOv8专栏导航:点击此处跳转 前言 轻量化网络设计是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝:移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。分组卷积:将卷积操作分解为若干个较小的卷积操…...

【STM32工具篇】使用CLion开发STM32

本文主要记录使用CLion开发STM32,并调试相关功能 使用的CLion版本:2023.3.1 CLion嵌入式配置教程:STM32CubeMX项目 |CLion 文档 (jetbrains.com) OpenOCD官网下载:Download OpenOCD for Windows (gnutoolchains.com) GNU ARM工…...

elementui中的el-table,当使用fixed属性时,table主体会遮挡住滚动条的大半部分,导致很难选中。

情况&#xff1a; 解决&#xff1a; el-table加个类&#xff0c;这里取为class"table" 然后是样式部分&#xff1a; <style scoped lang"scss"> ::v-deep.table {// 滚动条高度调整::-webkit-scrollbar {height: 15px;}// pointer-events 的基本信…...

鸿蒙端H5容器化建设——JSB通信机制建设

1. 背景 2023年鸿蒙开发者大会上&#xff0c;华为宣布为了应对国外技术封锁的潜在风险&#xff0c;2024年的HarmonyOS NEXT版本中将不再兼容Android&#xff0c;并推出鸿蒙系统以及其自研的开发框架&#xff0c;形成开发生态闭环。同时&#xff0c;在更高维度上华为希望将鸿蒙…...

数据管理平台Splunk Enterprise本地部署结合内网穿透实现远程访问

文章目录 前言1. 搭建Splunk Enterprise2. windows 安装 cpolar3. 创建Splunk Enterprise公网访问地址4. 远程访问Splunk Enterprise服务5. 固定远程地址 前言 Splunk Enterprise是一个强大的机器数据管理平台&#xff0c;可帮助客户分析和搜索数据&#xff0c;以及可视化数据…...

MaBatis使用`ResultMap`标签手动映射详解使用

文章目录 MaBatis使用ResultMap标签手动映射详解使用1、MyBatis只能自动维护库表”列名“与”属性名“相同时的对应关系&#xff0c;二者不同时无法自动ORM&#xff0c;如下&#xff1a;2、在SQL中使用 as 为查询字段添加列别名&#xff0c;以匹配属性名&#xff1a;但是如果我…...

openstack-keystone服务

文章目录 keystone服务安装和配置先决条件安装并配置组件运行以下命令来安装包。编辑文件 /etc/keystone/keystone.conf 并完成如下动作&#xff1a;初始化身份认证服务的数据库&#xff1a;初始化Fernet keys&#xff1a;Bootstrap the Identity service: 配置 Apache HTTP 服…...

大数据HCIE成神之路之数据预处理(3)——数值离散化

数值离散化 1.1 无监督连续变量的离散化 – 聚类划分1.1.1 实验任务1.1.1.1 实验背景1.1.1.2 实验目标1.1.1.3 实验数据解析 1.1.2 实验思路1.1.3 实验操作步骤1.1.4 结果验证 1.2 无监督连续变量的离散化 – 等宽划分1.2.1 实验任务1.2.1.1 实验背景1.2.1.2 实验目标1.2.1.3 实…...

stm32 寄存器、地址、位带操作

存储器区域功能划分 4GB 的地址空间中&#xff0c;ARM 已经粗线条的平均分成了 8 个块&#xff0c;每块 512MB&#xff0c;每个块也都规定了用途&#xff0c;具体分类见表格 6-1。每个块的大小都有 512MB&#xff0c;显然这是非常大的&#xff0c;芯片厂商在每个块的范围内设计…...

记录 | gdb使用backward-cpp来美化调试log

# 在当前工程目录下 git clone https://github.com/bombela/backward-cpp.git 编辑CMakeList.txt cmake_minimum_required(VERSION 3.15)project(exampleproj LANGUAGES CXX)add_subdirectory(backward-cpp)add_executable(main main.cpp)target_sources(main PUBLIC ${BACKW…...

EasyExcel模板导出(行和列自动合并)

1.需求背景: ①需要从第三方获取数据,第三方接口有两个参数,开始时间和结束时间 ②获取回来的数据并没有入库,所以不能通过数据库将数据归类统计,excel合并大概的流程是判断上一行或者左右相邻列是否相同,然后进行合并,所以不能是零散的数据且客户要求每一个自治区和每一个航站…...

EOCR-i3MZ/iFMZ施耐德漏电保护继电器产品简介

EOCR-i3MZ/iFMZ是施耐德EOCR的新一代电子式电动机保护器产品&#xff0c;具有过电流、欠电流、缺相、逆相、堵转、失速、三相不平衡、接地等保护功能。EOCR-i3MZ/iFMZ是通讯型产品&#xff0c;提供Modbus RTU通讯协议&#xff0c;RS485接口。 为方便设备维护人员排查电动机的故…...

智能体可观测性实践:元观察技能的设计、集成与效能优化

1. 项目概述&#xff1a;一个面向智能体的“元观察者”技能最近在折腾智能体&#xff08;Agent&#xff09;开发的朋友&#xff0c;可能都遇到过类似的问题&#xff1a;你精心设计了一个智能体&#xff0c;给它配备了各种工具和技能&#xff0c;希望它能自主、流畅地完成一系列…...

基于LangGraph与LLM的对话式BI工具OpenChatBI实战部署指南

1. 项目概述&#xff1a;当自然语言对话遇见数据分析 如果你和我一样&#xff0c;每天都要和数据仓库、BI报表打交道&#xff0c;那你肯定也经历过这样的场景&#xff1a;业务同事跑过来问&#xff0c;“帮我看看过去一周的CTR趋势”&#xff0c;或者“对比一下这两个渠道的转化…...

嵌入式与半导体年度技术趋势:从RISC-V、Matter到EDA 2.0与软件定义汽车

1. 从年度回顾看嵌入式与半导体行业的技术脉搏又到年底复盘时&#xff0c;各大技术媒体都在梳理过去一年的重磅内容。最近看到EE Times整理其编辑Nitin Dahad的2022年度六大精选故事&#xff0c;感触颇深。这六篇文章&#xff0c;像六个精准的切片&#xff0c;生动勾勒了过去一…...

AI创业从模型竞赛到场景落地:2026年生态爆发与实战指南

1. 从HumanX 2026归来&#xff1a;我眼中的AI创业生态爆发图景刚从HumanX 2026的会场回来&#xff0c;整个人还沉浸在那种高速迭代、热气腾腾的氛围里。如果你问我最大的感受是什么&#xff0c;我会毫不犹豫地说&#xff1a;AI创业的“场景化落地”竞赛&#xff0c;已经进入了白…...

别再混淆了!结构方程模型SEM中的反映型vs构成型指标,用PLS-PM一次讲清

结构方程模型中的反映型与构成型指标&#xff1a;理论辨析与PLS-PM实战指南 在数据分析的复杂世界里&#xff0c;结构方程模型(SEM)就像是一把瑞士军刀&#xff0c;能够同时处理测量模型和结构模型。但许多研究者在使用这把"军刀"时&#xff0c;常常忽略了一个关键细…...

AI工作流自动化实践:Claude数据同步工具架构与实现

1. 项目概述与核心价值 最近在折腾AI应用集成的时候&#xff0c;发现一个挺有意思的项目&#xff0c;叫 cam901051/claude-sync 。乍一看这个标题&#xff0c;你可能会有点懵&#xff0c;这到底是干嘛的&#xff1f;简单来说&#xff0c;这是一个旨在实现Claude&#xff08;…...

SINAMICS V90伺服驱动器故障代码大全

SINAMICS V90伺服驱动器在运行过程中可能出现故障&#xff0c;导致设备停机。用户可通过BOP面板或调试软件查看故障代码&#xff0c;并根据以下信息判断故障原因及处理方法。序号报警号信息故障信息可能原因处理方法1F1000内部软件错误出现了一个内部软件错误。分析故障缓冲器为…...

BLE技术解析:物联网低功耗无线通信核心

1. BLE技术概述&#xff1a;物联网的无线连接基石蓝牙低功耗技术&#xff08;Bluetooth Low Energy&#xff0c;简称BLE&#xff09;自2010年作为蓝牙4.0核心规范的一部分推出以来&#xff0c;已成为物联网设备无线通信的事实标准。与经典蓝牙技术相比&#xff0c;BLE在保持相似…...

别再写面条代码了!用C语言状态机重构你的单片机项目(附51单片机HSM可移植框架)

从面条代码到优雅架构&#xff1a;用HSM状态机重构嵌入式系统的实战指南 当你面对一个智能家居设备的嵌入式项目&#xff0c;代码里充斥着数百行的if-else嵌套和switch-case分支&#xff0c;每次添加新功能都像是在一碗已经坨掉的面条上再浇一勺酱料——这样的开发体验&#xf…...

Midjourney水彩风提示词已进入“语义过载”危机?2024Q2最新精简指令集发布(仅保留11个高响应关键词,准确率提升63.8%)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney水彩风提示词的语义过载现象本质解析 水彩风格生成中&#xff0c;“watercolor”、“gouache”、“loose brushstrokes”、“wet-on-wet”等提示词常被叠加使用&#xff0c;表面增强风格表征…...