C/C++编程-理论学习-考鼎录<单元测试>
单元测试
提纲
- 单元测试的基本概念和重要性
- 单元测试可以无处不在
- 单元测试中什么最重要?
- 编码生成测试用例
- 单元测试框架
- 实例研究
单元测试的基本概念
- 软件质量的第一责任人是程序员,而非测试员
- 单元测试用来保证软件的基本质量,通过测试单个接口或者模块(一组接口)的基本功能来确保:
- 正确性:确保程序按照预期工作,尤其满足特定的边界条件
- 性能:确保空间复杂度和性能复杂度在预期范围内
- 无重大缺陷:确保无内存泄露、缓冲区溢出等重要缺陷
术语
- 测试:用于验证接口或者模块是否按照预期工作的活动/行为/代码
- 测试用例:用于测试特定功能的实例;一个测试用例通常包含一组输入数据以及对应的预期结果
- 测试套件(test suite):对多个测试用例的分组
- 测试方法(test method):如何测试某个接口或者模块,也就是如何设计和使用测试用例
- 测试框架(testing framework):专用于自动化单元测试的软件框架,如Glib Testing,GoogleTest等
单元测试的重要性
- 近几年各种开源基础软件的安全性漏洞造成的破坏性越来越大
- 2014年Openssl漏洞
- 2021年log4j漏洞
- 绝大多数开源软件缺乏基本的单元测试
- 开发者太过自信,不重视测试的重要性
- 急着开源后被动等待用户提issue的“开源协作”模式容易产生低质量代码