课程适合人群:
1.单元测试概要
1.1介绍单元测试
1.2单元测试在传统开发模式中的地位
1.3单元测试在敏捷开发模式中的地位
1.4TDD
1.5测试桩和驱动
1.6测试应该贯彻始终
1.7敏捷与DevOps下的单元测试
1.8代码提交
1.9嵌入式软件测试的难点
1.10嵌入式软件测试的方法
2.白盒测试基本概念
2.1静态测试与动态测试
2.2精准测试
2.3白盒测试基本概念-动态分析
2.3.1语句覆盖
2.3.2分支覆盖
2.3.3条件覆盖
2.3.4条件/分支覆盖
2.3.5MC/DC覆盖
2.3.6路径覆盖
2.4控制流覆盖
2.5白盒测试基本概念-静态态分析
2.5.1 MISRA C/C++
2.5.2 代码错误
功能层面错误
性能层面的错误
3 C++语言单元测试工具
3.1 Google Test
3.1.1 安装
准备条件
安装CMake
建立google Test
3.1.2 引言
Google Test简介
基本概念
3.1.3 断言
3.1.4 书写测试
简单测试(TEST()宏)
测试夹具(TEST_F()宏)
参数化(TEST_P()宏)
3.1.5 如何测试静态、保护和私有变量和方法
如何测试静态变量和方法
如何测试保护变量和方法
如何测试私有变量和方法
3.2 Google Mock
3.2.1 引言
Google Mock简介
为什么选择Google Mock
3.2.2 Google Mock基础
测试的重要性
Google Mock的安装和配置
测试用例的结构
编写测试用例的步骤
3.2.3 创建测试用例
测试用例的重要性
测试用例的基本原则
测试用例的结构
测试用例的参数化
测试用例的组织
示例:测试复杂逻辑
3.2.4 Mocking的基本概念
什么是Mocking?
Mocking与Stub的区别
为什么使用Mocking?
使用Google Mock进行Mocking
示例:Mock一个简单的依赖
使用Mock验证方法调用顺序
任意次数的调用
动作:被调用时的行为
设置多个期望
组合Mock和Stub
Mocking复杂类型(NiceMock 和StrictMock)
Google Mocking的局限性
3.2.5 高级Mocking技巧
使用ON_CALL自定义Mock行为
模拟异常
使用Invoke回调函数
模拟复杂的数据结构
模拟方法调用的副作用
模拟方法的多次调用
使用UnorderedElementsAre匹配容器
3.2.6 Google Mock的断言和期望
断言的重要性
基本断言Google Test
匹配器:验证参数
组合断言
断言动作(Actions)
验证器(Validators)
期望和断言的高级用法
4.白盒测试覆盖率工具
4.1圈复杂度
4.2扇入扇出
4.3GCOV、LCOV安装
4.4GCOV、LCOV运行
4.5测试报告
4.6LCOV工具在Jenkins中的应用
5.语法规范检查SonaQube
5.1 JDK 11的安装
5.2 SonaQube支持的数据库
5.3 MS SQL Server安装
5.4 postgresql安装
5.5 SonaQube安装
5.6 SonaQube配置
5.7 sonar-scanner安装及运行
6.TDD实践
6.1 TDD简介
6.2 需求变更带来的
【投稿】【关闭窗口】【打印】