为什么需要单元测试

简介: 在互联网时代,软件迭代加速,研发需对代码质量与测试负责。测试金字塔强调“单元测试优先”,底层单元测试占80%,为软件打牢基础;中层集成测试占15%;顶层端到端测试仅占5%。该结构源自Google实践,旨在提升研发效率与产品信心,践行“你构建,你测试”的DevOps理念。

在如今的互联⽹时代,软件迭代的速度越来越快,研发的职责也越来越多。DevOps的理念是"you build it, you run it",研发/测试合⼆为⼀的趋势也可以理解为对"you build it, you test it"的呼吁。当研发要对⾃⼰写的代码质量和测试负责的时候,好的测试实践就必不可少了。
测试⾦字塔
就像盖楼需要从打地基、竖钢筋、灌⽔泥层层往上构建⼀样,测试也有类似的测试⾦字塔架构。下图出⾃《Software Engineering at Google》的测试章节,总结了Google在测试⽅⾯的最佳实践。我们可以看到测试⾦字塔由三层构成,最底层就是单元测试、占⽐80%,是软件系统的地基。再往上是集成测试和端到端测试,分别占15%和5%。因为从下往上占⽐逐层缩减,因此被称为测试⾦字塔(跟盖⾼楼⼀样)。⾕歌推荐的这个⽐例是多年实践出来的结果,意在提升研发的效率(productivity)并提升对产品的信⼼(product confidence)。
测试⾦字塔的核⼼理念之⼀就是“Unit Test First“,每个软件项⽬⾥的第⼀⾏测试应该是单测(TDD甚⾄认为第⼀⾏代码就应该是单测),⽽且⼀个项⽬⾥占⽐最⾼的测试也应该是单测。

相关文章
|
算法 程序员 C语言
C/C++原子操作与atomic CAS底层实现原理
假定有两个操作A 和B,如果从执行A 的线程来看,当另一个线程执行B 时,要么将B 全部执行完,要么完全不执行B,那么A 和B 对彼此来说是原子的。
1517 1
C/C++原子操作与atomic CAS底层实现原理
|
JavaScript 数据可视化 Docker
简易制作MCP服务器并测试
本文介绍了如何简易制作并测试MCP服务器,包括环境搭建、代码实现及Docker部署。首先通过uv包创建项目,在main.py中定义MCP服务器及其工具和资源函数。接着详细说明了在Windows上安装uv、配置Docker镜像加速、生成requirements.txt文件以及编写Dockerfile的过程。最后,通过构建和运行Docker容器部署MCP服务器,并使用Node.js工具测试其功能,确保服务器正常工作。此教程适合初学者快速上手MCP服务器的开发与部署。
4764 63
|
前端开发 测试技术 持续交付
云效平台介绍
云效,创立于2012年,是由阿里巴巴出品,是业内领先的面向企业的一站式研发效能平台,以提升研发效能为目标,通过线上化,透明化和自动化打通产品质量闭环,真正实现了持续集成持续交付。
10480 14
|
安全 开发者 Python
Python的内存管理pymalloc
Python的内存管理pymalloc
|
数据采集 人工智能 搜索推荐
|
存储 机器学习/深度学习 安全
深入理解Linux虚拟内存管理(三)
深入理解Linux虚拟内存管理(三)
480 0
|
Python
Python 的异步编程: 解释什么是事件循环(Event Loop)?
事件循环是Python异步编程的关键,它无限循环等待并处理异步任务,协调I/O操作执行顺序,实现并发,提高性能。
701 0
|
PyTorch 算法框架/工具 C语言
Python调用C++代码
今天在研究PyTorch中Tensor的一些操作的时候,发现其底层Tensor的操作都是用C++写的,并使用[pybind11](https://github.com/pybind/pybind11)进行C++和Python的桥接。所以,我就想着探索一下Python中如何调用C++代码?
778 0