qingqing-QA/can_log_validation
GitHub: qingqing-QA/can_log_validation
一个基于Python的汽车CAN日志验证框架,用于ECU信号分析和自动化测试以检测系统异常。
Stars: 0 | Forks: 0
# CAN日志验证与ECU信号分析框架
本项目是一个基于Python的汽车验证框架,旨在分析模拟的CAN日志数据并验证ECU信号行为。
## 项目概述
该框架从CSV文件读取模拟的车辆CAN日志数据,应用验证规则,检测异常信号行为,并生成自动化验证报告。
本项目的目标是模拟汽车验证工程师如何分析ECU信号,并验证车辆行为是否保持在预期的操作条件内。
## CAN日志验证工作流程
```
CAN Log Input
↓
Parse Vehicle Signals
↓
Apply Validation Rules
↓
Detect Abnormal ECU Behavior
↓
Generate Validation Report
```
## 核心功能
- 使用Python和Pandas解析模拟的CAN日志数据
- 验证车速、转速、制动行为和ECU状态
- 检测异常信号模式和系统级验证失败
- 生成自动化验证报告
- 包含用于验证逻辑的PyTest测试用例
- 支持对不安全车辆行为的异常检测
- 将自动化测试与GitHub Actions CI/CD集成
## 验证规则
- 车速不应超过定义的安全阈值
- 转速应保持在安全运行范围内
- 车辆行驶时转速不应为零
- 踩下制动踏板时车速不应增加
- 正常操作期间ECU状态应保持OK
- 制动信号应与车辆行为保持一致
- 应自动检测异常信号组合
## 故障场景示例
- 车速过快
- 转速异常偏高
- 踩下制动踏板时车速增加
- ECU状态无效
- 车辆行驶期间转速下降
- 信号不一致性检测
## 技术栈
- Python
- Pandas
- PyTest
- CSV
- GitHub Actions
- 汽车系统验证
## 项目结构
```
can_log_validation/
│
├── data/
│ └── sample_can_log.csv
│
├── validators/
│ ├── __init__.py
│ ├── signal_rules.py
│ └── signal_validator.py
│
├── tests/
│ ├── __init__.py
│ ├── test_signal_rules.py
│ └── test_signal_validation.py
│
├── reports/
│ └── validation_report.txt
│
├── .github/
│ └── workflows/
│ └── python-tests.yml
│
├── main.py
├── requirements.txt
└── README.md
```
## 验证逻辑示例
本项目中实现的验证场景示例:
```
if speed > 220:
issues.append("Vehicle speed exceeds valid range")
if rpm > 8000:
issues.append("RPM exceeds valid range")
if brake == 1 and speed > 120:
issues.append("Brake signal active at high speed")
```
## 测试覆盖率
本项目包含针对以下内容的自动化测试:
- 速度验证
- 转速验证
- 制动信号验证
- ECU状态验证
- 信号异常检测
- 无效信号组合检测
- CSV解析验证
- 验证规则测试
- 系统级信号一致性检查
## 项目展示内容
本项目展示了使用基于Python的CAN日志分析进行汽车ECU信号验证和系统级测试。
该框架模拟了验证工程师如何分析车辆遥测数据,应用信号验证规则,检测异常行为,并验证系统可靠性。
该项目还展示了使用PyTest进行自动化测试以及通过GitHub Actions进行CI/CD集成的实践。
## 如何运行项目
安装依赖项:
```
pip install -r requirements.txt
```
运行验证框架:
```
python main.py
```
运行自动化测试:
```
python -m pytest
```
生成验证报告:
```
python main.py > reports/validation_report.txt
```
## CI/CD 持续集成/持续交付
本项目使用GitHub Actions在代码推送到仓库时自动执行验证测试。
CI管道验证:
- Python环境设置
- 依赖项安装
- CAN日志解析
- 信号验证规则
- PyTest自动执行
- 验证报告生成
## 面试讨论点
我构建此项目是为了使用CAN日志分析模拟汽车ECU信号验证。
该框架读取模拟的车辆信号数据,包括车速、转速、制动状态和ECU状态,然后应用验证规则以检测异常行为和系统级不一致性。
我添加了正向和负向验证场景,包括车速过快、转速异常、制动不一致和ECU状态故障。
该项目帮助我实践了系统级验证、信号分析、异常检测、使用PyTest进行自动化测试以及通过GitHub Actions进行CI/CD集成。
标签:CAN总线分析, CCTV/网络接口发现, CSV数据处理, ECU信号, ECU测试, GitHub Actions, Pandas库, PyTest测试, Python框架, 信号处理, 信号模式检测, 异常检测, 异常行为检测, 数据解析, 日志验证, 汽车工程, 汽车模拟测试, 汽车电子系统, 系统级测试, 自动化测试工具, 自动化验证, 自动笔记, 车辆安全, 车辆行为验证, 逆向工具, 验证规则