软件测试分类篇(下)

news2024/11/14 2:30:30

目录

一、按照测试阶段分类

1. 单元测试

2. 集成测试

3. 系统测试

3.1 冒烟测试

3.2 回归测试

4. 验收测试

二、按照是否手工测试分类

1. 手工测试

2. 自动化测试

3. 手工测试和自动化测试的优缺点

三、按照实施组织分类

1. α测试(Alpha Testing)

2. β测试(Beta Testing)

3. 第三方测试

四、按照测试地域分类

1. 国际化测试

2. 本地测试


一、按照测试阶段分类

1. 单元测试

  • 目的测试单个模块或函数的功能。
  • 方法针对每个单元编写测试用例。

        与编码同步进行,针对软件最小组成单元进行测试,主要采用白盒测试方法,从被测对象的内部结构出发设计测试用例,到底怎么才算“最小单元”呢,最小单元实际是认为定义的,⼀个方法,一个类都可以理解为“最小单元”。

  • 测试阶段:编码后或者编码前(TDD)
  • 测试对象:最小模块
  • 测试人员:白盒测试工程师或开发工程师
  • 测试依据:代码和注释+详细设计文档
  • 测试方法:白盒测试
  • 测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试

2. 集成测试

  • 目的测试多个模块或组件的集成效果。
  • 方法检查接口和数据流的正确性。

        集成测试也称联合测试(联调)、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。

  • 测试阶段:一般单元测试之后进行
  • 测试对象:模块间的接口
  • 测试人员:白盒测试工程师或开发工程师
  • 测试依据:单元测试的模块+概要设计文档
  • 测试方法:黑盒测试与白盒测试相结合
  • 测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响 

3. 系统测试

  • 目的测试整个系统的运行效果。
  • 方法模拟实际运行环境,进行全面测试。

对通过集成测试的系统进行整体测试,验证系统功能性和非功能性需求的实现。

  • 测试阶段:集成测试通过之后
  • 测试对象:整个系统(软、硬件)
  • 测试人员:黑盒测试工程师
  • 测试依据:需求规格说明文档
  • 测试方法:黑盒测试
  • 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

3.1 冒烟测试

        这一术语源自硬件行业。对⼀个硬件或硬件组件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试。在软件中,“冒烟测试”这一术语描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程。在检查了代码后,冒烟测试是确定和修复软件缺陷的最经济有效的方法。冒烟测试设计用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。

        冒烟测试的对象是每⼀个新编译的需要正式测试的软件版本,目的是确认软件主要功能和核心流程正常,在正式进行系统测试之前执行。冒烟测试一般在开发人员开发完毕后提交给测试人员来进行测试时,先进行冒烟测试,保证基本功能正常,不阻碍后续的测试。

        如果冒烟测试通过,则测试人员开始进行正式的系统测试,如果不通过,则测试人员可以让开发人员重新修复代码直到冒烟测试通过,再开始进行系统测试。

        在生活中,购买⼀个电视,首先会通电,查看电视是否能够运行。购买⼀个水杯,首先会灌水,查看水杯是否漏水。

        在工作中,假如有⼀个博客系统项目提测了,冒烟测试即只需要测试系统是否能够成功打开,主流程是否可以走通即可。

3.2 回归测试

        回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

        在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。随着系统的庞大,回归测试的成本越来越大,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。

        回归测试主要由人工测试和自动化测试进行。

        在实际工作中,回归测试需要反复进行,当测试者⼀次又⼀次地完成相同的测试时,这些回归测试将变得非常令人厌烦,而在大多数回归测试需要手工完成的时候尤其如此,因此,需要通过自动测试来实现重复的和⼀致的回归测试。通过测试自动化可以提高回归测试效率。为了支持多种回归测试策略,自动测试工具应该是通用的和灵活的,以便满足达到不同回归测试目标的要求。

4. 验收测试

  • 目的确保软件满足用户需求。
  • 方法用户参与测试,验证功能和性能。

        针对用户需求,对通过系统测试的软件进行交付性测试,以确定系统是否满足验收标准,由用户或其他授权机构决定是否接受系统。验收测试是部署软件之前的最后⼀个测试操作。它是技术测试的最后⼀个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买者展示该软件系统满足原始需求。

  • 测试阶段:系统测试通过之后
  • 测试对象:整个系统(包括软硬件)。
  • 测试人员:主要是最终用户或者需求方。
  • 测试依据:用户需求、验收标准
  • 测试方法:黑盒测试
  • 测试内容:同系统测试(功能...各类文档等)

🌴单元测试,集成测试,系统测试,回归测试之间的关系

关于车企生产车到客户开上小汽车的全过程:

        造车需要原材料,如车轮、发动机等零部件不是车企自己制造出来的,而是通过购买零部件来造车。对买来的零部件进行检查,零部件是否符合造车标准(单元测试

        零件确认完毕,接下来就是复杂的造车工艺,将零部件集成起来构成了⼀辆车,并初步检查拼成的车是否能正常运作(集成测试

        一辆车成型之后并不意味着就可以直接销售给客户了,需要车企专业的测试人员进行详细而完整的测试。(系统测试

        专业的测试人员对企业测试完毕,通过测试的汽车将会在车展或者4S店进行展示,供用户进行选择和购买。用户在选择汽车的过程中也会对车外观以及性能等方面进行校验(验收测试

二、按照是否手工测试分类

1. 手工测试

  • 定义由测试人员手动执行测试用例。
  • 优点灵活性高,适用于复杂的测试场景。
  • 缺点:效率低,容易出错。

        手工测试就是由人去⼀个⼀个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的⼀个步骤。

2. 自动化测试

  • 定义使用自动化工具执行测试用例。
  • 优点效率高,可重复性强。
  • 缺点需要额外的开发和维护成本。

        就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。简单说自动化测试是把以人为驱动的测试行为转化为机器执行的⼀种过程。 自动化测试比如功能测试自动化、性能测试自动化、安全测试自动化。 自动化测试按照测试对象来分,还可以分为接口测试、UI测试等。接口测试的ROI(产出投入比)要比UI测试高。

3. 手工测试和自动化测试的优缺点

  • 手工测试适合探索性测试和复杂场景。
  • 自动化测试适合回归测试和重复性高的场景。
自动化测试手工测试
优点
  • 节省成本
  • 提高测试人员执行工作效率
  • 保障软件的质量
  • 对测试人员技术要求没有自动化技术要求高
  • 可以进行发散性测试
缺点
  • 对测试人员技术要求较高
  • 不能发散性测试
  • 效率低
  • 人员、时间成本比起自动化测试都比较高

三、按照实施组织分类

大型通用软件,在正式发布前,通常需要执行Alpha和Beta测试

1. α测试(Alpha Testing)

  • 定义在开发环境中由开发者或测试人员进行的测试。
  • 目的发现和修复初步的错误。

        α测试又叫内测或者叫a测,其实都是一个涵义。

        α测试通常是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、可使用性、可靠性、性能和支持)。 α测试不能由程序员或测试员完成。

2. β测试(Beta Testing)

  • 定义在用户环境中由实际用户进行的测试。
  • 目的收集用户反馈,优化产品。

        β测试又叫公测或者叫b测。

        β测试由软件的最终用户们在⼀个或多个场所进行,这里就可以理解为,β测试是正式用户中的⼀部分,他们在任意的场合来使用软件,目的是为了发现软件是否存在⼀系列的问题。

        通常会发送一些邀请码,来邀请用户参与项目测试。

α测试与β测试的区别

测试的场所不同α测试是在公司内部进行测试的,但是β测试是在用户环境下进行测试的 α测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中 β测试的环境是不受开发方控制的,用户数量相对比较多,时间不集中。
测试执行时机不同通常是α测试通过后,在进行β测试
测试持续时间长短不同α测试时间没有β测试持续时间⻓

3. 第三方测试

  • 定义由独立的第三方测试机构进行的测试。
  • 目的提供客观的测试结果和建议。

        第三方软件测试是指由独立的第三方公司或组织进行的软件测试活动,通过第三方测试,可以确保软件的质量,节省成本,确保软件尽快上线。

四、按照测试地域分类

1. 国际化测试

  • 定义确保软件在不同国家和地区的本地化版本都能正常工作。
  • 方法语言、日期、货币格式等本地化测试。

国际化测试需要关注的软件特性:

  • 布局
  • 时间
  • 日期
  • 数字格式
  • 货币
  • 机器型号
  • .....

2. 本地测试

  • 定义针对特定地区或市场的测试。
  • 方法符合当地法规和用户习惯的测试。

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

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

相关文章

图像放大效果示例【JavaScript】

实现效果&#xff1a; 当鼠标悬停在小图&#xff08;缩略图&#xff09;上时&#xff0c;大图&#xff08;预览图&#xff09;会随之更新为相应的小图&#xff0c;并高亮当前悬浮的小图的父元素。 代码&#xff1a; 1. HTML部分 <!DOCTYPE html> <html lang"z…

Nginx简介;Nginx安装

一&#xff0c;Nginx简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器&#xff0c;在BSD-like 协议下发行。是一个高性能的HTTP和反向代理web服务器 &#xff0c;同时也提供了IMAP/POP3/SMTP服务。 其特点是占有内存少…

OpenCV特征检测(8)检测图像中圆形的函数HoughCircles()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在灰度图像中使用霍夫变换查找圆形。 该函数使用霍夫变换的一种修改版本在灰度图像中查找圆形。 例子&#xff1a; #include <opencv2/imgp…

【解密 Kotlin 扩展函数】扩展函数的创建(十六)

导读大纲 1.1 为第三方的类添加方法: 扩展函数 1.1 为第三方的类添加方法: 扩展函数 Kotlin 的主题之一是与现有代码的平滑集成 即使是纯 Kotlin 项目,也是构建在 Java 库之上的 如 JDK、Android 框架和其他第三方框架 而当你将 Kotlin 集成到 Java 项目中时 你还要处理尚未或不…

Ubuntu清理内存导致的一系列错误及解决方法

文章目录 火狐浏览器和pycharm消失打不开 安不上 卸不掉后记 火狐浏览器和pycharm消失 打不开 安不上 卸不掉 清理内存后&#xff0c;火狐和pycharm的图标都消失了&#xff0c;在终端输入Firefox显示无法打开 应当先snap install firefox&#xff0c;然而snap install firefo…

【排序算法】插入排序_直接插入排序、希尔排序

文章目录 直接插入排序直接插入排序的基本思想直接插入排序的过程插入排序算法的C代码举例分析插入排序的复杂度分析插入排序的优点 希尔排序希尔排序&#xff08;Shell Sort&#xff09;详解希尔排序的步骤&#xff1a;希尔排序的过程示例&#xff1a;希尔排序的C语言实现举例…

啥?Bing搜索古早BUG至今未改?

首先&#xff0c;大家先看下面的一个数学公式。 Γ ( z ) ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)∫0∞​tz−1e−tdt. 看不懂&#xff1f;没关系&#xff0c;因为我也看不懂 这不是谈论的重点。 当你把鼠标光标移到公式的最开头&…

netflix是什么样的企业文化

netflix是什么样的企业文化 Netflix的企业文化以其“自由与责任”而闻名&#xff0c;这种文化理念在业界被广泛誉为管理的“黄金法则”。《奈飞文化手册》自2009年面世以来&#xff0c;便迅速成为全球企业管理的典范&#xff0c;吸引了超过1500万次的在线阅读与下载。Netflix的…

【C++篇】引领C++模板初体验:泛型编程的力量与妙用

文章目录 C模板编程前言第一章: 初始模板与函数模版1.1 什么是泛型编程&#xff1f;1.1.1 为什么要有泛型编程&#xff1f;1.1.1 泛型编程的优势 1.2 函数模板的基础1.2.1 什么是函数模板&#xff1f;1.2.2 函数模板的定义格式1.2.3 示例&#xff1a;通用的交换函数输出示例&am…

【网络】高级IO——Reactor版TCP服务器

目录 1.什么是Reactor 1.1.餐厅里的Reactor模式 2.Reactor的由来 2.1.单 Reactor 单进程 / 线程 2.2.单 Reactor 多线程 / 多进程 2.3.多 Reactor 多进程 / 线程 3.实现单 Reactor 单进程版本的TCP服务器 3.1.Connection类 3.2.TcpServer类 3.3.Connection的真正用处 …

深蓝学院-- 量产自动驾驶中的规划控制算法 小鹏

文章目录 0. 前言1.发展现状2.行车功能中难点问题及解决思路问题1&#xff1a;车道居中辅助&#xff0c;画龙&#xff0c;蛇行问题。问题2&#xff1a;外界环境扰动以及传感器信息缺失下的横向控制难点问题3&#xff1a;大坡度平稳停车 3. 泊车功能中难点问题及解决思路问题1&a…

Spring AOP - 配置文件方式实现

目录 AOP基础概念 示例1&#xff1a;模拟在com.text包及子包项下所有类名称以ServiceImpl结尾的类的所有方法执行前、执行后、执行正常后返回值、执行过程中出异常的情况 示例2&#xff1a;统计com.text包及子包项下所有类名称以DaoImpl结尾的类的所有方法执行时长情况 AOP基…

汽车总线之---- CAN FD总线

CAN FD 最高可支持8M/s的通信速率&#xff0c;从传统CAN到CAN FD的转换是很容易实施和推广的。 CAN FD报文的帧&#xff1a;标准帧&#xff0c;扩展帧 CAN FD 标准帧结构 CAN FD 报文的标准帧与CAN 报文的标准帧的区别 CAN FD 报文的标准帧与CAN FD报文的扩展帧的区别&…

lsof可以查看当前系统中正在被使用的文件,包括动态库

lsof的英文是 list open files lsof打印结果的最后一列是Name&#xff0c;表示正在被使用或打开的文件名或动态库名 lsof直接回车&#xff0c;会显示很多&#xff0c;可以配合more命令查看 一个文件或动态库可能被多个进程打开&#xff0c;lsof会显示多行 lsof | more -1…

uniapp小程序持续获取用户位置信息,后台位置获取

做一个小程序持续获取用户位置信息的功能&#xff0c;即使小程序切换到后台也能继续获取&#xff0c;getLocation这个api只有小程序在前台才能获取位置&#xff0c;所以不用这个 先申请一个腾讯地图key 在uniapp项目配置源码视图里加上这个代码 先获取权限&#xff0c;再开启…

[项目:微服务即时通讯系统客户端(基于C++QT)]三,左侧界面搭建

三&#xff0c;左侧界面搭建 一&#xff0c;导入 先把MainWidget类做成“单例类” 采用的是单例模式&#xff0c;让某一个类&#xff0c;在指定进程中只有唯一的实例 先看一下MainWidget的框架 QWidget//这部分是头文件保护宏&#xff0c;确保该头文件只被包含一次&#x…

240922-chromadb的基本使用

A. 背景介绍 ChromaDB 是一个较新的开源向量数据库&#xff0c;专为高效的嵌入存储和检索而设计。与其他向量数据库相比&#xff0c;ChromaDB 更加专注于轻量化、简单性和与机器学习模型的无缝集成。它的核心目标是帮助开发者轻松管理和使用高维嵌入向量&#xff0c;特别是与生…

【软件工程】数据流图和数据字典

一、数据流图 3.符号 分析结果 二、数据字典 例题 选择题

使用build_chain.sh离线搭建匹配的区块链,并通过命令配置各群组节点的MySQL数据库

【任务】 登陆Linux服务器&#xff0c;以MySQL分布式存储方式安装并部署如图所示的三群组、四机构、 七节点的星形组网拓扑区块链系统。其中&#xff0c;三群组名称分别为group1、group2和group3&#xff0c; 四个机构名称为agencyA、agencyB、agencyC、agencyD。p2p_port、cha…

Python | Leetcode Python题解之第429题N叉树的层序遍历

题目&#xff1a; 题解&#xff1a; class Solution:def levelOrder(self, root: Node) -> List[List[int]]:if not root:return []ans list()q deque([root])while q:cnt len(q)level list()for _ in range(cnt):cur q.popleft()level.append(cur.val)for child in c…