测试人进阶技能:单元测试报告应用指南

这篇具有很好参考价值的文章主要介绍了测试人进阶技能:单元测试报告应用指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么需要单元测试

从产品角度而言,常规的功能测试、系统测试都是站在产品局部或全局功能进行测试,能够很好地与用户的需要相结合,但是缺乏了对产品研发细节(特别是代码细节的理解)。

从测试人员角度而言,功能测试和系统测试以及其他性能测试等等对测试人员的全局特性理解能力要求较高,只要测试人员能够掌握一两种自动化测试框架基本能够开展功能、性能自动化测试,但是借助于测试框架进行研发降低了测试人员对代码的掌握、理解要求。

从开发人员角度而言,用户需求往往并不是具体的、全面的,因此基于用户需求转换成开发文档或着针对某个功能编写开发代码往往也存在着局限性(也即我们常说的bug)。

因此,编写单元测试可以帮助测试人员更好地理解代码细节、提高代码开发能力,也能帮助开发人员提前辨识代码中可能存在的bug,提高代码的容错能力。

如何制定单元测试报告

良好的单元测试报告能够帮助测试人员更好地分析、挖掘潜藏的问题。那么,如何制定单元测试报告呢,从哪些维度出发呢?在这里我们主要从测试人员角度出发来思考这个问题。

首先,我们需要报告中能够呈现我们的测试用例数量和测试结果(pass或者fail),以及错误细节。

其次,从单元测试本身特点出发,我们需要报告中能够呈现出针对单元代码分支、单元方法等的覆盖率,更好地帮助我们梳理和测试用例设计的优良。

在此,我们使用surefire-report统计测试用例数量和测试结果,使用jacoco统计单元测覆盖率(注:本文默认测试用例的执行方式是mvn test)。

如何配置

surefire-report配置

配置方法:配置maven-surefire-plugin插件,maven-surefire-plugin是maven默认的test执行器,配置方法如下图所示:测试人进阶技能:单元测试报告应用指南,软件测试工程师,软件测试,自动化测试,单元测试,log4j,软件测试,自动化测试,功能测试,程序人生

上图中testFailureIgnore表示忽略单元测试中的错误继续构建,/*Test.java:表示任何子目录下所有命名以Test结尾的Java类,/Test*.java:表示不执行任何子目录下所有命名以Test开头的Java类。

执行方法:使用mvn test surefire-report:report即可,会生成在/target/site/surefire-report.html测试报告文档。

如下图所示:

Tests显示总用例数;

Errors指的是程序没有考虑到的情况,例如异常未能捕捉;

Failure指的是预期的结果与实际运行单元的结果不同所导致,常出现在断言处;

Skipped表示跳过的测试用例数;

Success Rate表示用例成功率(=成功用例数/总用例数);

Time显示总耗时;

Package List显示详细的package下用例执行结果。测试人进阶技能:单元测试报告应用指南,软件测试工程师,软件测试,自动化测试,单元测试,log4j,软件测试,自动化测试,功能测试,程序人生
配置方法:配置jacoco-maven-plugin插件,配置方法如下图所示,phase表示插件运行的生命周期阶段。

测试人进阶技能:单元测试报告应用指南,软件测试工程师,软件测试,自动化测试,单元测试,log4j,软件测试,自动化测试,功能测试,程序人生

执行方法:mvn test执行即可。会在/target/site/jacoco/目录下生成总的覆盖率报告index.html和不同package的单元测试覆盖率报告…/xxx/index.html。此外还有csv和xml格式的单元测试覆盖率报告。测试人进阶技能:单元测试报告应用指南,软件测试工程师,软件测试,自动化测试,单元测试,log4j,软件测试,自动化测试,功能测试,程序人生

如上图所示为某个package的单元测试覆盖率报告:

红色进度条表未覆盖;

绿色进度条表示已覆盖;

Cov 为总体覆盖率;

Missed Instructions表示代码覆盖率;

Missed Branches表示逻辑分支覆盖率;

Missed Cxty表示判断执行数;

Missed Lines表示代码行数;

Methods表示方法个数。

如何利用单元测试报告

至此,我们讲了单元测试的重要性以及如何设置和查看单元测试报告。现在我们来聊聊如何利用单元测试报告。

本文中我们讲述了两种单元测试报告,一种是从测试人员角度出发方便测试人员统计单元测试用例数和分析用例执行结果的surefire-report报告,另一种是可以帮助测试人员和开发人员深入分析单元测试用例覆盖代码率的jacoco报告。

对于surefire-report报告而言,我们主要是用于统计用例数和通过用例执行结果判断用例设计是否合理、测试环境是否存在问题,可以类似于某种更接近于代码层的“功能测试”报告。
对于jacoco单元测试覆盖率报告,我们可以借助单元测试覆盖率判可以断测试用例设计是否缺漏,从而补全遗漏的测试用例。如下图所示为某个Package下某个类中某个方法的单元测试覆盖率报告。测试人进阶技能:单元测试报告应用指南,软件测试工程师,软件测试,自动化测试,单元测试,log4j,软件测试,自动化测试,功能测试,程序人生

如上图所示,绿色钻石表示全部覆盖,黄色钻石表示部分覆盖,红色钻石表示没有覆盖。

通过上图测试报告我们可以看出缺少覆盖红色部分的单元测试用例,因此可以重新设计、补全对应红色分支部分的测试用例。文章来源地址https://www.toymoban.com/news/detail-648366.html

到了这里,关于测试人进阶技能:单元测试报告应用指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件测试--应用JUnit进行单元测试

    JUnit是一个开源的Java编程语言的单元测试框架,最初由 Erich Gamma 和 Kent Beck 编写。Junit测试是一种白盒测试工具。JUnit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。具有JUnit经验对于应用“测试驱动开发(TDD)”的程序开发模型是非常重要的。 JUnit本质上是一套框

    2023年04月12日
    浏览(42)
  • 2023年软件测试工程师,初级到高级进阶路线指南,测试之路...

    提到软件测试工程师时,很多人依然会联想到那些“点点点”并企图在“点点点”中找到缺陷的人,也就是大家常说的依照测试规范和测试案例来对软件进行测试,检查软件是不是有缺陷,判断软件是不是稳定。但这其实是一个很不好的观点。 近年来,随着各大互联网企业的

    2024年02月09日
    浏览(62)
  • Linux环境下,针对QT软件工程搭建C++Test单元测试环境的操作指南

    C++Test是Parasoft公司出品的一款可以针对C/C++源代码进行静态分析、单元测试、集成测试的测试工具。本文主要讲解如何在Linux环境下,搭建QT插件版的C++Test测试环境。 1、在官网上下载Linux环境下的QT库和QT Creator: 2、先安装依赖文件: 3、解压QT库安装包: 4、配置(用于生成

    2024年01月19日
    浏览(46)
  • 软件测试|Django 入门:构建Python Web应用的全面指南

    引言 Django 是一个强大的Python Web框架,它以快速开发和高度可扩展性而闻名。本文将带您深入了解Django的基本概念和核心功能,帮助您从零开始构建一个简单的Web应用。 什么是Django? Django 是一个基于MVC(模型-视图-控制器)设计模式的Web框架,旨在简化Web应用程序的开发过

    2024年02月02日
    浏览(66)
  • 软件测试技能大赛学习路线

    目录 大纲 写在开头 阶段0:前期准备 1. 阶段一:环境搭建及系统部署 1.1. 知识点 1.2. 实战 1. 阶段二:单元测试 1.1. 知识点 1.1.2. 代码走查 1.1.3. 白盒测试 1.1.4. 单元测试 1.2. 实战 阶段三:功能测试 3.1. 知识点 3.1.1. 功能测试文档 3.1.2. 整体测试文档(2022国赛) 3.1.3. 功能测试

    2024年02月04日
    浏览(45)
  • 软件测试必备7大技能

    1.在测试中最重要的文档,他是测试工作的核心,是一组在测试时输入输出的标准,是软件需求的具体对照。编写测试用例,是测试人员的基本功,真正能写好的人并不多。 2.测试用例包含的内容:用例编号,用例名称,测试背景,前置条件,优先级,测试数据,测试步骤,

    2024年02月08日
    浏览(40)
  • 软件测试人员需要具备哪些技能?

    作为一名软件测试人员,以下是一些必要的技能: 1.测试技术:了解测试的基本原理、测试方法和测试技术,包括黑盒测试、白盒测试、灰盒测试、功能测试、性能测试、安全测试、回归测试、自动化测试等。 2.编程技能:熟悉至少一种编程语言,以便能够编写测试脚本和自

    2024年02月11日
    浏览(43)
  • 软件测试技能,JMeter压力测试教程,Plugins Manager插件管理器(十三)

    前面讲了JDBC连接数据库的时候,需下载mysql对应的jar包,放到libext目录下就可以使用了 jmeter 有个插件管理器Plugins Manager,可以方便的管理其他插件的下载和更新 下载地址:https://jmeter-plugins.org/install/Install/ 下载插件后把jar包放到 lib/ext 目录,然

    2024年02月07日
    浏览(62)
  • 4大软件测试策略的特点和区别(单元测试、集成测试、确认测试和系统测试)_集成测试、系统测试、单元测试的反馈速度比较

    测试目标是验证最小单元的正确性、可靠性和稳定性; 测试结果通常以测试用例的成功率和错误报告等形式进行反馈 二、集成测试 集成测试也称为组装测试,是指在把各个模块连接起来的时候,测试跨越模块接口的数据是否会丢失、各个子功能组合起来是否能够达到预期要

    2024年04月23日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包