测试金字塔理论和三明治结构,你更支持哪个?

2023-10-30 15:15

本文主要是介绍测试金字塔理论和三明治结构,你更支持哪个?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2009年,Mike Cohn出版了《成功的敏捷:使用Scrum进行软件开发》一书,其中介绍了测试金字塔。Mike引入测试金字塔作为测试策略中各种测试类型的理想分布的图形表示。自此,敏捷开发方法和测试金字塔日趋流行并获得广泛使用。

什么是测试金字塔理论

测试金字塔分为三层。底层是单元测试,中间是集成测试,顶部是端到端测试或者用户界面测试。

把单元测试放在底层是强调坚实基础的重要性。单元测试通常是快速、独立的测试,可提供各个部分或代码单元的精细覆盖。单元测试确保各个单元正确,尽早从源头发现问题,并促进更简单的重构。

金字塔的中间层由集成测试占据,它确认各种组件或模块如何交互。这些测试可确保系统的集成组件一起正常运行,并有助于发现因集成各种模块而可能出现的任何问题。

端到端测试,也称为 UI 测试,位于金字塔的顶部,因为它们复制用户交互并验证整个系统。与单元测试和集成测试相比,UI测试通常速度较慢且更容易出错。其有助于测试关键的工作流程和面向用户的功能,但应很少使用,因为它们的维护成本较高。

测试金字塔理论:过去和现在

从测试金字塔理论提出至今,已经15年过去了。目前该理论还有着大批的拥簇,但也有相当一部分人谴责这是一种过时的做法,不再具有相关性。当然,技术格局在不断变化,新的趋势和发明也经常出现。为了跟上这些不断变化的趋势,测试工程和测试实践应该相应发展。为此,我们今天重新审视测试金字塔理论。

单元测试

单元测试依旧是基石,甚至变的更为重要。进行尽可能多的复杂单元测试比以往任何时候都更有意义,特别是随着越来越多的公司使用微服务设计。Mike的观点依旧正确,即从源头寻找错误并加强基础内容。

集成测试

二十年前,集成测试的范围只是验证不同软件组件或模块之间的交互。从测试的角度来看,挑战在于开发自定义测试工具和脚本来模拟组件之间的交互并验证它们的集成,依赖关系的模拟并不普遍。二十年后,由于软件系统的复杂性和分布式特性,集成测试涵盖了更广泛的范围。验证针对软件组件以及各种服务、API 和外部依赖项。

得益于Docker等容器化技术和虚拟机等虚拟化技术的发展,集成测试现在变得更加有效和可重复,这使得开发和管理隔离测试环境变得更加简单。随着微服务架构的兴起,API 测试和契约测试变得越来越重要。集成测试在当前的技术环境中同样重要,因为单元测试旨在根据其他几个参数测试应用程序。而集成测试涵盖应用程序的多个方面,而不仅仅是关注应用程序功能。

前端/用户界面

这二十年,前端测试(UI测试)已经发生了巨大的变化和技术进步。二十年前,前端的目的是为客户提供接触点,为他们创造与应用程序交互的机会。如今,互联网比以前更强大,提供多种应用程序优化选项。所有企业都更加倾向于以用户为中心的设计,无论用于交互的设备或位置如何,应用程序的每个接触点都需要有出色的体验。无论是 B2B 还是 B2C 应用程序,用户体验都将是开发的核心。

在当今的互联网游戏中,前端开发通过影响网站结构、性能、移动设备友好性、用户体验和内容优化来直接影响搜索引擎优化。前端需要容纳多层测试,而不再局限于功能检查。

金字塔理论的延伸——三明治结构

所以我们不妨得出最终结论,UI 测试与单元测试和集成测试一样重要。测试结构从金字塔结构演变成三明治结构,三者并驾齐驱,共同维护软件的质量需求。

这篇关于测试金字塔理论和三明治结构,你更支持哪个?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/308791

相关文章

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Python循环结构全面解析

《Python循环结构全面解析》循环中的代码会执行特定的次数,或者是执行到特定条件成立时结束循环,或者是针对某一集合中的所有项目都执行一次,这篇文章给大家介绍Python循环结构解析,感兴趣的朋友跟随... 目录for-in循环while循环循环控制语句break语句continue语句else子句嵌套的循

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、