常见测试技术都有哪些?

测试技术是用于评估系统或组件的方法,目的是发现它是否满足给定的要求。系统测试有助于识别缺口、错误,或与实际需求不同的任何类型的缺失需求。测试技术是测试团队根据给定的需求评估已开发软件所使用的最佳实践。这些技术可以确保产品或软件的整体质量,包括性能、安全性、客户体验等等。本文将介绍测试技术、测试技术的类型、应用程序以及优缺点。
什么是测试技术?
Kaner Bach Pettichordon写的关于测试技术的一本书描述了测试是用户想要进行的任何测试的五重系统。他们是
-
测试人员——执行测试的用户
-
覆盖范围——覆盖哪些组件
-
潜在的问题——测试的原因,是为了发现错误?
-
活动——测试的方式或方式
-
评估——比较结果以了解测试是否成功
所有类型的测试都涉及以上五个维度。测试技术使用户能够专注于一个或多个维度来实现结果。
测试技术的类型
根据软件的要求,采用了合适的测试技术。每种测试技术都提供了不同的特性和好处,以更好地服务于目的。
虽然有几种可用的测试技术,但我们将重点关注黑盒测试和白盒测试。
黑盒测试
黑盒测试是一种软件测试,它在不知道要测试的应用程序的设计、内部组件或结构的情况下检查软件或应用程序的功能。它也被称为基于规范的测试。
黑盒测试方法主要用于查找缺失的函数、性能错误、初始化错误以及访问外部数据库时的错误。
黑盒测试的测试技术包括
等价分区——在等价分区中,要测试的应用程序的输入数据放入相等的分区。该技术确保至少覆盖每个分区一次。
边界值分析——在边界值分析中,应用程序的测试是使用边界值来完成的。
因果图——在这种类型的测试技术中,原因是程序的输入,结果是程序的输出。在这里,使用图形表示来显示输入和输出之间的关系以及影响结果的因素
错误猜测——错误猜测测试方法利用测试人员的技能和经验来发现工具无法检测到的错误。
结对测试-在这种方法中,软件使用组合方法测试所涉及参数的所有可能的离散组合。
白盒测试
白盒测试是一种测试应用程序内部编程结构的软件测试方法。这种类型的测试技术被称为透明盒测试、开盒测试、结构测试和透明盒测试。它的操作与黑盒测试相反,用于测试过程的单元、集成和系统级别。
白盒测试的测试技术包括:
-
语句覆盖率——在这种技术中,所有编程语句都是通过最少数量的测试应用的。
-
分支覆盖——在这种类型的技术中,所有分支都应该通过运行一系列测试来测试。
-
路径覆盖——包括语句和分支在内的所有路径都使用这种技术进行测试。
软件测试技术的类型
软件测试是一种方法,用于确保对软件应用程序进行软件缺陷测试,并检查所开发的软件是否满足生产高质量产品的特定要求。
功能测试
功能测试是一种用于验证软件的每个功能以及每个功能是否符合给定需求的方法。功能测试分为四种类型:
单元测试
在单元测试中,软件的每个组件或单个单元都应进行测试。单元测试的目的是根据设计检查输入和输出数据的内部数据结构、逻辑、边界条件。
集成测试
在集成测试中,对单个单元进行集成和测试,以了解集成的组件是否有效地工作。
系统测试
系统测试的目的是验证系统的所有要素都经过了测试,其整体功能和性能符合特定的要求。在这种方法中,系统的硬件和软件组件作为一个整体进行集成和测试。
验收测试
开发的软件是否已经准备好交付?这种类型的测试有助于确定应用程序是否已经准备好交付并满足业务需求。Alpha测试和Beta测试是两种类型的验收测试。
非功能性测试
软件的非功能属性,如性能、可用性、安全性、可靠性和质量,在非功能类型的测试中进行测试。软件的质量和性能可以通过非功能测试得到增强。各种类型的非功能测试包括:
性能测试
执行性能测试是为了确保软件应用程序能够很好地处理工作负载并提高性能。有四种性能测试,包括负载测试、压力测试、耐力测试、Spike测试。
安全性测试
安全专家使用安全级别的测试来确保系统和应用程序不受所有类型漏洞的影响。此测试为应用程序提供安全性,并保护信息的丢失。
可用性测试
可用性测试检查软件的可用性和用户友好性。执行此测试是为了确定软件是否可以无缝地供任何用户使用。
兼容性测试
在这个级别的测试中,软件的兼容性针对不同的操作系统、互联网浏览器等进行测试。例如,一个Android应用程序被检查是否与不同版本的Android OS兼容。
测试技术的优点和缺点
软件测试是一种杰出的工具,在当今的业务中扮演着重要的角色。一些最重要的优势是
-
高效
-
质量
-
满足客户
-
好产品,好收益
-
用户体验
-
业务优化
一些缺点是:
-
与测试人员进行适当的沟通和协调
-
类似服务提供商之间的竞争
-
缺乏有经验的专业人员
-
寻找正确的服务提供者
常见问题
1)语句覆盖和分支覆盖是哪种类型的测试技术?
白盒测试
2)什么是单元测试?
在单元测试中,软件的每个组件或单个单元都应进行测试
3)边值分析可以在哪种测试类型中找到?
黑盒测试
4)对单个单元进行组合和测试的是哪种类型的测试?
集成测试
5)测试性能、可用性、安全性、可靠性和质量等属性是在哪种类型的测试中进行的?
非功能类型的测试
6)什么是beta测试?
Beta测试由客户执行,也称为外部验收测试
7)负载测试是一种测试技术?
性能测试
8)什么是系统测试?
在这种类型的测试中,系统的硬件和软件组件作为一个整体进行集成和测试。
软件公司测试技术的主要目标是发布一个没有缺陷和错误的产品,并带来良好的结果。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:
常见测试技术都有哪些?
测试技术是用于评估系统或组件的方法,目的是发现它是否满足给定的要求。系统测试有助于识别缺口、错误,或与实际需求不同的任何类型的缺失需求。测试技术是测试团队根据给定的需求评估已开发软件所使用的最佳实践。这些技术可以确保产品或软件的整体质量…...
Spring事务控制
1.事务介绍 1.1什么是事务? 当你需要一次执行多条SQL语句时,可以使用事务。通俗一点说,如果这几条SQL语句全部执行成功,则才对数据库进行一次更新,如果有一条SQL语句执行失败,则这几条SQL语句全部不进行执…...
swaggerUI不好用,试试这个openapiUI?
title: swaggerUI不好用,试试这个openapiUI? date: 2024-01-08 categories: [tool] tags: [openapi,工具] description: 基于swaggger2, openapi3规范的UI文档 1.背景 由于长期使用 swaggerUI 工具,它的轻量风格个人觉得还是不错的,但是它…...
嵌入式物联网项目开发实战例程-STM32F103系列之外围器件代码
开发STM32F103很好的参考例程,轻松实现各类外围器件的开发。持续更新中,欢迎关注及收藏。 0001基于STM32F103单片机GPIO实现控制LED灯闪烁的程序代码.zip 0002基于STM32F103单片机GPIO实现按键KEY的检测程序代码.zip 0003基于STM32F103单片机GPIO实现外部…...
Docker Compose--部署SpringBoot项目--实战
原文网址:Docker Compose--部署SpringBoot项目--实战-CSDN博客 简介 本文用实战介绍Docker Compose部署SpringBoot项目。 ----------------------------------------------------------------------------------------------- 分享Java真实高频面试题,…...
单电阻FOC算法实现永磁同步电机的调整步骤和设置
本文档介绍了使用 单电阻FOC 算法实现永磁同步电机(Permanent Magnet Synchronous Motor,PMSM)调整所需的步骤和设置。由于不同电机存在参数差异,因此需针对不同的电机和负载对该算法进行调整。该电机库已经在在落地扇和空净等风机…...
化学DS-1040 Tosylate 抑制剂 1335138-89-0科研用途
化合物1219962-49-8是一种小分子化合物,分子式为C15H25N3O4,相对分子质量为305.37。该化合物为白色至灰白色粉末,不溶于水,易溶于有机溶剂,如甲醇、乙醇等。 AT791是一种与细胞周期调控相关的蛋白激酶,参与…...
PaddlePaddle初使用
模型导出与预测 # -c 后面设置训练算法的yml配置文件 # -o 配置可选参数 # Global.pretrained_model 参数设置待转换的训练模型地址,不用添加文件后缀 .pdmodel,.pdopt或.pdparams。 # Global.save_inference_dir参数设置转换的模型将保存的地址。pytho…...
【FPGA】分享一些FPGA数字信号处理相关的书籍
在做FPGA工程师的这些年,买过好多书,也看过好多书,分享一下。 后续会慢慢的补充书评。 【FPGA】分享一些FPGA入门学习的书籍【FPGA】分享一些FPGA协同MATLAB开发的书籍 【FPGA】分享一些FPGA视频图像处理相关的书籍 【FPGA】分享一些FPGA高速…...
深度解析JavaScript面试热点:事件循环、上下文、箭头函数、变量作用域与ES6模块
JavaScript面试中经常涉及到事件循环、上下文、箭头函数、变量作用域以及ES6模块等核心概念。通过清晰的代码示例,我们深入讨论这些主题,揭示其中的关键细节。 事件循环(Event Loop) JavaScript开发者每天都与事件循环打交道&am…...
Javaweb之Mybatis的动态SQL的详细解析
3. Mybatis动态SQL 3.1 什么是动态SQL 在页面原型中,列表上方的条件是动态的,是可以不传递的,也可以只传递其中的1个或者2个或者全部。 而在我们刚才编写的SQL语句中,我们会看到,我们将三个条件直接写死了。 如果页面…...
物联网与智能家居:跨境电商与未来生活的融合
物联网(Internet of Things,IoT)和智能家居技术正迅速崛起,成为跨境电商领域的创新引擎。这两者的巧妙结合不仅为消费者提供更智能、便捷的生活方式,同时也为电商平台和制造商带来了全新的商机。本文将深入探讨物联网与…...
Java内存模型(JMM)是基于多线程的吗
Java内存模型(JMM)是基于多线程的吗 这个问题按我的思路转换了下,其实就是在问:为什么需要Java内存模型 总结起来可以由几个角度来看待「可见性」、「有序性」和「原子性」 面试官:今天想跟你聊聊Java内存模型&#…...
Linux离线安装MySQL(rpm)
目录 下载安装包安装MySQL检测安装结果服务启停MySQL用户设置 下载安装包 下载地址:https://downloads.mysql.com/archives/community/ 下载全量包如:(mysql-8.1.0-1.el7.x86_64.rpm-bundle.tar) 解压:tar -xzvf mysql-8.1.0-1.el7.x86_64.…...
用 Socket.D 替代原生 WebSocket 做前端开发
socket.d.js 是基于 websocket 包装的 socket.d 协议的实现。就是用 ws 传输数据,但功能更强大。 功能原生 websocketsocket.d说明listen有有监听消息send有有发消息sendAndRequest无有发消息并接收一个响应(类似于 http)sendAndSubscribe无…...
Transformer架构和对照代码详解
1、英文架构图 下面图中展示了Transformer的英文架构,英文架构中的模块名称和具体代码一一对应,方便大家对照代码、理解和使用。 2、编码器 2.1 编码器介绍 从宏观⻆度来看,Transformer的编码器是由多个相同的层叠加⽽ 成的,每个…...
大数的乘法
题目描述 求两个不超过100位的非负整数的乘积。 输入 有两行,每行是一个不超过100位的非负整数,没有多余的前导0。 输出 一行,相乘后的结果。 样例输入 Copy 123456789 123456789样例输出 Copy 15241578750190521 代码实现࿱…...
年度征文 | 机器学习之心的2023
机器学习之心的2023 2023是极其复杂的一年。 生活上,养了很多宠物。 工作上,写了不少博客。 虽然遇见更多让人不开心的事情,但总体还是美好的。 愿大家新的一年健康平安,生活幸福! 机器学习是一项庞大的工程࿰…...
13.Kubernetes应用部署完整流程:从Dockerfile到Ingress发布完整流程
本文以一个简单的Go应用Demo来演示Kubernetes应用部署的完整流程 1、Dockerfile多阶段构建 Dockerfile多阶段构建 [root@docker github]# git clone https://gitee.com/yxydde/http-dump.git [root@docker github]# cd http-dump/ [root@docker http-dump]# cat Dockerfile …...
多年后再用TB,谈项目管理工具
背景 最近启动一个小项目,多年未曾使用项目管理工具,依稀记得使用过Basecamp,Tower,worktitle,teambition等等,当然还有mantis,vs project等等。于是随便翻阅找个用,不小心翻了TB的牌子,竟然已是阿里旗下的…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
ZYNQ学习记录FPGA(一)ZYNQ简介
一、知识准备 1.一些术语,缩写和概念: 1)ZYNQ全称:ZYNQ7000 All Pgrammable SoC 2)SoC:system on chips(片上系统),对比集成电路的SoB(system on board) 3)ARM:处理器…...
React父子组件通信:Props怎么用?如何从父组件向子组件传递数据?
系列回顾: 在上一篇《React核心概念:State是什么?》中,我们学习了如何使用useState让一个组件拥有自己的内部数据(State),并通过一个计数器案例,实现了组件的自我更新。这很棒&#…...
Win系统权限提升篇UAC绕过DLL劫持未引号路径可控服务全检项目
应用场景: 1、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。 2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。 #Win10&11-BypassUAC自动提权-MSF&UACME 为了远程执行目标的exe或者b…...
表单设计器拖拽对象时添加属性
背景:因为项目需要。自写设计器。遇到的坑在此记录 使用的拖拽组件时vuedraggable。下面放上局部示例截图。 坑1。draggable标签在拖拽时可以获取到被拖拽的对象属性定义 要使用 :clone, 而不是clone。我想应该是因为draggable标签比较特。另外在使用**:clone时要将…...

