前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >读书笔记:构建高质量软件与持续集成

读书笔记:构建高质量软件与持续集成

原创
作者头像
李子健
发布于 2022-12-04 10:19:28
发布于 2022-12-04 10:19:28
2900
举报
文章被收录于专栏:每日一善每日一善

概述

一直在写代码,由于时间有限,工作较多,单测覆盖其实不是特别多。

关键代码可能会加上单测。其他的有时间才补单测,大概率是没有太多时间。

补充单测通常是junit和phpunit

最近读了一本书,《构建高质量软件与持续集成》觉得作者对java相关的保证软件质量的工具介绍的挺好的,特意做个个简单笔记分享给大家。其实绝大部分老手只需要一个概要就行。

单元测试是什么?

  • 开发编写
  • 白盒测试
  • 针对源代码进行最细粒度的测试

开发流程

  • 分支开发,单元测试,单元测试通过,代码review ,qa测试,发布

为什么需要单元测试?

  • 编程过程更加敏捷
  • 提高代码质量
  • 尽早发现缺陷
  • 简化集成测试
  • 提供文档帮助
  • 易于调试
  • 促进开发中优化代码设计和结构
  • 降低软件开发成本

单元测试的原则

  • 独立无依赖
  • 可重复
  • 自我验证
  • 周密,细致,全面

junit最佳实践

  • 工具:junit4,junit5, mockito,easymock, jmock, testNG,powermock
  • 避免操作外部资源和数据
  • 不要skip单元测试
  • 单元测试不要覆盖所有方法
  • 单元测试中必须包含assert操作
  • 单元测试和包名一致
  • 不要写无意义的单元测试
  • 异常不要刻意捕获
  • 不要捕获异常什么都不做
  • 单元测试也激活日志
  • 使用自动化的构建工具
  • 对源码的单元测试覆盖率应该到达一定的要求
  • 保持小巧,快四执行
  • 单元测试同源代码同源代码同样重要

测试驱动开发:编写足够多代码前,优先编写单元测试方法

  • 方式
    • 红:单测失败
    • 绿: 修改单测和代码
    • 重构:重新优化代码和增加单测

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
spring junit单元测试[java mock单元测试]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说spring junit单元测试[java mock单元测试],希望能够帮助大家进步!!!
Java架构师必看
2022/02/21
1.1K0
开发必会的测试知识,Junit+Mock+Assert+DevOps
我之前写过一篇 devops 开发相关的文章 一文理解什么是 devops,可以看到测试在整个开发流程中扮演者什么样的角色。
阿甘的码路
2022/09/22
1.1K0
开发必会的测试知识,Junit+Mock+Assert+DevOps
单元测试指南
在我们公司中要做单元测试,确实比较难,因为公司缺少这种氛围,有也只是局部的,大多数工程师没有这方面的习惯和素养,很多人都是有一定的抵触的心理,经过我私下的了解大概有以下几种原因吧。
Abalone
2022/07/14
6.3K0
单元测试指南
Mock工具介绍
如果将mock单独翻译过来,其意义为 “虚假、虚设”,因此在软件开发领域,我们也可以将其理解成 “虚假数据”,或者 “真实数据的替身”。
用户5521279
2020/08/21
4.3K0
【测试左移专栏】用 Powermock 和 Mockito 来做安卓单元测试
作者:刘洋 团队公众号:腾讯移动品质中心TMQ 一、单元测试及Android单元测试简介 惯例,先简单介绍下理论知识,懂得的可以跳过。 1、单元测试定义和特性 单测定义: 在计算机编程中,单元测试(U
腾讯移动品质中心TMQ
2017/06/01
4.5K0
开发必备之单元测试
​ 计算机世界里的软件产品通常是由模块组合而成的 模块又可以分成诸多子模块。 比如淘宝系统由搜索模块、商品模块、交易模块等组成,而交易模块又分成下单模块、 支付模块、发货模块等子模块,如此细分下去,最终的子模块是由不可再分的程序单 元组成的。对这些程序单元的测试,即称为单元测试(Unit Testing ,简称单测)。单元的粒度要根据实际情况判定,可能是类、方法等,在面向对象编程中,通常认为最小单元就是方法。单元测试的目的是在集成测试和功能测试之前对软件中的可测试单 元进 逐一检查和验证。单元测试是程序功能的基本保障,是软件产品上线非常重要的环。
程序员波特
2024/01/19
2730
代码整洁之道-读书笔记之单元测试
TDD:测试驱动开发,先写测试,再写逻辑代码,通过单测,写逻辑代码,依次循环,知道所有逻辑都完成
特特
2022/11/16
6370
合格的后端Coder都应该写好UT和Mock测试
作者 | S.L 来源 | http://r6d.cn/aaTem 关于测试 1 测试都包括哪些 广义的测试包括 UT、IT、压力测试、硬件测试等等,这里重点讨论 Unit Test 即单元测试。 2 啥是 UT 单元测试(又称为模块测试, Unit Testing)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。 简
程序猿DD
2023/04/04
7550
合格的后端Coder都应该写好UT和Mock测试
10个Java开发人员的顶级测试工具、库和框架介绍
最近,我写了一些关于Java开发人员今年应该学习什么的文章,例如编程语言,库和框架,但如果你只有一件事需要改进或学习,那么那必须是你的自动化测试技能。
lyb-geek
2022/03/10
1.2K0
单元测试的正确姿势
框架的选择大同小异。Junit4&Junit5的对比:《Junit4&Junit5对比》
有一只柴犬
2024/01/25
3460
单元测试的正确姿势
编写更好的 Java 单元测试的 7 个技巧
测试是开发的一个非常重要的方面,可以在很大程度上决定一个应用程序的命运。良好的测试可以在早期捕获导致应用程序崩溃的问题,但较差的测试往往总是导致故障和停机。
哲洛不闹
2018/09/14
2.9K0
编写更好的 Java 单元测试的 7 个技巧
如何正确编写单元测试?
国内的大多数互联网公司只注重软件功能,却往往忽略了极为重要的软件质量,在一个月以前,我认为遵循了代码规范(阿里规约、sonar)的软件系统已经算是一个质量比较好的软件系统了,但是在我了解单元测试以后,才发现自己以前的想法有多么愚蠢,单元测试的作用远比我想象的要重要许多。经过一段时间的研究,总算对单元测试有了一个大概的了解,然而网上的文章零零散散,大多是讲解一些比较简单的demo,参考价值比较有限,因此我决定写一篇关于单元测试的文章来总结自己这段时间的收获与心得。
敲得码黛
2021/11/26
3.1K0
如何正确编写单元测试?
有了它(powerMocker)再也不怕单元测试不达标了!
目前应用比较普遍的java单元测试工具junit4+Mock(Mockito、jmock、EasyMock、powermock)。为什么会选powermock? 在做单元测试的时候,我们会发现我们要测试的方法会有很多外部依赖的对象或者一些其他服务的调用比如说(发送邮件,网络通讯,soa调用)。而我们没法控制这些外部依赖的对象。为了解决这个问题,我们需要用到Mock来模拟这些外部依赖的对象,从而控制它们。只关心我们自己的业务逻辑是否正确。而这时powermock就起作用了,它不仅可以mock外部的依赖,还可以mock私有方法、final方法,总之它的功能很强大。
java金融
2020/08/04
3.3K0
2021年软件测试工具总结(1):抓包工具、单元测试工具
大家好,我是洋子,作为一名测试开发/软件测试工程师, 在进行软件测试的过程中,会用到测试工具去辅助测试,以提高测试工作的效率
Bug挖掘机
2022/09/28
2.6K0
2021年软件测试工具总结(1):抓包工具、单元测试工具
使用 Junit + Mockito 实践单元测试
相信做过开发的同学,都多多少少写过下面的代码,很长一段时间我一直以为这就是单元测试...
JMCui
2020/05/06
4.9K0
Java测试框架九大法宝
大多数测试人员更喜欢Java,因为它具有平台独立性和易于构建任何东西的易用性——从简单的应用程序到复杂的移动应用程序、网站等等。
FunTester
2021/08/18
2.7K0
TestNG + PowerMock 单元测试
单元测试(Unit Testing),是指对软件或项目中最小可测试单元进行正确性检验的测试工作。单元是人为规定最小可测试的功能模块,可以是一个模块,一个函数或者一个类。单元测试需要与模块开发进行隔离情况下进行测试。
没有故事的陈师傅
2021/05/14
1.8K0
玩花招的PowerMock
当我们面对一个遗留系统时,常见的问题是没有测试。正如Michael Feathers在Working Effectively with Legacy Code一书中对“遗留代码”的定义。他将其简单归纳为“没有测试的代码”。真是太贴切了!正是因为没有测试,使得我们对遗留代码的任何重构都有些战战兢兢,甚至成为开发人员抵制重构的借口。从收益与成本的比例来看,对于这样的系统,我一贯认为不要盲目进行重构。因为重构的真正适用场景其实是发生在开发期间,而非维护期间。当然,提升自己的重构能力,尤其学会运用IDE提供的自动重构工具,可以在一定程度上保障重构的质量。然而,安全的做法,还是需要为其编写测试。
Allen Cheng
2018/09/10
1.4K0
告别加班/解放双手提高单测覆盖率之Java 自动生成单测代码神器推荐
很多公司对分支单测覆盖率会有一定的要求,比如 单测覆盖率要达到 60% 或者 80%才可以发布。
明明如月学长
2022/02/15
6.8K0
告别加班/解放双手提高单测覆盖率之Java 自动生成单测代码神器推荐
Spock单元测试框架以及在美团优选的实践
Spock是国外一款优秀的测试框架,基于BDD(行为驱动开发)思想实现,功能非常强大。Spock结合Groovy动态语言的特点,提供了各种标签,并采用简单、通用、结构化的描述语言,让编写测试代码更加简洁、高效。目前,美团优选物流绝大部分后端服务已经采用了Spock作为测试框架,在开发效率、可读性和维护性方面均取得了不错的收益。
测试开发社区
2021/08/23
3.4K0
Spock单元测试框架以及在美团优选的实践
推荐阅读
相关推荐
spring junit单元测试[java mock单元测试]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档