自动化单元测试的实践之路

自动化单元测试并不是什么新鲜事物,它应该是团队持之以恒的事情,可能有很多团队知道如何去做,但是还做得不够好;还有不少团队不知道如何去做,甚至有一些旧系统还不敢去重构,还在坚持着Java中的main方法调用的方式来执行,在漫长等待构建结果。

本文主要讲基于Java项目如何做自动化单元测试的实践。

1 是否值得

关于单元测试的意义,详细参考stackoverflow这篇文章:

http://stackoverflow.com/questions/67299/is-unit-testing-worth-the-effort,

Martin Fowler在博客(http://martinfowler.com/bliki/TestPyramid.html)中解释了

TestPyramid,如下图所示:

图-1-1-TestPyramid

Unit是整个金字塔的基石(在建筑行业,基石是做建筑物基础的石头),如果基石不稳,Service和UI何谈有构建意义呢?只有基石稳如磐石,上层建筑才够坚固。

本来想拿瑞士做钟表的例子来说明下,但同事说的汽车例子更好。一辆汽车由许多配件组成,如果有以下两种选择,你会选择哪个呢?

所有单元配件没有测试过,在4S店,销售人员告诉你:刚组装好,已经开了一天,能跑起来,你可以试试;

所有单元配件在生产过程已经经过严格测试,在4S点,销售人员告诉你,已经通过国家认证,出厂合格,有质量保证,你可以试试;

答案不言而喻了。

实施单元测试,并不代表你的生产效率能提高迅猛,反而有时候阻碍了瞬间的生产效率(传统的开发一个功能,看似就算完成的动作,增加单元测试看起来无法是浪费时间),但是,它最直接的是提升产品质量,从而提升市场的形象,间接才会提升生产效率。

做产品,到底是要数量,还是质量呢?这个应该留给老板们去回答,看企业是否需要长远立足。

2 关键部分

自动化单元测试有四个关键组成部分要做到统一,如图所示:

时间: 2025-01-30 06:35:28

自动化单元测试的实践之路的相关文章

自动化单元测试实践之路

自动化单元测试并不是什么新鲜事物,它应该是团队持之以恒的事情,可能有很多团队知道如何去做,但是还做得不够好:还有不少团队不知道如何去做,甚至有一些旧系统还不敢去重构,还在坚持着Java中的main方法调用的方式来执行,在漫长等待构建结果. 本文主要讲基于Java项目如何做自动化单元测试的实践. 1 是否值得 关于单元测试的意义,详细参考stackoverflow这篇文章: http://stackoverflow.com/questions/67299/is-unit-testing-worth

阿里巴巴CI:CD之分层自动化实践之路

6月29日,由阿里云研发协同RDC.阿里云云效和联合举办的"首届阿里巴巴研发效能嘉年华"上,阿里巴巴高级产品经理金桐带来"分层自动化实践之路"的演讲.本文从为什么要做自动化开始谈起,进而对分层自动化单元测试.业务服务层测试和UI测试进行优劣势分析,最后重点分享了阿里分层自动化的实践,包括工具分层和流程优化等.   直播视频请点击 随着云计算.大数据.AI智能等前沿科技的发展,传统的研发速度越来越难满足企业快速发展的需求,研发效能也成了继商业模式.技术突破之后的另一核

从 Spring Cloud 开始,聊聊微服务架构实践之路

本文讲的是从 Spring Cloud 开始,聊聊微服务架构实践之路[编者的话]随着公司业务量的飞速发展,平台面临的挑战已经远远大于业务,需求量不断增加,技术人员数量增加,面临的复杂度也大大增加.在这个背景下,平台的技术架构也完成了从传统的单体应用到微服务化的演进. 系统架构的演进过程 单一应用架构(第一代架构) 这是平台最开始的情况,当时流量小,为了节约成本,并将所有应用都打包放到一个应用里面,采用的架构为 .NET SQL Server: 表示层:位于最外层(最上层),最接近用户.用于显示数

产品迭代发布如何更快速?阿里持续集成与持续交付实践之路全解析

2017年5月9日,云效平台资深研发工程师向禹通过直播分享了<持续集成与持续交付实践之路>.他从云效背景.云效方案.云效价值三个方面进行了分享.他主要分享了持续集成持续交付的解决方案和案例,并且对大型系统如何实现持续集成.持续交付.进行产品迭代发布进行了详细介绍. 以下内容根据直播视频整理而成. 云效背景--阿里巴巴<持续交付>之路 大应用下的交付 在七八年之前,阿里巴巴的B2B一直沿用瀑布的模式来进行项目管理,当时已经感觉到瀑布模式对应用持续快速的发展产生了很大的影响.并且当时很

项目DevOps研发云CI实践之路

本文讲的是项目DevOps研发云CI实践之路[编者的话]DevOps是Develop与Operations的缩写.DevOps不是凭空冒出来的,是我们持续集成思想的延伸. 使用敏捷或其他软件开发过程与方法,项目要求加快产品交付的速率,虚拟化和云计算基础设施(可能来自内部或外部供应商)日益普遍,都促使我们不断向DevOps方向发展. 因此,现在的业务开发,对传统的CI提出了更新更高的要求,借助于云技术,我们可以在DesOps趋势下实现从传统CI向云化CI的演变. 一.项目痛点 笔者所在项目在敏捷推

新浪微博平台自动化运维演进之路

内容来源:2016年12月16日,微博产品资深运维架构师王关胜在"GIAC全球互联网架构大会"进行<新浪微博平台自动化运维演进之路>演讲分享.IT大咖说作为独家视频合作方,经主办方和讲者审阅授权发布. 阅读字数: 2557 用时: 4分钟 点击嘉宾演讲视频观看 Sina Weibo业务介绍 微博业务简介 微博平台是属于偏后端的一个产品,它所提供的服务就是固定量的接口,比如信息流里的接口.用户接口.关系接口等等. 微博核心业务 微博最核心的产品就是信息流,以信息流为中心出发,

Karma和Jasmine自动化单元测试

前言 在Java领域,Apache, Spring, JBoss 三大社区的开源库,包罗万象,但每个库都在其领域中都鹤立鸡群.而Nodejs中各种各样的开源库,却让人眼花缭乱,不知从何下手. Nodejs领域: Jasmine做单元测试,Karma自动化完成单元测试,Grunt启动Karma统一项目管理,Yeoman最后封装成一个项目原型模板,npm做nodejs的包依赖管理,bower做javascript的包依赖管理.Java领域:JUnit做单元测试, Maven自动化单元测试,统一项目管

前端开发自动化单元测试趋势

时至今日,Web 前端已经发生了巨大的演变,而单页应用程序也成为了标准.众多应用程序完成了从 PC 到移动端的华丽转身,而那些基于 JavaScript 的框架变得更受开发者们欢迎. TestProject 进行了一项调查,以便了解目前前端开发技术和自动化单元测试的趋势.调查的结果揭示了软件专业人士对热门框架,以及工具的偏好程度.我们从 957 个相关人士的调查问卷中,得出了这个让人印象深刻的结果! 调查方式 向 2,735 名相关者发出在线问卷调查,其中 957 人回答了问卷中的问题. 数据收

日志易:IT 运维分析及海量日志搜索的实践之路(上)

内容简介: IT运维分析(IT Operation Analytics, ITOA)是近年兴起,其把大数据技术应用于分析IT运维产生的大量数据,数据来源主要有日志.网络流量.植入代码.布点模拟监控等.过去使用数据库处理日志无法支持大数据量,后来出现了使用Hadoop/Storm/SparkStreaming等开发框架来处理日志,及最新的使用实时搜索分析引擎来对日志进行实时处理.现如今使用Hadoop/Storm/SparkStreaming等开发框架来处理日志已经在各大公司被广泛的运用,本次演讲