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

软件工程复试专业课-测试

测试

  • 1 软件质量
  • 2 黑盒测试
    • 2.1 概念
    • 2.2 等价划分类
  • 2.3 边值分析
    • 2.4 错误推测
    • 2.5 因果图
  • 3 白盒测试
    • 3.1概念
    • 3.2 覆盖标准
      • 3.2.1 语句覆盖
      • 3.2.2 判断覆盖
      • 3.2.3 条件覆盖
      • 3.2.4 判定/条件覆盖
      • 3.2.5 条件组合覆盖
      • 3.2.6 路径覆盖
  • 4 软件测试的四个阶段
  • 5 测试工具

1 软件质量

	定义:是软件特性的总和,以及满足规定和潜在用户需求的能力概括的说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”更具体的描述,软件质量是软件与明确叙述的功能和性能需求、文档中明确描述的开发标准、以及任何
专业开发的软件产品都应具有的隐含特征相一致的程度

2 黑盒测试

2.1 概念

	又称功能测试,主要用于集成测试和确认测试阶段。它把软件看作一个不透明的黑箱子,完全
不考虑(或不了解)软件的内部结构和处理算法,它只检查软件功能是否能按照软件需求说明
书的要求正常使用,软件是否能适当地接收输入数据并产生正确的输出信息,软件运行过程中
能否保持外部信息(例如文件和数据库)的完整性等。黑盒测试根据软件需求说明书所规定的功能来设计测试用例,它不考虑软件的内部结构和处理算法。
常用的黑盒测试技术包括等价类划分、边值分析、错误推测和因果图等。

2.2 等价划分类

	在设计测试用例时,等价类划分是用得最多的一种黑盒测试方法。所谓等价类就是某个输入域的集合,
对于一个等价类中的输入值来说,它们揭示程序中错误的作用是等效的。也就是说,如果等价类中的
一个输入数据能检测出一个错误,那么等价类中的其他输入数据也能检测出同一个错误;反之,如果
等价类中的一个输入数据不能检测出某个错误,那么等价类中的其他输入数据也不能检测出这一错误
(除非这个等价类的某个子集还属于另一等价类)。如果一个等价类内的数据是符合(软件需求说明书)要求的、合理的数据,则称这个等价类为有效
等价类。有效等价类主要用来检验软件是否实现了软件需求说明书中规定的功能。如果一个等价类内的数据是不符合(软件需求说明书)要求的、不合理或非法的数据,则称这个等价
类为无效等价类。无效等价类主要用来检验软件的容错性。黑盒测试中,利用等价类划分方法设计测试用例的步骤是:
① 根据软件的功能说明,对每一个输入条件确定若干个有效等价类和若干个无效等价类,并为每个有效
等价类和无效等价类编号。
② 设计一个测试用例,使其覆盖尽可能多的尚未被覆盖的有效等价类。重复这一步,直至所有的有效
等价类均被覆盖。
③ 设计一个测试用例,使其覆盖一个尚未被覆盖的无效等价类。重复这一步,直至所有的无效等价类
均被覆盖。

2.3 边值分析

	经验表明,软件在处理边界情况时最容易出错。设计一些测试用例,使软件恰好运行在
边界附近,暴露出软件错误的可能性会更大一些。通常,每一个等价类的边界,都应该着重测试,选取的测试数据应该恰好等于、稍小于或稍大于边界值。
将等价类划分法和边值分析法结合使用,更有可能发现软件中的错误。

2.4 错误推测

	使用等价类划分和边值分析技术,有助于设计出具有代表性的、容易暴露软件错误的测试方案。
但是,不同类型不同特定的软件通常又有一些特殊的容易出错的地方。错误推测法主要依靠测试人员的经
验和直觉,从各种可能的测试方案中选出一些最可能引起程序出错的方案。

2.5 因果图

	因果图法是根据输入条件与输出结果之间的因果关系来设计测试用例的,它首先检查输入条件的各种
组合情况,并找出输出结果对输入条件的依赖关系,然后为每种输出条件的组合设计测试用例。

3 白盒测试

3.1概念

	白盒测试,又称结构测试,主要用于单元测试阶段。它的前提是可以把程序看成装在一个透明
的白箱子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部逻辑设计测试用
例,检测程序中的主要执行通路是否都能按预定要求正常工作。白盒测试根据软件的内部逻辑设计测试用例,常用的技术是逻辑覆盖,即考察用测试数据运行
被测程序时对程序逻辑的覆盖程度

3.2 覆盖标准

3.2.1 语句覆盖

语句覆盖是指选择足够多的测试用例,使得运行这些测试用例时,被测程序的每个语句至少执行一次。
很显然,语句覆盖是一种很弱的覆盖标准。

3.2.2 判断覆盖

又称分支覆盖,它的含义是,不仅每个语句至少执行一次,而且每个判定的每种可能的结果(分支)
都至少执行一次。判定覆盖比语句覆盖强,但对程序逻辑的覆盖程度仍然不高。

3.2.3 条件覆盖

条件覆盖的含义是,不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取得各种可能的结果。
条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖。

3.2.4 判定/条件覆盖

同时满足判定覆盖和条件覆盖的逻辑覆盖称为判定/条件覆盖。它的含义是,选取足够的测试用例,
使得判定表达式中每个条件的所有可能结果至少出现一次,而且每个判定本身的所有可能结果也至少出现一次。

3.2.5 条件组合覆盖

条件组合覆盖的含义是,选取足够的测试用例,使得每个判定表达式中条件结果的所有可能组合至少出现一次。
显然,满足条件组合覆盖的测试用例,也一定满足判定/条件覆盖。因此,条件组合覆盖是上述 5 种覆盖标准
中最强的一种。然而,条件组合覆盖还不能保证程序中所有可能的路径都至少经过一次。

3.2.6 路径覆盖

路径覆盖的含义是,选取足够的测试用例,使得程序的每条可能执行到的路径都至少经过一次(如果
程序中有环路,则要求每条环路路径至少经过一次)。
路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,因此是一种较强的覆盖标准。但路径覆盖
并未考虑判定中的条件结果的组合,并不能代替条件覆盖和条件组合覆盖。

4 软件测试的四个阶段

单元测试、集成测试、系统测试和验收测试

5 测试工具

1、Selenium(浏览器自动化测试框架)
2、LoadRunner(工业标准级负载测试工具)
3、Jmeter:APache组织开源项目,功能和特性测试的工具,100%用java实现
4、Rational Robot:业界最顶尖的功能测试工具,他甚至可以在测试人员学习高级脚本技术之前
帮助其进行成功的测试

相关文章:

软件工程复试专业课-测试

测试 1 软件质量2 黑盒测试2.1 概念2.2 等价划分类 2.3 边值分析2.4 错误推测2.5 因果图 3 白盒测试3.1概念3.2 覆盖标准3.2.1 语句覆盖3.2.2 判断覆盖3.2.3 条件覆盖3.2.4 判定/条件覆盖3.2.5 条件组合覆盖3.2.6 路径覆盖 4 软件测试的四个阶段5 测试工具 1 软件质量 定义&…...

Unity XR-XR Interaction Toolkit开发使用方法(十)组件介绍(XR Interaction Group)

目录 一、插件介绍 二、主要组件 XR Interaction Manager XR Controller XR Interactor XR Direct Interactor XR Ray Interactor XR Socket Interactor XR Gaze Interactor 三、XR Interaction Group 1、组件介绍 2、核心功能与特点 优先级与冲突管理 动态交互切…...

【2025.2.25更新】wordpress免费AI插件,文章内容、图片自动生成、视频自动生成、网站AI客服、批量采集文章,内置deepseek联网满血版

wordpress免费AI插件,文章内容、文章图片、长尾关键词、视频自动生成、网站AI客服、批量采集文章,插件已接入腾讯云大模型知识引擎xDeepSeek,基于腾讯云大模型知识引擎xDeepSeek可联网满血版,插件可实现文章生成、长尾关键词生成、…...

ISIS(中间系统到中间系统)——基础

ISIS是一项通用的动态路由协议,其隶属于链路状态路由协议,最初运行与OSI七层的网络层,采用组播地址224.0.0.14和224.0.0.15两个组波段,由于其较高的拓展性与高速收敛,被大多数运营商网络所使用 起源 ISIS最初是由国际…...

DeepSeek 开源狂欢周(二)DeepEP深度技术解析 | 解锁 MoE 模型并行加速

在大模型时代,Mixture-of-Experts (MoE) 模型凭借其强大的容量和高效的计算能力,成为研究和应用的热点。然而,MoE 模型的训练和推理面临着巨大的专家并行通信挑战。近日,DeepSeek 开源了 DeepEP 项目,为解决这一难题提…...

Linux网络之传输层协议(UDP,TCP协议)

目录 重新认识端口号 端口号划分 netstat pidof UDP协议 UDP的特点 面向数据报 UDP的缓冲区 全双工和半双工 TCP协议 TCP的特点 TCP报头分析 源端口,目标端口,数据偏移(报文首部长度) 序号 确认号 窗口 6个标志位 ACK SYN …...

HTML第二节

一.列表 1.列表的简介 2.无序列表 注:1.ul里面只能放li,不能放标题和段落标签 2.li里面可以放标题和段落等内容 3.有序列表 4.定义列表 注:要实现上图的效果需要CSS 二.表格 1.表格介绍 注:1.th有额外的效果,可以…...

坐标变换及视图变换和透视变换(相机透视模型)

文章目录 2D transformationScaleReflectionShear(切变)Rotation around originTranslationReverse变换顺序复杂变换的分解 齐次坐标(Homogenous Coordinates)3D transformationScale&TranslationRotation Viewing / Camera t…...

Vue 表单优化:下拉框值改变前的确认提示与还原逻辑实现

在开发表单类功能时,我们经常需要对用户的重要操作进行确认提示,以避免误操作导致的数据丢失或错误。本文将通过一个实际案例,介绍如何在 Vue 中实现下拉框值改变前的确认提示,并在用户取消操作时还原原始值。 场景描述 在项目中…...

使用mermaid查看cursor程序生成的流程图

一、得到cursor生成的流程图文本 cursor写的程序正常运行后,在对话框输入框中输入诸如“请生成扫雷的代码流程图”,然后cursor就把流程图给生成了,但是看到的还是文本的样子,保留这部分内容待用 二、注册一个Mermaid绘图账号 …...

Flask 应用结构与模块化管理详细笔记

1. 代码结构优化:StructureA 最初的 Flask 项目结构适用于小型应用,但不适用于大型应用。为了改进代码结构,我们将 URL 管理应用拆分为多个模块。 1.1 StructureA 目录结构 StructureA |-- .flaskenv |-- app.py |-- views.py |-- templat…...

(八)趣学设计模式 之 装饰器模式!

目录 一、 啥是装饰器模式?二、 为什么要用装饰器模式?三、 装饰器模式的实现方式四、 装饰器模式的优缺点五、 装饰器模式的应用场景六、 装饰器模式 vs 代理模式七、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢…...

JVM线程分析详解

java线程状态: 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。 线程对象创建…...

毕业项目推荐:基于yolov8/yolo11的野生菌菇检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示:功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出(xls格式)功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…...

DeepSeek 助力 Vue3 开发:打造丝滑的页眉(Header)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...

常用空间数据结构对比

空间数据结构是用来组织和查询多维空间数据的算法结构。它们在地理信息系统 (GIS)、计算机图形学、机器人导航、机器学习等领域非常重要。以下是几种常见空间数据结构的对比: 1. 四叉树(Quadtree) 适用场景:二维空间数据&#x…...

PHP应用程序设计:一个实际的例子(3)

使应用程序适用于网络 如果你正好计划用P H P开发你自己的服务程序(或者其他一些相似的东西),请重新思考一下。你可能已经对这些思想有些迷惑了:实现一个聊天服务程序意味着实现一个网络服务程序。这是我们实际上介绍给大家的东西…...

RabbitMQ 的介绍与使用

一. 简介 1> 什么是MQ 消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。 其主要用途:不同进程Process/线程T…...

spring boot 连接FTP实现文件上传

spring boot 连接FTP实现文件上传 maven&#xff1a; <!--ftp--><dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.8.0</version></dependency>接口示例&#xff1a; ApiO…...

OpenCV给图像添加噪声

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 如果你已经有了一张干净的图像&#xff0c;并希望通过编程方式向其添加噪声&#xff0c;可以使用 OpenCV 来实现这一点。以下是一个简单的例子&a…...

Elasticsearch:使用阿里云 AI 服务进行嵌入和重新排名

作者&#xff1a;来自 Elastic Toms Mura 将阿里云 AI 服务功能与 Elastic 结合使用。 更多阅读&#xff0c;请参阅 “Elasticsearch&#xff1a;使用阿里 infererence API 及 semantic text 进行向量搜索”。 在本文中&#xff0c;我们将介绍如何将阿里云 AI 功能与 Elastics…...

管理后台环境配置

后端配置及启动 a. 软件安装 1. Java sdk 1.8 2. maven 3.6 3. intellij IDEA 2024 4. Visual C Redistributable 5. mongodb 7.0 6. mysql 8.0 双击安装&#xff1a;mysql-installer-community-8.0.41.0.msi 版本选择&#xff1a;Full&#xff0c;包括服务器和客户端 …...

数字IC低功耗后端设计实现之power gating和isolation技术

考虑低功耗设计需求&#xff0c;下图中间那个功能模块是需要做power domain的&#xff0c;即这个模块需要插MTCMOS。需要开启时&#xff0c;外面的VDD会和这个模块的LOCAL VDD形成通路&#xff0c;否则就是断开即power off状态。 这些低功耗设计实现经验&#xff0c;你真的懂了…...

【网络编程】几个常用命令:ping / netstat / xargs / pidof / watch

ping&#xff1a;检测网络联通 1. ping 的基本功能2. ping 的工作原理3. ping 的常见用法4. ping 的输出解释5. ping 的应用场景6. 注意事项 netstat&#xff1a;查看网络状态 1. netstat 的基本功能2. 常见用法3. 示例4. 输出字段解释5. netstat 的替代工具6. 注意事项 xargs&…...

sqlilab 46 关(布尔、时间盲注)

sqlilabs 46关&#xff08;布尔、时间盲注&#xff09; 46关有变化了&#xff0c;需要我们输入sort&#xff0c;那我们就从sort1开始 递增测试&#xff1a; 发现测试到sort4就出现报错&#xff1a; 我们查看源码&#xff1a; 从图中可看出&#xff1a;用户输入的sort值被用于查…...

视觉应用工程师(面试)

视觉应用工程师&#xff08;面试&#xff09; 1.自我介绍、会的技能、项目 2.相机和机械手调试过程 检查硬件&#xff0c;看软件驱动是否链接&#xff0c;调节相机和镜头保证能够识别这个物料&#xff0c;看接口和通讯是否正常&#xff0c;如&#xff1a;波特率&#xff0c;数…...

redis restore 命令的用法

Redis 的 RESTORE 命令用于将序列化后的数据&#xff08;通常由 DUMP 命令生成&#xff09;恢复为 Redis 的键值。它在数据迁移、备份恢复和跨实例同步等场景中非常有用。以下是详细说明&#xff1a; 作用 数据恢复 将 DUMP 命令生成的序列化数据重新加载到 Redis 中&#xff…...

当AI重构认知:技术狂潮下的教育沉思录

备注&#xff1a;文章未Deepseek R1模型辅助生成&#xff0c;如有不妥请谅解。 以下使原文&#xff1a; 我有三个娃&#xff0c;各间隔4到5岁&#xff0c;经历过搜索引擎&#xff0c;短视频&#xff0c;短剧&#xff0c;本身曾经也是教育专业出生&#xff0c;任何事务都有两面性…...

《Effective Objective-C》阅读笔记(下)

目录 内存管理 理解引用计数 引用计数工作原理 自动释放池 保留环 以ARC简化引用计数 使用ARC时必须遵循的方法命名规则 变量的内存管理语义 ARC如何清理实例变量 在dealloc方法中只释放引用并解除监听 编写“异常安全代码”时留意内存管理问题 以弱引用避免保留环 …...

穷举vs暴搜vs深搜vs回溯vs剪枝(典型算法思想)—— OJ例题算法解析思路

回溯算法的模版 void backtrack(vector<int>& path, vector<int>& choice, ...) {// 满⾜结束条件if (/* 满⾜结束条件 */) {// 将路径添加到结果集中res.push_back(path);return;}// 遍历所有选择for (int i 0; i < choices.size(); i) {// 做出选择…...