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

测试

  • 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:业界最顶尖的功能测试工具,他甚至可以在测试人员学习高级脚本技术之前
帮助其进行成功的测试

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

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

相关文章

物以类聚的Kmeans:数据分群的暴力美学

物以类聚的Kmeans:数据分群的暴力美学 本文用三维可视化解析Kmeans聚类如何将混沌数据划出清晰边界,从算法原理、数学推导、评估指标到Python实战,揭示“无监督学习”的暴力美学与致命陷阱。 聚类算法 文章摘要 🔍 《Kmeans聚类…

正式页面开发-登录注册页面

整体路由设计: 登录和注册的切换是切换组件或者是切换内容(v-if和 v-else),因为点击两个之间路径是没有变化的。也就是登录和注册共用同一个路由。登录是独立的一级路由。登录之后进到首页,有三个大模块:文章分类&…

fopen的打开方式

fopen的打开方式 FILE *fopen(const char *filename, const char *mode); filename表示文件名字, mode表示打开的文件方式

Docker 常用指令手册(学习使用)

CentOS Docker 实用指令手册 1. 安装与配置 # CentOS 安装Docker sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io sudo systemctl st…

PostgreSQL中的外键与主键

在 PostgreSQL 中,外键(Foreign Key) 是一种用于建立表间关联的数据库约束机制,其核心作用与主键(Primary Key)有显著区别。以下是详细解析: 一、外键的定义与作用 定义 外键是表中的一个或多个…

NFC拉起微信小程序申请URL scheme 汇总

NFC拉起微信小程序,需要在微信小程序开发里边申请 URL scheme ,审核通过后才可以使用NFC标签碰一碰拉起微信小程序 有不少人被难住了,从微信小程序开发社区汇总了以下信息,供大家参考 第一,NFC标签打开小程序 https://…

如何使用clip模型进行OOD

使用CLIP模型进行OOD检测(Out-of-Distribution Detection) 的核心思路是:利用CLIP的多模态对齐能力(图像和文本的联合嵌入空间),通过计算输入样本与已知类别语义的匹配度,判断其是否属于已知分布。 CLIP的…

Word 插入图片会到文字底下解决方案

一、现象描述 正常情况下,我们插入图片都是这样的。 但有时突然会这样,插入的图片陷于文字底部。 二、网上解决方案 网上有教程说,修改图片布局选项,从嵌入型改成上下型环绕。改完之后确实有用,但是需要手动拖动图片…

1. HTTP 数据请求

相关资源: 图片素材📎图片素材.zip 接口文档 1. HTTP 数据请求 什么是HTTP数据请求: (鸿蒙)应用软件可以通过(鸿蒙)系统内置的 http 模块 和 Axios,通过 HTTP 协议和服务器进行通讯 学习核心Http请求技术: Http模块 - 属于鸿…

【我的 PWN 学习手札】House of Husk

House of Husk House of Husk是利用格式化输出函数如printf、vprintf在打印输出时,会解析格式化字符如%x、%lld从而调用不同的格式化打印方法(函数)。同时C语言还提供了注册自定义格式化字符的方法。注册自定义格式化字符串输出方法&#xf…

CTF-web: 查看python代码抽象语法树

抽象语法树(Abstract Syntax Tree,简称 AST)是源代码的树状表示,展示了代码的语法结构。在 Python 中,ast 模块可以帮助你解析和操作 Python 代码的 AST。 1. 使用 ast 模块解析 Python 代码 我们可以使用 ast.parse …

【多模态】Magma多模态AI Agent

1. 前言 微软杨建伟团队,最近在AI Agent方面动作连连,前两天开源了OmniParser V2,2月26日又开源了Magma,OmniParser专注在对GUI的识别解析,而Magma则是基于多模态技术,能够同时应对GUI和物理世界的交互&…

Linux系统Pycharm界面卡死无法显示其他界面

1、使用如下代码查看Pycharm的进程 ps aux | grep pycharm2、使用kill关闭所有pycharm进程 kill -9 <替换为你进程的PID>不确定可以执行如下代码&#xff0c;直接全部关闭&#xff1a; pkill -9 -f pycharm3、如果界面还是存在并且仍然卡死 如果 pycharm 界面仍然显…

QT异步编程之线程池QThreadPool

一、概述 在一个应用程序中&#xff0c;我们需要多次使用线程&#xff0c;也就意味着&#xff0c;我们需要多次创建并销毁线程。而创建线程并销毁线程的过程势必会消耗内存。QThreadPool是Qt框架中用于管理线程池的类。它提供了一种高效的方式来管理和重用线程&#xff0c;从而…

Python爬虫:WebAssembly案例分析与爬取实战

文章目录 一、WebAssembly简介1.1 什么是WebAssembly?1.2 WebAssembly的优势1.3 WebAssembly 的使用场景1.4 WebAssembly 对爬虫的挑战二、WebAssembly案例分析2.1 案例一:在线游戏2.2 案例二:图像处理应用三、Python爬虫实战:处理WebAssembly模块3.1 案例一3.2 案例二四、…

vue3配置端口,比底部vue调试

import { fileURLToPath, URL } from ‘node:url’ import { defineConfig } from ‘vite’ import vue from ‘vitejs/plugin-vue’ import vueJsx from ‘vitejs/plugin-vue-jsx’ // 关闭vue底部调试模式 // import vueDevTools from ‘vite-plugin-vue-devtools’ // htt…

算法仿真平台搭建1-FFMPEG+RtspSever快速搭建一个RTSP服务器

一、前言 本文相关的全部源码和RtspSever库&#xff0c;我已打包上传&#xff0c;欢迎大家免费下载&#xff0c;testRTSPSever。 每一个嵌入式视觉算法工程师&#xff0c;都应该有一套属于自己的算法仿真和测试环境。可以方便地进行视频、图像等素材进行在线导入&#xff0c;可…

大模型WebUI:Gradio全解12——LangChain原理、架构和组件(2)

大模型WebUI:Gradio全解12——LangChain原理、架构和组件(2) 前言12. LangChain原理及agents构建Gradio UI12.2 学习资料12.2.1 学习文档12.2.2 用途示例12.2.3 OpenAI和DeepSeek例程1. OpenAI示例2. DeepSeek例程参考文献前言 本系列文章主要介绍WEB界面工具Gradio。Gradi…

盛京开源社区加入 GitCode,书写东北开源生态新篇章

在数字化转型与开源技术蓬勃发展的浪潮下&#xff0c;开源社区已成为推动技术创新的核心力量。盛京开源社区&#xff08;SJOSC&#xff09;作为沈阳地区的开源交流平台&#xff0c;始终致力于连接开发者、企业及高校&#xff0c;构建区域技术生态圈。 现在&#xff0c;盛京开源…

安装Git(小白也会装)

一、官网下载&#xff1a;Git 1.依次点击&#xff08;红框&#xff09; 不要安装在C盘了&#xff0c;要炸了&#xff01;&#xff01;&#xff01; 后面都 使用默认就好了&#xff0c;不用改&#xff0c;直接Next&#xff01; 直到这里&#xff0c;选第一个 这两种选项的区别如…