2024年软件测试工具总结——单元测试工具_单元测试自动生成工具(1)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

JUnit是一个为Java编程语言设计的开源单元测试框架,由 Kent Beck 和 Erich Gamma建立,它是单元测试框架家族中的一个,这些框架被统称为xUnit,JUnit是xUnit 家族中最为成功的一个。JUnit 有它自己的 Junit 扩展生态圈,多数 Java 的开发环境都已经集成了 JUnit 作为单元测试的工具。JUnit 的最新版本是JUnit 5,它不再是一个单一的JAR 包,而是由JUnit platform(平台)、JUnit Jupiter 和JUnit Vintage 这3 部分组成。

官网地址:https://junit.org/junit5/

2)TestNG

图片

TestNG 是另一个为Java编程语言设计的开源单元测试框架,是一个受JUnit和NUnit启发而来的测试框架,但它引入了一些新功能,使其更强大、更容易使用,例如:

  • 核心特性是多线程测试执行,测试代码是否是多线程安全的;
  • 提供注释支持;
  • 支持数据驱动测试(使用@DataProvider);
  • 支持参数化测试;
  • 强大的执行模型(不再有TestSuite);
  • 支持各种工具和插件(Eclipse, IDEA, Maven等…);
  • 嵌入BeanShell以获得更多的灵活性;
  • 用于运行时和日志记录的默认JDK函数(没有依赖关系)。

官网地址:https://testng.org/

3)GoogleTest

图片

GoogleTest是一个跨平台的(Liunx、Mac OS X、Windows 、Cygwin 、Windows CE and Symbian ) C++单元测试框架,由google公司发布,为在不同平台上为编写C++测试而开发的。它提供了丰富的断言、致命和非致命判断、参数化、”死亡测试”等等。例如:

  • 测试用例本身就是一个exe工程,编译之后可以直接运行,非常的方便。
  • 编写测试案例变的非常简单(使用一些简单的宏如TEST),让我们将更多精力花在测试用例设计上。
  • 提供了强大丰富的断言的宏,用于对各种不同检查点的检查。
  • 提高了丰富的命令行参数对脚本运行进行一系列的设置。

代码开源地址:https://github.com/google/googletest

4)pytest

图片

pytest是一个非常成熟的全功能的支持Python语言的单元自动化测试框架。简单灵活,容易上手,支持参数化;能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试,以及接口自动化测试(pytest集成requests)。

官网地址:http://pytest.org/

5)unittest

图片

unittest 是 Python 自带的一个单元测试框架,无需安装,使用简便,引入包 import unittest 即可使用。unittest单元测试框架作为python的标准库,是其他单元测试框架的基础。

官网地址:http://docs.python.org/zh-cn/3/library/unittest.html

单元测试Mock工具

在进行单元测试时,需要测试的类有很多依赖,这些依赖的类或者资源又会有依赖,导致在单元测试代码里无法完成构建。因此,我们需要采用Mock 技术隔离依赖对象,即模拟这些需要构建的类或者资源,提供给需要测试的对象使用。

6)JMockit

图片

JMockit是一个用于Java语言单元测试的开源Mock工具,包含了工具和API集合。Jmockit可以和junit和TestNG配合使用编写单元测试。

JMockit支持类级别整体mock和部分方法重写,以及实例级别整体mock和部分mock,可以mock静态方法、私有变量及局部方法。

这个工具还具有统计单元测试代码覆盖率的功能,提供了三种类型的代码覆盖率,如行覆盖率、路径覆盖率和数据覆盖率。

官网地址:http://jmockit.org/

单元测试覆盖率工具

单元测试中还需要用到代码覆盖率工具。代码覆盖率是用来度量在单元测试过程中被覆盖代码的指标。代码覆盖率统计工具用来发现没有被测试覆盖的代码,完善单元测试的覆盖率。另外,这类工具还可以用来构建代码调用关系,精准的确定回归测试范围,避免全量回归造成测试资源的浪费。

7)JCoCo

图片

Jacoco是一个开源的免费Java代码覆盖工具,由EclEmma创建,其使用方法很灵活,可以嵌入到Ant、Maven中;可以作为Eclipse插件,可以使用其Java Agent技术监控Java程序等等。很多第三方的工具提供了对JaCoCo的集成,如sonar、Jenkins等。

JaCoCo包含了多种尺度的覆盖率计数器

  • 指令级覆盖(Instructions,C0coverage)
  • 分支(Branches,C1coverage)
  • 圈复杂度(CyclomaticComplexity)
  • 行覆盖(Lines)
  • 方法覆盖(non-abstract methods)
  • 类覆盖(classes)

官网地址:https://www.jacoco.org/jacoco/

8)gcov、lcov、gcovr

图片

gcov、lcov、gcovr都是支持C/C++语言代码覆盖率的工具。

gcov是由gcc内建的代码覆盖率生成工具,可以很方便的和GCC编译器配合使用,通常情况下,直接安装gcc工具链,也就同时包含了gcov命令行工具。gcov得到的结果是文本形式的,而且不同的源码文件需要一一执行gcov命令,对于大工程是不方便的,这时就需要lcov。

lc****ov是gcov工具的图形前端,收集多个源文件的gcov数据,生成描述覆盖率的HTML页面。生成的结果中会包含概述页面,方便浏览

一般场景下使用gcov和lcov能满足代码覆盖率的获取和展示工作,lcov和genhtml配合生成的HTML报告内容详尽,简洁直观,行覆盖率、分支覆盖率都有,但是HTML文件在常用的持续集成工具(比如Jenkins、gitlab-ci)中均无法集成,因此我们需要其他的工具用于覆盖率结果的持续集成展示。gcovr是一款针对C/C++代码覆盖率并支持以多种方式(包括列表方式、XML文件方式、HTML网页方式等)展示出来的工具,而XML文件刚好是可以被持续集成工具解析的。

lcov下载地址:https://github.com/linux-test-project/lcov

gcovr下载地址:https://github.com/gcovr/gcovr

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-s3iu4bTw-1713692245739)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值