软件测试分类详解
一图看清软件测试分类

一、按测试技术分(是否查看代码)
**1. 黑盒测试**:软件功能是否正常使用【功能的测试】
**2. 白盒测试**:代码逻辑是否正确【结构的测试】
**3. 灰盒测试**:介于两者之间的测试,也称为接口测试
二、被测对象是否运行程序分:
1、动态测试
● 称动态分析,是指需要实际运行被测软件,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能等来发现软件的缺陷。
● 动态测试实际上也是通常意义上的测试,需要搭建测试环境,制订测试计划,设计测试用例,执行测试用例,编写测试报告等
2、静态测试
● 主要是采用走查、同行评审、会审等方法来查找错误,可以在项目开始之初就可以开始介入。
● 静态测试中的差错和分析功能是其他方法所不能替代的,静态测试能尽早发现文档中的问题,进而找出需求分析、软件设计中存在的问题,避免开发后期发现问题而需要返工,减少开发风险。
● 静态测试还能有效地检查代码的编写质量,为后续的维护打下坚实基础。
三、按测试手段分类
**1. 手工测试**:测试人员手动的对被测对象进行验证
**2. 自动化测试:**自己写测试脚本或通过第三方工具对被测对象进行测试
四、按测试阶段
1. 单元测试
概念:(Unit Testing)是指对软件中的最小可测试单元进行检查和验证。组件测试 也称:单元测试
● 什么是桩模块、驱动模块?
○ 桩模块∶被被测模块调用的模块。
○ 驱动模块∶调用被测模块的模块。
● 单元测试的技术∶黑盒白盒技术,但是白盒居多,黑盒居少,一般先做黑盒再做白盒。
● 单元测试重点∶功能性测试,健壮性(逆向测试∶无效值),性能。
● 单元测试前提条件∶完成编译的测试对象,测试环境,开发工具,测试对象的规范说明书
2. 集成测试
(Integration Testing)又称:组装测试;组件间的接口与交互测试。
● 概念:是在单元测试的基础上,按照设计要求,把单元测试通过的单元组成系统或子系统而进行的有序的测试,目的是检验不同程序单元或部件之间的接口关系是否符合设计的要求,能否正常运行。
● 接口和系统内不同部分的相互作用(交互)。
● 测试条件:是完成集成的被测系统,测试台,有关组件间交互的文档。
● 测试技术:包括白盒技术、黑盒技术,白盒居多,黑盒居少,对比单元测试,白盒下降,一般先做黑盒再做白盒。
● 集成测试测试策略:
○ 自顶向下集成
○ 自底向上集成
3. 系统测试
概念:(System Testing)为了验证和确认系统是否达到设计目标,对集成的硬件和软件系统进行的测试
● 对整个系统能不能满足用户需求的测试,目的检查软件是否满足需求。
● 是在实际环境下,与所在操作系统的其他部分(包括硬件、外设、网络、系统软件和数据库等)组合在一起进行的测试。
○ 系统测试的前期:主要看系统功能是否满足需求,被称为功能测试
○ 系统测试的后期:主要测试系统允许是否满足要求,以及在不同硬件和软件环境中的兼容性
■ 这部分主要有性能测试、兼容性测试、界面测试等。
● 系统测试能够发现哪些缺陷?会遗留哪些缺陷?
○ 发现缺陷∶非功能性缺陷、涉及整个系统的问题。
○ 遗留缺陷∶对用户的需求的错误理解、没有实现或者没有完全实现用户的隐性需求
4. 验收测试
概念:(Acceptance Testing)是软件产品发布之前所进行的软件测试活动。技术测试的最后一个阶段,也称为:交付测试。
目的:是确保软件准备就绪,并且可以让用户将其用于执行软件的既定功能和任务。
一般由用户/客户进行的确认是否可以接受一个系统的验证性测试。验收测试根据用户需求,业务流程进行的正式测试以确保系统符合所有验收的准则。
验收测试 分为:正式测试和非正式测试。
● 正式测试:是一项管理严格的过程,是系统测试的延续。
验收测试一般由用户派出代表和开发方的测试小组一起进行测试验收,也可能由用户单独验收,总之方式不限,最终的目的还是用户满意并接收。
● 非正式测:包括Alpha测试、Beta测试
a. Alpha测试:一般是在开发者所提供的场所进行测试,主要对软件最初版本进行测试,一般不对外发布,由开发人员、测试人员或用户共同参与。
b. Beta测试:是对上线之后的软件版本进行测试,完全脱离开发者的环境,完全交给用户测试。
五、按测试包含的内容:
**1. 功能测试**:各个功能模块是否正常
**2. 界面测试**:被测系统界面是否和原型图一致
**3. 安全测试**:对系统进行安全测试(账号多次输入错误,是否允许继续输)
**4. 兼容性测试**:在不同的环境下被测系统是否正常
**5. 易用性测试**:各个功能是否操作方便,是否容易理解、容易上手
**6. 性能测试**:某时间用户数量剧增,软件是否正常【负载测试、压力测试】
**7. 安装测试**
六、其他测试
1、 冒烟测试:
测试整个软件的主体业务功能是否可以正常的运行(在进行正式测试前(开发人员或测试主管)对主要功能核心功能进行的测试)
2、回归测试:
将某个缺陷提交给开发人员后由开发人员进行修复,修复完成后需测试人员再次进行的测试
3、探索性测试:
根据自己的项目经验而进行的随意测试
相关文章:
软件测试分类详解
一图看清软件测试分类 一、按测试技术分(是否查看代码) **1. 黑盒测试**:软件功能是否正常使用【功能的测试】 **2. 白盒测试**:代码逻辑是否正确【结构的测试】 **3. 灰盒测试**:介于两者之间的测试,也…...
网站怎么优化出排名
网站怎么优化出排名,独立站SEO优化应该怎么做?#独立站#推广优化#SEO优化 今天跟大家聊一下独立站的SEO,是指个人或者小型的企业对独立站进行一个优化,以提高他在搜索引擎中的排名和流量,从而吸引更多的这个客户和用户。…...
h5|web页面嵌套iframe传参给cocosCreator
h5|web页面嵌套iframe传参给cocosCreator 目录 一、快速浏览 二、详细实现与项目代码 三、安全性评估——iframe 实现效果: 一、快速浏览 在h5页面中,使用JavaScript获取需要传递的参数,如下: var token ZHESHINIDETOKEN; var phone 11…...
阿里云安全产品Web应用防火墙是什么?有什么作用?
Web应用防火墙是一款网站Web应用安全的防护产品,拦截针对您网站发起的Web通用攻击(如SQL注入、XSS跨站等)或是应用资源消耗型攻击(CC),同时也可以满足您网站从流量管理角度来防御业务风险,例如B…...
【SSM】Spring6(九.代理模式)
文章目录1.代理模式2. 静态代理3. 动态代理3.1 JDK动态代理3.2 CGLIB动态代理1.代理模式 代理模式主要有两种: 静态代理模式 动态代理模式 2. 静态代理 有这样一个业务:订单的生成,修改,查看详情。实现如下 package com.sdnu.…...
【1017. 负二进制转换】
来源:力扣(LeetCode) 描述: 给你一个整数 n ,以二进制字符串的形式返回该整数的 负二进制(base -2)表示。 注意, 除非字符串就是 "0",否则返回的字符串中不…...
C语言实现插入排序与希尔排序
目录 一,插入排序 插入排序C语言实现(升序) 1,将新元素插入到有序序列 2,循环的开始与终止 二,希尔排序 希尔排序C语言实现(升序) 1,单趟: 2&#x…...
第九章-DOM与CSS
style属性 文档中每个元素节点都有一个属性style。style属性包含着元素样式,查询这个属性将返回一个对象而不是一个简单的字符串。样式都存放在这个style对象的属性里。 var element getElementById("example") //查看颜色属性 element.style.color //…...
蓝桥杯真题练习
小蓝在玩一个寻宝游戏, 游戏在一条笔直的道路上进行, 道路被分成了 nn 个方格, 依次编号 1 至 nn, 每个方格上都有一个宝物, 宝物的分值是一个整数 (包括正数、负数和零), 当进入一个方格时即获得方格中宝物的分值。小蓝可 以获得的总分值是他从方格中获得的分值之和。 小蓝开始…...
插入排序的简单理解
详细描述 插入排序的基本思想是:将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增 1 的有序表。 在其实现过程中使用双层循环,外层循环针对除了第一个元素之外的所有元素,内层循环针对当前元素前面的有序表进行…...
Springboot框架集成Websocket通信方式
Websocket实现了“服务器”主动向“客户端”发送数据,改变了以往通过轮询、长轮训、长连接等方式获取服务器端数据的方式。 一、Websocket有三种不同的用场景,单播、广播和组播; (一)、单播(Unicast) 单播是客户端与服务器之间的“一对一”的连接。是在一个单个的发送…...
将json数据分组
在工作中有时需要根据业务需要,将大量数据进行处理分成几个一组 // 例如要将下方数据进行处理 var stuCount [{"id": "1612321835288","libraryCode": "D","regionCode": "A","positionCode&qu…...
从零开始实现一个C++高性能服务器框架----Socket模块
此项目是根据sylar框架实现,是从零开始重写sylar,也是对sylar丰富与完善 项目地址:https://gitee.com/lzhiqiang1999/server-framework 简介 项目介绍:实现了一个基于协程的服务器框架,支持多线程、多协程协同调度&am…...
ld: library not found for -lcrt0.o
ld: library not found for -lcrt0.o 背景: Mac 系统编译的时候报错 语言:golang 原因: 代码使用了静态编译,-static。stack overflow 上说 This option will not work on Mac OS X unless all libraries (including libgcc.a…...
接口测试和功能测试的区别有哪些?说一些你不知道的知识
目录 接口测试和功能测试的区别 目的 测试范围 测试方法 重要性 编辑 举个例子 对于接口测试 对于功能测试 编辑 总结 接口测试和功能测试是软件测试中的两种常见测试类型,主要用于评估软件系统的质量。尽管这两种测试都是为了评估软件系统的性…...
深度学习实战——不同方式的模型部署(CNN、Yolo)
忆如完整项目/代码详见github:https://github.com/yiru1225(转载标明出处 勿白嫖 star for projects thanks) 目录 系列文章目录 一、实验综述 1.实验工具及及内容 2.实验数据 3.实验目标 4.实验步骤 二、ML/DL任务综述与模型部署知识…...
【论文阅读】GNN阅读笔记
A gentle introduction on gnn 前言 发表在distill的文章 图神经网络在应用上才刚刚开始 搭建了一个GNN playground 什么是图 图是表示实体之间的关系 可以分别表示成点向量、边向量、图向量 图可以分为有向图和无向图 数据是怎么表示成图 图片表示成图: …...
QT常用控件——QTreeWidget(树控件),QTableWidget控件
目录 ★先开个小灶,在此插句话:【有关Halcon与Qt联编变量转换】 QTreeWidget树控件 QTableWidget控件...
为什么学校购买小型数控机床而不是大型工业数控机床?
CNC 机器是计算机控制的设备,可以高精度和准确度地切割、雕刻、钻孔或雕刻各种材料。 它们广泛应用于制造、工程、设计和艺术行业。 CNC 机器具有不同的尺寸和功能,从小型台式机到大型工业机型。 人们可能想知道为什么学校会选择购买小型 CNC 机器而不是…...
【Go自学】一文搞懂Go append方法
我们先看一下append的源码 // The append built-in function appends elements to the end of a slice. If // it has sufficient capacity, the destination is resliced to accommodate the // new elements. If it does not, a new underlying array will be allocated. //…...
思博伦TestCenter打流丢包?别急着甩锅设备,先看看这个20字节的‘隐形签名’
思博伦TestCenter打流丢包?别急着甩锅设备,先看看这个20字节的‘隐形签名’ 当你在深夜的机房里盯着思博伦TestCenter的测试报告,发现RFC2544吞吐量测试结果突然归零,而端口统计与流统计的数值差异大得离谱时,那种抓狂…...
告别ODX文件!用AUTOSAR AP的SOVD协议,5分钟搞懂服务化诊断怎么玩
告别ODX文件!用AUTOSAR AP的SOVD协议,5分钟搞懂服务化诊断怎么玩 如果你是一名嵌入式软件工程师或诊断工程师,一定对传统UDS诊断中繁琐的ODX文件配置深恶痛绝。每次ECU升级都要重新生成和分发ODX文件,版本管理混乱,工具…...
Minikube国内环境配置全攻略:从安装到Dashboard镜像加速(含阿里云镜像源)
Minikube国内环境高效配置指南:从零搭建到Dashboard可视化 对于国内开发者而言,在本地环境中快速搭建Kubernetes学习平台往往面临镜像拉取缓慢甚至失败的困扰。本文将系统性地介绍如何利用Minikube在国内网络环境下构建稳定的单机Kubernetes环境…...
PROJECT MOGFACE技术解析:深入理解LSTM在序列建模中的替代与增强
PROJECT MOGFACE技术解析:深入理解LSTM在序列建模中的替代与增强 1. 引言 如果你在几年前接触过自然语言处理或者语音识别,那么“LSTM”这个词对你来说一定不陌生。它曾经是处理序列数据的黄金标准,从机器翻译到语音合成,几乎无…...
数据库工具效率提升指南:三步掌握开源数据库管理新范式
数据库工具效率提升指南:三步掌握开源数据库管理新范式 【免费下载链接】dblab The database client every command line junkie deserves. 项目地址: https://gitcode.com/gh_mirrors/db/dblab 在数据驱动开发的时代,开源数据库管理工具已成为开…...
告别演唱会抢票焦虑:大麦网Python自动化抢票脚本终极指南
告别演唱会抢票焦虑:大麦网Python自动化抢票脚本终极指南 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 还在为心仪歌手的演唱会门票秒光而烦恼吗?还在为黄牛高价票而心痛…...
小产后吃什么恢复快?科学修护助力身体回归健康
小产对女性身体的损伤不容忽视,气血亏虚、子宫损伤等问题若调理不当,可能留下长期健康隐患。当前,小产后修护已成为女性健康领域的重要关注点,如何通过科学方式实现高效恢复,避免浅层调理带来的后续问题,是…...
ROS 之 rosdep 进阶技巧:高效管理workspace依赖关系
1. 从单package到workspace:为什么需要rosdep进阶技巧 刚开始接触ROS的时候,我和大多数开发者一样,每次遇到依赖问题都是手动安装。比如看到Could not find a package configuration file provided by "xxx"这样的错误,…...
Ubuntu 20.04 LTS静态IP配置避坑指南:从NetworkManager到netplan的完整流程
Ubuntu 20.04 LTS静态IP配置深度解析:从NetworkManager到netplan的无缝迁移 在服务器管理和开发环境中,稳定的网络连接是基础中的基础。Ubuntu 20.04 LTS作为长期支持版本,其网络配置方式从传统的NetworkManager逐渐转向了更现代的netplan工具…...
ZLPhotoBrowser错误处理机制:构建稳定可靠的iOS图片选择器终极指南
ZLPhotoBrowser错误处理机制:构建稳定可靠的iOS图片选择器终极指南 【免费下载链接】ZLPhotoBrowser Wechat-like image picker. Support select photos, videos, gif and livePhoto. Support edit image and crop video. 微信样式的图片选择器,支持预览…...
