医用软件测试概述
IEC 62304对测试的要求、测试级别(单元、集成、系统)、测试文档体系。
单元测试基础
什么是单元测试、单元测试的价值、单元测试与调试的区别、TDD简介。
C语言单元测试框架
Unity框架、Ceedling构建、CMock模拟、框架选型对比。
测试用例设计方法
等价类划分、边界值分析、判定表、因果图、场景法在嵌入式中的应用。
桩函数与模拟
桩函数(Stub)实现技巧、模拟(Mock)与验证、链接时替换与函数指针替换。
覆盖率分析
语句覆盖、分支覆盖、MC/DC覆盖、IEC 62304要求、gcov/lcov工具。
静态分析
MISRA C规范、PC-Lint/Coverity、CI集成、常见误报处理。
内存测试
堆栈溢出检测、内存泄漏检测、动态内存分配测试、静态内存分析工具。
中断与并发测试
ISR测试方法、竞态条件检测、临界区保护测试、RTOS任务测试。
硬件抽象层测试
HAL层设计原则、单元测试策略、寄存器读写模拟、外设驱动测试。
通信协议测试
UART/I2C/SPI协议测试、协议栈单元测试、数据帧解析测试、错误处理。
状态机测试
状态机建模、状态转换测试、状态覆盖准则、状态机测试框架。
数学运算测试
定点数运算测试、浮点数精度测试、数值稳定性测试、查表法测试。
时间关键型测试
定时器测试、延时函数测试、超时处理测试、时间戳测试。
安全关键功能测试
看门狗测试、安全状态测试、故障注入测试、冗余设计测试。
集成测试策略
大爆炸集成、自顶向下、自底向上、三明治集成、持续集成。
接口集成测试
函数接口测试、模块间数据流测试、全局变量依赖测试、回调函数测试。
组件集成测试
组件间通信测试、数据一致性测试、状态同步测试、错误传播测试。
系统启动与初始化测试
上电自检(POST)、模块初始化顺序、配置加载测试、默认状态测试。
异常与错误处理测试
错误码测试、异常路径测试、资源耗尽测试、看门狗超时测试。
回归测试策略
回归范围确定、自动化回归、测试用例优先级、回归测试频率。
测试自动化框架
Jenkins/GitLab CI配置、自动化构建与测试、测试报告生成、失败分析。
测试环境搭建
目标硬件测试、模拟器测试、半实物仿真、硬件在环(HIL)测试。
测试数据管理
测试数据生成、版本控制、数据复用、边界数据自动生成。
测试文档与追溯
测试计划编写、测试用例规范、测试报告模板、需求追溯矩阵。
代码审查与测试
代码审查流程、审查检查清单、审查与测试协同、自动化审查工具。
性能测试
执行时间测量、CPU负载测试、内存占用测试、响应时间测试。
可靠性测试
长时间运行测试、压力测试、疲劳测试、恢复测试。
认证与合规
FDA对软件测试的要求、CE认证测试要求、IEC 62304文档审核、第三方测试。
实战案例
心电监护仪单元测试、输液泵集成测试、除颤仪系统测试、测试经验总结。