01
测试基础与覆盖概念
什么是软件测试、测试生命周期、白盒与黑盒测试、覆盖率的定义与重要性。
基础概念
02
语句覆盖
定义与原理、如何计算语句覆盖率、实战案例:计算一个简单函数的语句覆盖率。
白盒入门
03
分支覆盖
定义与原理、分支覆盖 vs 语句覆盖、实战案例:计算if-else结构的分支覆盖率。
分支逻辑
04
条件覆盖
定义与原理、条件覆盖的粒度、实战案例:计算复合条件的条件覆盖率。
条件复合
05
判定/条件覆盖
定义与原理、组合覆盖策略、实战案例:同时满足判定与条件覆盖。
判定组合
06
条件组合覆盖
定义与原理、全组合 vs 部分组合、实战案例:计算多条件的组合覆盖率。
全组合MC/DC
07
路径覆盖
定义与原理、路径爆炸问题、实战案例:计算简单循环的路径覆盖率。
路径循环
08
MC/DC覆盖
定义与原理、MC/DC在航空/汽车领域的应用、实战案例:计算MC/DC覆盖率。
安全DO-178C
09
函数覆盖与调用覆盖
定义与原理、函数调用图、实战案例:分析模块间的调用覆盖。
模块集成
10
循环覆盖
定义与原理、0次/1次/多次循环、实战案例:测试循环边界条件。
边界迭代
11
数据流覆盖
定义与原理、定义-使用对、实战案例:分析变量的定义与使用路径。
数据流静态
12
变异测试
定义与原理、变异算子、实战案例:使用变异测试评估测试套件质量。
变异质量
13
测试插桩技术
什么是插桩、静态插桩 vs 动态插桩、实战案例:在Python代码中插入覆盖率探针。
插桩探针
14
覆盖率工具
gcov/lcov、JaCoCo、Istanbul、Coverage.py、实战案例:使用Coverage.py收集覆盖率。
工具Coverage.py
15
覆盖率报告解读
行覆盖率、分支覆盖率、函数覆盖率、实战案例:分析一份真实的覆盖率报告。
报告分析
16
测试用例设计
等价类划分、边界值分析、因果图法、实战案例:为登录功能设计测试用例。
设计黑盒
17
测试套件优化
冗余测试用例识别、最小化测试套件、实战案例:使用贪心算法精简测试集。
优化精简
18
增量覆盖与回归测试
增量覆盖的概念、回归测试策略、实战案例:在CI/CD中实现增量覆盖。
CI/CD回归
19
覆盖收敛分析
什么是覆盖收敛、收敛曲线、实战案例:绘制测试迭代的覆盖收敛图。
收敛度量
20
覆盖驱动的测试生成
基于覆盖的自动测试生成、符号执行、实战案例:使用AFL进行模糊测试。
模糊测试AFL
21
代码审查与覆盖
代码审查中的覆盖视角、如何通过审查提升覆盖、实战案例:审查一个低覆盖率的模块。
审查协作
22
覆盖与质量度量
覆盖率的局限性、覆盖与缺陷的关系、实战案例:分析覆盖率高但仍有缺陷的案例。
度量缺陷
23
多语言覆盖策略
C/C++、Java、Python、JavaScript的覆盖工具对比、实战案例:统一多语言覆盖报告。
多语言统一
24
嵌入式系统测试覆盖
嵌入式测试的特殊性、硬件在环测试、实战案例:为嵌入式C代码生成覆盖报告。
嵌入式HIL
25
Web应用测试覆盖
前端覆盖 vs 后端覆盖、E2E测试覆盖、实战案例:使用Cypress收集前端覆盖。
WebCypress
26
API测试覆盖
接口覆盖、参数组合覆盖、状态码覆盖、实战案例:为RESTful API设计覆盖策略。
APIREST
27
安全测试覆盖
安全测试的覆盖维度、OWASP Top 10覆盖、实战案例:SQL注入测试的覆盖分析。
安全OWASP
28
性能测试覆盖
性能测试场景覆盖、负载模型覆盖、实战案例:设计性能测试的覆盖矩阵。
性能负载
29
AI模型测试覆盖
模型鲁棒性覆盖、对抗样本覆盖、实战案例:评估图像分类模型的覆盖。
AI鲁棒性
30
覆盖驱动的DevOps实践
覆盖门禁、覆盖趋势监控、实战案例:在Jenkins Pipeline中集成覆盖检查。
DevOps门禁