NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

从忽略到重视,Stack Overflow 改变了对单元测试的态度

  • 2022-07-09
  • 本文字数:948 字

    阅读完需:约 3 分钟

从忽略到重视,Stack Overflow改变了对单元测试的态度

在很长一段时间里,Stack Overflow 都忽略了单元测试,但现在 Stack Overflow 正在努力改变这种状况。

 

在早期的时候,Stack Overflow 是一个以快速精益运营为主的网站,像所有初创公司一样,优先考虑对企业最重要的质量属性,单元测试这样的事情被搁置到一旁。如果存在 Bug,主要靠用户在使用中发现并报告给他们,Stack Overflow 开发人员再进行修复或解决。 

 

Stack Overflow 认为单元测试是一种自动化测试,测试最小的代码片段以确保其正常运行,不会与进程外的依赖项对话。企业最佳实践是应该有大量的单元测试,中等数量的集成测试,并且只有少数端到端测试。 但以前 Stack Overflow 几乎没有单元测试, 虽然 Stack Overflow 有集成测试套件,但测试基础设施尤其是单元测试,远远落后于产品的成熟度。 

 

几年前,Stack Overflow 为 Teams Enterprise 推出了付费产品,企业用户并不愿意在生产时发现并报告错误了。而且在未来规划中,Stack Overflow 需要一个弹性代码库,在必要时重构代码,测试代码是让开发者创建干净代码的基础,而且 Stack Overflow 未来还想强制执行代码“clean beach rule”来保持代码的干净整洁。另外,编写良好的测试可作为一种文档形式,新加入的成员也可以通读测试并准确了解相关代码在做什么。所以他们不得不改变策略,对单元测试予以重视。

 

Stack Overflow 开始完善软件开发流程,但也并没有试图突然对已经部署在生产中的每一段代码进行测试覆盖,毕竟之前大部分代码都经过了开发者社区的实战测试。 

 

Stack Overflow 针对未来发展规划,在数据库层面提供了一种方法来指示测试何时提取模拟数据。因为使用 Dapper 和.NET 中的实体框架来管理数据库连接,因此 Stack Overflow 创建了一个扩展接口 DbContext,以便可以将模拟数据视为数据库连接。 另外还引入了一个 builder 而不是 constructor,为测试创建模拟站点数据。并且在前端实现了一个Jest来测试代码,并将它引入了所有的前端代码中。最后,他们还在 Stack Overflow for Teams 实例中设置了一个测试手册,详细介绍了如何编写良好的单元和集成测试。

 

Stack Overflow 表示编写一个好的单元测试并不是那么难,这些改变也意味着他们的代码质量变得越来越重要。

 

了解更多:

https://stackoverflow.blog/2022/07/04/how-stack-overflow-is-leveling-up-its-unit-testing-game/

 

2022-07-09 16:335336

评论

发布
暂无评论
发现更多内容

百度智能云天工边云融合物联网平台,助力设备高效上云

百度开发者中心

netty系列之:netty中的核心编码器base64

程序那些事

Java Netty 程序那些事 4月月更

RocketMQ-Streams架构设计浅析

阿里巴巴中间件

阿里云 RocketMQ 云原生 中间件

大巧不工,袋鼠云正式开源大数据任务调度平台——Taier(太阿)!

袋鼠云数栈

数据库 开源

我和TiDB的故事 | 毫无准备地不期而遇,却想说与你相遇好幸运

TiDB 社区干货传送门

对话达梦副总经理冯源 | 假如你身处被“科技制裁”的俄罗斯-墨天轮专访

墨天轮

数据库 oracle 国产数据库 达梦

智能运维时代,如何做好日志全生命周期管理

云智慧AIOps社区

日志 智能运维 日志管理

Google如何申请客户端ID并调试代码?

CRMEB

聚焦丨看泛建材巨头如何实现数字化改造,推动企业业务增长

数商云

产业互联网 数字化转型 企业数字化

K8S Pod 新安全策略 Pod Security Admission 介绍 | K8S Internals 系列第一期

BoCloud博云

Kubernetes Pod Security Policy Pod Security Admission

小区自助洗车机赚钱吗?想投几台

共享电单车厂家

自助洗车加盟 投资自助洗车机 自助洗车投资费用 自助洗车是否赚钱

企业如何突破数据治理临界点,四大数据要素深度剖析

袋鼠云数栈

大数据 数据中台

IP(定位数据库)地理位置查找真的能有效帮助阻止网络攻击吗?

郑州埃文科技

IP定位 IP数据库

淘特 Flutter 流畅度优化实践 · 二期

阿里巴巴终端技术

flutter

产品宣传手册是如何制作的?

小炮

产品宣传册

漏洞挖掘之目录遍历漏洞

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

系统性能分析从入门到进阶

阿里巴巴中间件

云计算 阿里云 云原生 中间件

数字化转型-信息技术引发的系统性变革

Geek_XOXO

企业数字化转型

【ELT.ZIP】《CCF开源高校行第一期》观后感

ELT.ZIP

Linux LVS OpenHarmony ELT.ZIP CCF开源高校行

安全网关是啥什么东西?有什么优势?与堡垒机的区别是什么?

行云管家

网络安全 堡垒机 运维审计 安全网关 堡垒机防火墙

自助洗车机设备一台多少钱划算

共享电单车厂家

自助洗车机多少钱 自助洗车机设备价格

自助洗车机厂家如何选?要注意什么

共享电单车厂家

自助洗车机多少钱 自助洗车加盟 自助洗车机厂家

龙蜥社区第七次运营委员会会议顺利召开

OpenAnolis小助手

开源社区 龙蜥社区 理事单位 运营委员会

被你质疑价值的混沌工程,阿里巴巴已落地实践了9年

阿里巴巴中间件

阿里云 云原生 中间件 混沌工程

WebApi性能优化

神农写代码

社区文章|MOSN 社区性能分析利器——Holmes 原理浅析

SOFAStack

golang GitHub 开源 SOFA

后端开发【干货知识】—Redis,Memcached,Nginx网络组件

Linux服务器开发

reactor 中间件 后端开发 组件 Linux后台开发

集合去重的境界

flyhero

Java 程序员 后端 4月月更

投资自助洗车机要多少钱?看情况

共享电单车厂家

自助洗车加盟 投资自助洗车机 自助洗车机要多少钱

16 台服务器达成 1000 万 tpmC!挑战分布式数据库性能极限

SphereEx

opengauss ShardingSphere SphereEx apache 社区 分布式解决方案

招商银行 KubeVela 离线部署实践

阿里巴巴中间件

阿里云 最佳实践 云原生 中间件 KubeVela

从忽略到重视,Stack Overflow改变了对单元测试的态度_架构_Tina_InfoQ精选文章