单线程测试模块

📅 2026/7/1 6:39:40
单线程测试模块
SFP/QSFP光模块终测软件 3天吃透分步学习计划新人友好可落地3天后能给同事讲清整套逻辑整体目标搞懂程序启动→界面交互→初/终测双流程→I2C模块读写仪表SCPI通信→结果判定日志完整链路能回答同事提问、简单改bug、看懂现有业务逻辑。前置准备打开VS加载QSFP模块终测检查软件.sln只聚焦SFP模块终测检查软件项目文件夹Backup、.vs、升级日志全部忽略。第1天搞懂项目整体结构 程序执行入口半天就能完成建立全局认知上午任务梳理所有文件分工30分钟对照之前的文件说明逐个标注每个cs文件定位自己在记事本简单填表文件名定位界面/全局变量/业务/驱动/工具核心作用一句话Program.cs程序入口软件最先启动控制打开登录窗体Login_Form.cs界面层账号登录校验登录成功跳转主测试页Main_Form.cs主界面核心测试按钮、进度条、日志、初测/终测总流程入口SetUp_Form.cs配置界面仪表IP、串口、上下限阈值配置页面GlobalVarFun.cs全局变量全局模式、模块类型、报错信息、跨窗体共享数据SFPTest.cs / TestQSFP.cs业务逻辑层封装所有单项测试步骤、参数判定OK/NG逻辑I2C_xxx.cs底层驱动读写光模块寄存器读取电压、电流、温度、DDM信息KeysightB86120CS.cs仪表驱动SCPI指令控制是德仪表收发测试数据SimpleLogger.cs工具类界面打印日志、本地写入日志文件、异常收集Common.cs / Bit.cs通用工具字节、16进制、字符串转换、校验计算中午任务跑通完整软件肉眼看懂运行流程30分钟点击VS启动按钮运行程序记录全过程① 登录弹窗 → ② 进入主界面选择SFP/QSFP型号 → ③ 选择初测/终测模式 → ④ 点击开始测试按钮⑤ 观察进度条、计时、日志文本框变化看程序自动跑完所有步骤最后出OK/NG结果重点标记2个关键分支firstTest初测流程入口函数FirstTestProcess()finalTest终测流程入口函数FinalTestProcess()下午任务顺着代码入口溯源理清执行顺序1.5小时打开Program.cs看懂Application.Run(new Login_Form())理解程序启动顺序打开Login_Form.cs找到登录按钮点击事件看懂账号校验通过后关闭登录页、打开Main_Form主窗体进入重中之重 Main_Form.cs找到【开始测试按钮】的Click点击事件就是你截图里这段代码所在方法逐行梳理这段逻辑清空报错→修改按钮颜色文字→进度条初始化→判断testType分支→调用对应测试函数→测试结束统计耗时、停止计时器VS小技巧右键函数名 →转到定义一键跳进FirstTestProcess()内部不用手动翻找文件今日收尾总结写3行即可方便对接同事软件是C# WinForms上位机用于SFP/QSFP光模块产线单机终测程序启动登录页→主测试页点击启动自动区分初测、终测两套测试流程整体三层架构界面交互层、测试业务逻辑层、硬件通信驱动层第2天深挖两大测试流程 全局变量逻辑核心攻坚日吃透业务上午吃透全局变量GlobalVarFun.cs40分钟把所有核心静态变量逐个弄懂用途这是看懂分支判断的关键GlobalVarFun.testType字符串firstTest初测、finalTest终测决定走哪套流程GlobalVarFun.moduleType区分当前被测模块是SFP还是QSFP适配不同寄存器、测试阈值GlobalVarFun.errorMessage字符串收集所有测试不良原因最终汇总展示不良信息各类阈值变量测试上下限用来对比实测值判断合格/不合格中午拆解初测 FirstTestProcess() 完整步骤1小时进入函数内部按顺序记录每一步动作界面进度条赋值刷新第一步仪表、I2C通信初始化连接工装硬件自检通信是否正常第二步读取光模块基础信息、SN序列号、厂商信息第三步逐项执行TX发射参数测试、RX接收参数测试、DDM监控参数读取第四步每一项测试完成自动和阈值对比异常就拼接内容到errorMessage第五步单步修改进度条打印实时日志遇到调用SFPTest/TestQSFP里的方法用「转到定义」跳过去看懂这个单项测试测什么指标下午拆解终测 FinalTestProcess() 对比两个流程差异1.5小时用完全相同方式梳理终测完整步骤重点整理表格你给同事讲解的核心素材| 项目 | 初测 firstTest | 终测 finalTest || ---- | ---- | ---- || 测试定位 | 半成品来料初步检测 | 成品出厂最终全项检测 || 测试项数量 | 少部分关键项快速筛查 | 项目最全完整合规检测 || 判定严格度 | 宽松排查明显坏品 | 严苛所有指标必须落在阈值内 |弄懂日志机制SimpleLogger测试过程实时往文本框打印、同时本地存日志文件方便追溯不良品小实操验证检验自己有没有看懂在某一个测试步骤末尾加一行日志打印代码运行软件确认日志能按你的预想顺序输出验证流程理解无误第3天吃透底层硬件通信 排坑 整理汇报文档出师日能独立接活、回复同事上午两大底层驱动通信逻辑拆解1.5小时1I2C读写类光模块内部寄存器交互作用光模块内部参数都存在I2C寄存器地址里软件读寄存器拿到电压、电流、温度、偏置电流、告警状态看懂两个核心方法读寄存器ReadI2C()、写寄存器WriteI2C()业务意义所有DDM监控数据、模块基础信息全部来源于I2C读取2Keysight是德仪表SCPI驱动类通信方式TCP Socket网络通信原理软件发送标准SCPI字符串指令控制光功率计、BERT误码仪、电源等仪表下发激励、采集实测数据举例发送一条读取光功率指令仪表返回数值软件再做合格判定分清I2C是和光模块本身通信SCPI是和外部测试仪表通信中午梳理配置页面 SetUp_Form.cs40分钟看懂配置项仪表IP地址、端口、串口选择、各项测试上下限阈值理解逻辑配置参数保存后全局变量读取配置后续测试流程统一调用参数不用硬编码写死数值下午整理整体总结文档 准备对接同事话术1小时一、自己整理极简整体流程图文字版即可程序启动→账号登录→主界面选择模块型号测试模式(初/终测)→点击启动测试 ↓ 初始化I2C通信 是德仪表SCPI通信连通硬件工装 ↓ 分支1初测逐项关键指标测试→数据对比阈值→收集不良信息→刷新进度日志 分支2终测全项目完整检测→逐项判定OK/NG→汇总不良原因 ↓ 测试结束统计总耗时、展示最终PASS/FAIL结果、自动保存本地日志二、优缺点现存认知疑问整理得体问同事不显得小白示例话术你可以直接用“哥这三天我把这套QSFP/SFP终测软件完整梳理完了整体是WinForms上位机分登录主测试参数配置三个界面业务上分初测、终测两套自动测试流程底层靠I2C读模块寄存器、SCPI指令控制是德仪表做参数采集判定。目前整体流程我已经理顺了有两个小地方想请教你一下1、初测和终测当时设计删减测试项的具体业务考量是什么2、仪表异常断线重试这块现在有没有预留处理逻辑后续简单改流程、调整阈值、排查测试报错我可以自己接手处理有复杂底层改动我再提前跟你沟通。”收尾避坑规则以后改代码不翻车前期只改界面文字、日志、进度条、阈值参数不要随便修改I2C、SCPI底层收发逻辑避免工装通信异常修改代码前先复制备份原代码改错可以回滚看不懂的函数先标记记录集中一次性提问不要碎片化频繁打断同事需要我帮你生成一份可直接复制使用的项目梳理Word版文案吗你整理完直接发给这位同事既体现工作主动性也正式接手这个项目。