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框架, 信号处理, 信号模式检测, 异常检测, 异常行为检测, 数据解析, 日志验证, 汽车工程, 汽车模拟测试, 汽车电子系统, 系统级测试, 自动化测试工具, 自动化验证, 自动笔记, 车辆安全, 车辆行为验证, 逆向工具, 验证规则