0


单元测试与自测方案

单元测试与自测方案

测试驱动开发(Test Driven Development)

TDD概念

TDD 是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。

TDD 的基本流程

红,绿,重构

生命周期
  1. 编写测试
  2. 运行测试
  3. 修改代码保持正确,重构( Refactor)
  4. 重复上面的过程

在这里插入图片描述

步骤
  1. 添加测试
  2. 运行所有测试并查看是否有新的测试失败
  3. 写一些代码
  4. 运行测试并重构代码
  5. 重复

TDD 两种类型

Acceptance TDD (ATDD)

验收测试驱动开发,用ATDD编写一个验收测试。该测试满足了规范的要求,或者满足了系统的行为。之后,编写足够的生产/功能代码来完成验收测试。验收测试侧重于系统的总体行为。ATDD也被称为行为驱动开(BDD)。

Developer TDD (DTDD)

开发人员测试驱动开发,开发人员TDD,您可以编写单个开发人员测试,即单元测试,然后只需编写足够的生产代码来完成该测试。单元测试侧重于系统的每一个小功能。开发者TDD被简单地称为TDD。

ATDD和TDD的主要目标是在及时(JIT)的基础上为解决方案指定详细的、可执行的需求。JIT意味着只考虑系统中需要的那些需求。所以提高效率。

TDD的优点

降低开发者负担
通过明确的流程,让我们一次只关注一个点,思维负担更小。

保护网
TDD 的好处是覆盖完全的单元测试,对产品代码提供了一个保护网,让我们可以轻松地迎接需求变化或改善代码的设计。
所以如果你的项目需求稳定,一次性做完,后续没有任何改动的话,能享受到 TDD 的好处就比较少了。

提前澄清需求
先写测试可以帮助我们去思考需求,并提前澄清需求细节,而不是代码写到一半才发现不明确的需求。

快速反馈
有很多人说 TDD 时,我的代码量增加了,所以开发效率降低了。但是,如果没有单元测试,你就要手工测试,你要花很多时间去准备数据,启动应用,跳转界面等,反馈是很慢的。准确说,快速反馈是单元测试的好处。

TDD的缺点

增加代码量。测试代码是系统代码的两倍或更多,但是同时节省了调试程序及挑错时间

总结

TDD 是一个调整Code的过程,目的是执行通过事先编写的Test
TDD 更加强调创建生产代码而不是测试设计
TDD 被称之为 测试先行(Test First Development)
TDD 包括重构代码(Refactoring Code)
当使用TDD时,Code变得简单易懂

TDD的相关文章:

https://blog.csdn.net/seagal890/article/details/84948202

https://blog.csdn.net/zanfeng/article/details/119480625

单元测试规范

为了提高代码质量,杜绝只开发不自测的情况,降低质量检测成本,所以进行单元测试

单元测试原则

  1. 使用Mock框架进行单元测试
  2. 每个交互接口对应一个单元测试,接口单元测试覆盖率为70%
  3. 测试场景为交互接口在产品要求的标准业务逻辑下进行的测试
  4. 通过标准为测试接口请求成功
  5. 单元测试通过率为90%

单元测试覆盖率配置

引入jacoco插件包

<dependency><groupId>org.jacoco</groupId><artifactId>jacoco-maven-plugin</artifactId><version>0.8.7</version></dependency>

jacoco插件配置

<!-- jacoco插件配置 --><plugin><groupId>org.jacoco</groupId><artifactId>jacoco-maven-plugin</artifactId><version>0.8.7</version><configuration><destFile>${project.basedir}/target/coverage-reports/jacoco-unit.exec</destFile><dataFile>${project.basedir}/target/coverage-reports/jacoco-unit.exec</dataFile><!--这里指定单元测试覆盖率排除的包--><excludes><exclude>**/security/**</exclude><exclude>**/log/**</exclude><exclude>**/sys/**</exclude></excludes><!--这里指定单元测试覆盖率包--><includes><include>**/controller/**</include></includes></configuration><executions><execution><id>jacoco-initialize</id><goals><goal>prepare-agent</goal></goals></execution><execution><id>jacoco-site</id><phase>package</phase><goals><goal>report</goal></goals></execution></executions></plugin>

单元测试报告

生成报告步骤:

1.maven 执行test

在这里插入图片描述

2.执行插件 jacoco:report

在这里插入图片描述

生成的报告目录:\target\site\jacoco\index.html

报告效果

在这里插入图片描述
在这里插入图片描述

jenkins集成单元测试

设置项目为专门的单元测试,构建成功后生成单元测试报告,以便检查是否存在遗漏的单元测试

检测单元测试报告

在这里插入图片描述

在这里插入图片描述

产品功能自测

单元测试通过后,进行功能自测,测试事先需要提供门槛用例,然后由产品经理牵头会同前端和后端共同进行自测。

自测重点:

  1. 测试提供门槛用例
  2. 产品核对产品功能
  3. 前后端进行按照门槛用例进行自测
  4. 自测通过了,以邮件的形式转测试,并且在邮件中附带单元测试通过报告,门槛用例通过报告
标签: 单元测试 log4j

本文转载自: https://blog.csdn.net/murderTV/article/details/136430112
版权归原作者 懒斯落特 所有, 如有侵权,请联系我们删除。

“单元测试与自测方案”的评论:

还没有评论