(九)所见即所得 之 单元测试(5)

三、实际项目中如何开展单元测试?

1、并不是所有的代码都要进行单元测试,通常只有底层模块或者核心模块的测试中才会采用单元测试。

2、你需要确定单元测试框架的选型,这和开发语言直接相关。比如,Java 最常用的单元测试框架是 Junit 和 TestNG;C/C++ 最常用的单元测试框架是 CppTest 和 Parasoft C/C++test;框架选型完成后,你还需要对桩代码框架和 Mock 代码框架选型,选型的主要依据是开发所采用的具体技术栈。

通常,单元测试框架、桩代码 /Mock 代码的选型工作由开发架构师和测试架构师共同决定。

3、为了能够衡量单元测试的代码覆盖率,通常你还需要引入计算代码覆盖率的工具。不同的语言会有不同的代码覆盖率统计工具,比如 Java 的 JaCoCo,JavaScript 的 Istanbul。

4、你需要把单元测试执行、代码覆盖率统计和持续集成流水线做集成,以确保每次代码递交,都会自动触发单元测试,并在单元测试执行过程中自动统计代码覆盖率,最后以“单元测试通过率”和“代码覆盖率”为标准来决定本次代码递交是否能够被接受。

如果你有开发背景,那么入门单元测试是比较容易的。但真正在项目中全面推行单元测试时,你会发现还有一些困难需要克服:

  • 紧密耦合的代码难以隔离;

  • 隔离后编译链接运行困难;

  • 代码本身的可测试性较差,通常代码的可测试性和代码规模成正比;

  • 无法通过桩代码直接模拟系统底层函数的调用;

  • 代码覆盖率越往后越难提高。


总结

以上5篇详细介绍了单元测试的概念,和你重点讨论了用例的组成,以及在实际项目中开展单元测试的方法,你需要注意以下三个问题:

  • 代码要做到功能逻辑正确,必须做到分类正确并且完备无遗漏,同时每个分类的处理逻辑必须正确;

  • 单元测试是对软件中的最小可测试单元在与软件其他部分相隔离的情况下进行的代码级测试;

  • 桩代码起到了隔离和补齐的作用,使被测代码能够独立编译、链接,并运行。


软件测试52讲---笔记整理

你可能感兴趣的:((九)所见即所得 之 单元测试(5))