news 2026/10/13 20:26:58

保险银行项目软件测试Bug汇总:状态、金额、并发与接口排查

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保险银行项目软件测试Bug汇总:状态、金额、并发与接口排查

最近总有人问我,做软件测试到底什么项目最难测。我的回答一直没变:保险和银行。这两类系统业务规则密集、金额敏感、状态流转复杂,外部接口又多,很多bug在测试环境一测就过,一上线就翻车。我把自己这些年攒下的软件测试bug汇总按场景拆开,结合真实排查经验写成这篇汇总,希望能让刚转金融项目或者正在被保险、银行系统折磨的测试同行少走点弯路。这篇不是泛泛的功能测试清单,而是围绕保险+银行项目里最常见的bug类型,从功能逻辑、并发权限、接口批量、报表对账到排查实录,一次讲透。

1. 保险与银行项目为什么容易“藏雷”

1.1 两类项目的业务差异决定了bug类型不同

保险和银行虽然都叫金融系统,但在测试视角下完全是两套逻辑。保险项目的主线是保单生命周期,从投保、核保、承保、撤单、退保到理赔、续期,每个动作都会改变保单状态,而且不同产品不同规则差异很大。比如重疾险的等待期、医疗险的免赔额、万能险的结算利率,这些业务规则通过规则引擎配置后,测试人员如果不熟悉,很难构造出有效用例。

银行项目的主线是账务和资金流转,核心关注点在于资金不能多一分也不能少一分。转账、代发、代扣、理财申购赎回、贷款还款,每一笔资金都要有完整的流水轨迹。银行系统对事务一致性要求更高,一个操作涉及多个账户时,要么全部成功要么全部回滚,不能出现半个交易。这个差异决定了测试重点:保险多测状态和规则,银行多测金额、并发和批量。如果拿测普通后台系统的思路去测金融项目,大概率会漏掉最致命的那类bug。

1.2 测试环境的复杂程度远超普通项目

说一个我参与过的某保险项目,测试环境要连核保引擎、支付渠道、短信平台、电子保单服务,还有一套用来模拟再保的接口mock,光环境联调就花了两周。银行项目更夸张,核心系统、总账、支付、渠道、风控,一个完整的交易链路可能要跨五六个系统。环境之间数据版本不一致是家常便饭,经常出现测试环境复现不了、生产一下子就复现的情况。

这种复杂环境下,bug定位的难度直线上升。我见过很多测试新人一发现bug就只往自己系统里猜,结果排查半天发现是上游系统返回了错误码。所以金融项目测试,第一步不是写用例,而是梳理系统交互图,搞清楚数据从哪里来、到哪里去。否则你连bug该记在哪个系统头上都分不清。对保险和银行项目来说,环境拓扑越复杂,“环境问题”和“代码问题”就越容易混在一起,测试人员必须具备基础的链路分析能力。

1.3 需求文档里的隐性规则是bug温床

保险和银行的需求文档通常非常长,但是真正容易出问题的不是主流程,而是那些藏在“注意事项”“特殊约定”里的边界规则。比如“犹豫期撤单不退还工本费”“保单未交费自动垫缴,垫缴利率按约定执行”“贷款提前还款违约金不超过剩余本金一定比例”。这些规则测试时很容易被忽略,不是因为不认真,而是因为用例设计时根本没想过。

我自己的习惯是拿到需求后先做一轮规则提取,把文档里所有带“如果”“当”“未”“不”“仅”的句子单独列出来,再逐条转成用例。比如“当保单处于退保申请状态时,不允许再次提交理赔申请”,看起来很简单,但很多系统并没有在状态机里限制这个操作,导致线上出现一笔退保中保单的理赔记录。需求里的每一个“例外”,几乎都对应着一个bug点。测试保险和银行项目,不能只读主流程文档,还要把附录、备注逐字看一遍。

2. 功能逻辑类Bug:状态、金额、日期三座大山

2.1 状态流转Bug:为什么“已失效”保单还能理赔

状态流转是保险项目里出现频率最高的bug类型,几乎每个版本都会遇到。典型问题是:系统只判断了当前状态是否等于某个值,但忽略了状态的历史路径。比如保单已经撤单,状态变成了“已撤单”,但是理赔模块的判断条件是“状态不等于已终止”,于是已撤单的保单还能继续走理赔流程。这个bug在测试环境不一定好触发,因为需要先把保单走到撤单状态,再走理赔流程,如果用例只覆盖了正常承保到理赔,根本不会发现。

解决这类问题,最好的办法是在测试设计阶段画状态图。把保单、账户、订单等核心对象的合法状态和状态迁移条件全部画出来,再针对每个迁移做正向和反向用例。比如撤销只有“已承保”和“犹豫期内”才能操作,那“等待核保”状态下的撤单按钮必须置灰,就算按钮没置灰,后端也要返回对应错误码。状态图不需要画得非常正式,只要能覆盖所有状态和跳转关系就足够了。

2.2 金额计算Bug:一分钱的差距怎么来的

金融项目里,金额精度问题永远排得上bug前三。我见过最典型的低层bug是用double类型存金额,导致保费计算结果出现0.00000001的尾差,最后试算保费和实际应收保费对不上。银行核心系统一般会使用decimal或者Long以“分”为单位存储和计算,但外围系统不一定遵守同一套约定,联调时就会出问题。一笔跨系统的交易,这边传的是元,那边收的是分,金额差一百倍,这种事故真的是会发生的。

除了存储类型,四舍五入规则也特别容易踩坑。保费、利息、手续费、违约金,究竟保留几位小数,是按商品还是按订单汇总后四舍五入,还是每一项先四舍五入再加总?这两种方式在极端值下会出现一分钱的差异。银行利息更麻烦,本金、利率、天数、计息方式四者交叉,一年按360天还是365天,月末日是否计息,都会导致结果不同。我建议所有金额用例都准备一组边界数据,比如0.01元、999999999.99元、0.000元,再准备一组尾差用例,比如0.005、0.015,用公式先手动算出期望值再跟系统比对,这样踩雷概率会低很多。

2.3 日期时间Bug:生效日、到期日、节假日规则

因为时间边界导致的bug,在保险和银行项目里也是见怪不怪。保险最典型的是保单生效日和保险期间的衔接问题。比如投保申请在2024年12月31日提交,约定次日零时生效,系统计算生效日时用了当前日期加一天,但没考虑跨月,结果生效日到底是2025年1月1日还是2024年12月32日,不覆盖跨年就会漏掉。很多bug管理员可能觉得这属于低概率事件,实际上银行保险业务天天都在跨日期运行,边界时间就是最容易出错的地方。

银行的时间问题更多集中在“节假日顺延”和“日切时点”上。定期存款到期日如果遇到法定节假日,应该顺延到下一个工作日,但顺延期间的利息怎么算?贷款还款日遇到节假日,是提前扣款还是顺延?这些规则每个项目都不一样,必须用真实节假日数据去测试。我常用的方法是把系统中的日期控件和后台服务器时间统一做边界测试,例如23:59:59、00:00:00、02-29闰年,每个边界点至少跑一遍。不要嫌麻烦,时间bug一旦线上爆发,客户会直接打电话投诉。

3. 并发、权限与安全类Bug:银行项目的高危雷区

3.1 并发重复提交:同一个账户被扣两次

银行项目里最严重的用户体验问题就是重复扣款。用户在手机银行提交转账时网络卡顿,连续点了两次“确认”,如果后端没有做幂等控制,就会发起两笔扣款。类似的情况还有保险投保时用户重复提交订单,同一份保险被投保两次,简直是灾难。这类bug在功能测试阶段很难发现,因为人工操作达不到毫秒级并发,必须靠自动化工具模拟。

我现在的标准做法是测试用例里必加一条“同一请求重复提交N次”的场景,用性能测试工具模拟并发,或者直接用脚本循环请求。后端判断是否重复的关键是幂等键,比如订单号、流水号、用户操作唯一标识。测并发时重点看两个点:一是是否生成了两条业务数据,二是第二次请求是否返回了“重复提交”的提示。如果系统没有幂等校验,哪怕功能测试全过,也必须当成P0问题提出来。

3.2 权限与越权:柜员能看到别人的客户信息

权限类bug在银行项目里属于高危漏洞,因为一旦出现越权,轻则信息泄露,重则违规操作。最常见的越权有两种:水平越权和垂直越权。水平越权是A柜员能看到B柜员名下的客户资料,垂直越权是普通柜员能执行主管才能做的交易授权。这两种bug用普通页面流程很难测出来,因为正常操作下页面不会展示那些入口,但接口层可能没有做数据归属校验。

测试权限时不能只验证不同角色的菜单可见性,还要验证接口层面的数据归属。比如A柜员登录后,手动修改请求里的客户编号,系统是否就能返回B客户的账户信息。这种bug在页面端可能被隐藏了入口,但接口层没做数据过滤,很容易被钻空子。我自己写用例时,会把权限用例拆成功能权限和数据权限两类,分别覆盖,功能权限管“能不能点这个按钮”,数据权限管“能看到哪些数据”。

3.3 数据脱敏与日志泄露

金融项目涉及大量客户隐私,脱敏是测试里的硬指标。经常出现的bug包括:页面正常脱敏但接口返回报文里是明文;日志文件里打印了完整的身份证号;测试环境的验证码短信直接下发到真实手机号。前面两种还好说,最后一种属于事件级别问题。做测试时,我自己专门准备了一批敏感数据,比如身份证号、手机号、卡号,每个都做成固定测试值,一旦在日志或接口里发现原文立刻定位是哪一个环节出了问题。

排查脱敏问题最有效的办法是抓全链路报文。从前端发起请求到后端返回响应,再到日志输出,每一层都检查一遍。重点看JSON字段、日志打印语句、数据库导出文件、批量邮件附件。除了常规的身份证和手机号,还要注意银行卡号、密码、CVC码、支付密钥这类数据。测试通过的标准不只是“页面打码了”,而是“全链路无明文”。现在很多公司对敏感数据都有自动化扫描工具,但工具只能发现一部分,人工抽查仍然不可少。

4. 接口、批量与数据库层Bug:肉眼看不到的坑

4.1 接口联调:字段映射和报文格式

保险和银行项目都是典型的多系统协作,前后端之外还有渠道系统、核心系统、第三方支付,接口联调阶段是bug高发期。最常见的有字段名对不上、类型不一致、报文长度不够。比如金额字段,核心系统用“amount”表示分,渠道系统用“amt”表示元,联调时不转换,结果金额差一百倍。这种bug逻辑上不复杂,但排查极费时间,因为两边都觉得自己没问题。

我的排查思路是先确认接口文档的标准定义,再抓实际报文对比。测试时每个字段都要准备正常值、边界值、空值,比如一个字段定义为最长10位,就要传11位验证系统的校验逻辑;一个日期字段规定为yyyyMMdd,就必须测试“20241231”和“2024-12-31”两种格式。接口回归时我会做一次全字段比对,把标准报文和实际报文逐字段核对,基本能覆盖大部分映射问题。保险和银行项目的接口文档通常都有版本管理,联调时一定要确认当前版本,不要拿旧文档对需求。

4.2 批量任务:定时跑批失败的经典场景

银行和保险公司都有大量批量任务,日终批处理、批量代发、批量扣费、批量结息。这类bug的特点是:白天测起来风平浪静,一过零点就出事。最常见的是批量任务重复执行,比如调度平台因为超时重发指令,同一个批量被触发两次,导致客户被重复扣费;或者批处理中间某一步失败,前序已经写库的数据没有回滚。批量任务一旦出问题,影响面通常很大,因为一次跑批往往涉及成千上万条数据。

测试批量任务不能只测“正常跑完一次”,至少还要覆盖断点续跑、失败重跑、重复调度三个场景。我一般会在测试环境保留一份真实脱敏数据,把批量任务的数据量做大一点,比如一万条,再手动模拟失败节点,观察系统是否能正确记录失败原因,以及重跑后不会产生重复数据。批量任务日志必须包含批次号和执行结果,否则出问题根本没法追溯。测试时还要注意批量任务的数据造数,不是随便造几条就算完,要造出不同状态、不同金额、不同时间的组合。

4.3 数据库唯一约束与事务回滚

数据库层的bug很多不是代码写错,而是设计时漏了约束。最典型的是业务流水表没有唯一索引,导致同一笔交易因为接口重试插入两条记录。这类问题在功能测试时往往不会出现,因为手动测试不会触发重试,但一旦线上调用方超时重试,数据就重复了。写用例时我会专门查一下核心表结构,看有没有唯一键,尤其是业务流水号、批次号、交易请求号这类字段。

事务回滚的问题则集中在多表更新场景。比如银行转账需要同时更新扣款账户和收款账户,如果代码只对扣款账户的update开启了事务,收款账户的update单独提交,在第二步失败时就会造成单边账。测试时要准备故障注入场景,比如让第二张表更新报错,验证整个事务是否回滚。还有一个很容易被忽略的:批量操作里循环调用单条更新,没有整体事务,中间一条失败,其他数据已经提交。这种场景在功能测试里不常测,但线上批量跑批一旦出问题,处理成本极高。

5. 报表、对账与前端展示Bug:用户直接骂娘的痛点

5.1 报表统计Bug:汇总口径错乱

报表是保险公司和银行内部使用频率最高的模块之一,但很多测试团队对报表的重视程度不够,觉得“只要数据能查出来就行”。实际上报表的统计口径非常容易出问题。比如“当日新增保费”,是按保单承保日期统计,还是按保单生效日期统计?不同部门可能口径不一样,报表做出来就有一个部门的数据对不上。这种问题在提测阶段往往发现不了,因为测试人员只验证了报表能否展示数据,没有验证统计口径本身是否正确。

另一个常见问题是对汇总数据的精度处理。明细表里每笔金额都保留两位小数,汇总时直接sum,看起来没问题,但如果是四舍五入后的明细加总,和按原始金额加总后再四舍五入,会有尾差。报表测试必须有“核对来源数据”这一步,用SQL从数据库查明细重新汇总,再跟报表展示结果比对。我一般会准备一张Excel,把预期数据算好,然后跟系统导出结果做逐项核对,而不是只看页面数字有没有显示出来。

5.2 对账不平Bug:渠道流水与核心账务

对账是银行和保险项目特有的一类功能,渠道系统和核心系统各自记了一笔流水,每天需要比对是否一致。最常见的bug是两边处理时序不一致。比如同一笔支付,渠道系统已经记账成功,但核心系统因为网络原因没有收到通知,导致当天对账不平。这种问题有的不是系统逻辑bug,而是对账任务本身没做“缓冲处理”。测试时需要人为构造“渠道已记、核心未记”的数据,验证对账任务是否能够正确识别差异并生成差错记录。

排查对账不平的思路是先明确以哪边数据为准,然后按流水号、金额、状态三个维度做差异分析。测试时要人为构造差异数据,比如渠道多一笔、核心少一笔、金额不一致、状态不对应,再跑对账任务,看差异报表是否能正确列出。对账逻辑里最容易漏的是手续费和退款,两边统计口径不同,对账结果就会一直有差异。做测试时不要只看主交易流水的对账结果,手续费、利息、退款、冲正这些专项对账同样要覆盖。

5.3 前端展示Bug:金额格式、滚动加载、重复点击

虽然前端bug在金融项目里不算最致命,但用户感知最强。金额显示问题最常见,比如数字千分位格式不对,0.00显示成0,金额单位混乱。日期控件问题也很多,比如只允许选择自然日,但业务上只允许选择工作日,很多前端日期选择器没限制,用户选了节假日提交后被后端报错。这类bug不需要多高深的技术就能发现,但需要测试人员有细心和耐心。

前端交互的重复点击问题前面说过,更多的是按钮在请求中未置灰,导致用户连点。还有列表分页和滚动加载结合的场景,滚动到底部触发下一页数据,如果接口慢,用户快速滚动可能触发多次请求,导致数据错位或重复。这些我都会放进常规回归用例里,虽然单个bug级别不高,但发出去就是客户投诉。保险和银行项目的移动端远比PC端敏感,网络弱、中断、弱网切Wi-Fi、前后台切换,这些都是前端测试不能漏的场景。

6. 我印象最深的三个Bug排查实录

6.1 撤单退费重复入账

有一次我所在的某保险项目上线后,财务反馈当天的撤单退费金额对不上,多出了一笔几十万的付款。排查过程很有意思。先从退费流水表查,发现某批次号出现两次;再查批量任务调度日志,发现上游调度平台因为响应超时自动重发了指令,同一个批次被执行了两遍。系统处理时没有按批次号做唯一性控制,就会把退费指令重复入账。

这个故障的影响不只是财务对账,还涉及批量任务幂等控制设计。后来我们在批次处理表增加了批次号唯一约束,并且在任务开始前先检查批次状态,已经处理过的不再执行。测试用例里也补了一条“重复调度同一批次”的场景,从那以后再也没有出现过同类问题。这个案例也让我明白,接口调用方的重试机制一定是测试中必须考虑的因素,不能假设线上不会发生。

6.2 日切时点重复扣款

某银行项目的客户投诉让我意识到并发测试的重要性。客户在晚上11点59分59秒发起了一笔转账,结果被扣了两次钱。排查后发现,他先后提交了两笔请求,第一笔请求被日切任务打断,系统返回超时,前端认为失败了,用户又提交了一次。第二次提交时,第一笔实际已经入账,但系统没有任何提示,导致重复扣款。

这个问题涉及三个环节:日切时点交易处理、渠道超时重试、幂等校验覆盖范围。技术修复方案不复杂,在转账请求入口增加一个以用户操作流水号为主的幂等校验,日切期间短暂拒绝非查询交易。真正难的是测试怎么模拟这个场景,后来我们专门搭了一套日切测试环境,把日切时间固定在某分钟,专门测边界时段的并发请求。从那以后,我养成了一个习惯:凡是金融系统涉及时间切换的测试,都要围绕日切前后两分钟重点测试。

6.3 批量代发部分成功未回滚

还有一个印象深刻的bug来自批量代发工资。某银行批量代发原本应该上千笔全部成功,实际却有一笔因为收款方账号错误而失败。更麻烦的是,该笔失败的记录已经写入流水表,但状态是“失败”,而其余成功记录也都已提交。业务要求这次代发要么全部成功,要么全部失败,这样便于差错处理。由于批量任务是一条条处理的,没有整体事务,出现了部分成功的情况。

后续解决方案是按批次引入事务边界,或者至少增加“失败清单”和“批次状态更新”机制,让批量任务结束后能自动标记为部分成功,并支持对失败清单进行二次重发。测试时我也养成一个习惯:批量测试不仅要看成功数据,还要专门制造失败数据,观察失败后的数据一致性和业务流程是否还能继续。很多批量bug只有在“成功+失败”混合场景下才会暴露,测试用例如果只准备全成功数据,等于白测。

7. 如何系统化减少这些Bug:流程、清单与复盘

7.1 测试设计阶段:画状态图与判定表

避免金融项目bug,最好的时机不是执行测试时,而是设计用例时。我现在的习惯是先画核心对象的状态图,再画关键业务的判定表。状态图画完,状态迁移的漏测点基本就暴露了;判定表则能把复杂的规则场景分解成可枚举的组合。该阶段投入的时间越多,执行阶段返工越少。

以保险为例,核心对象是保单,状态包括“待支付、已生效、已失效、退保中、已退保、理赔中、已理赔”。我会把每个状态的操作权限列出来,比如“待支付”状态不能做理赔,“退保中”不能做受益人变更。再比如银行账户,状态包括“正常、挂失、冻结、销户”,“冻结”状态下转账交易必须被拦截。这些设计工作在需求评审阶段就要开始,等到写用例时再做就已经晚了。用状态图的方式做用例设计,不仅适合保险和银行,也适合任何状态多的后台系统。

7.2 金融项目通用测试检查清单

我整理了一份自己的检查清单,每次金融项目版本测试前都会过一遍。放在这里供参考:

分类核心检查点优先级
状态流转核心对象所有状态迁移是否覆盖;非法状态操作是否被拦截P0
金额精度是否使用decimal;四舍五入规则统一;尾差用例覆盖P0
幂等控制重复提交/重复调度是否产生重复数据P0
时间边界跨年、跨月、闰年、日切、节假日顺延P0
批量任务断点续跑、失败重跑、重复调度、部分成功回滚P0
接口字段字段类型、精度、长度、枚举、空值校验P1
权限控制水平越权、垂直越权、数据级权限P0
数据脱敏页面、接口、日志、导出文件是否明文P1
对账一致性渠道流水与核心流水、手续费、差异报表P1
前端交互金额格式、日期限制、按钮防重点击、分页P2

这里的P0是我认为上线前必须全部通过的检查项,尤其是状态流转、幂等和权限,一旦出了问题基本都是事故。检查清单不能只停留在文档里,最好拆成测试用例的标签,用例执行时自动关联,每次回归时按标签筛选执行。

7.3 Bug复盘与知识沉淀

最后一个想聊的是复盘。金融项目的bug,尤其线上问题,一定要做根因分析,不能只改表面。我常用的复盘框架是:问题现象、触发条件、根因、影响范围、当前状态、后续改进。触发条件比根因更重要,因为只有知道什么场景下会触发,才能设计出对应的回归用例。

复盘结果要沉淀成知识库,而不是开完会就结束。我参与过的团队里,每一条线上bug都会整理成一条“Bug模式”,比如“批量任务无幂等”“状态判断忽略历史路径”“四舍五入规则不一致”。下一次测试,直接在用例设计阶段检索这些模式,把对应的检查点加进去。时间长了,整个团队的bug预防能力会明显提升。做测试越久越会发现,真正值钱的经验不是记住了多少个bug,而是总结出了多少条能复用的防坑规则。

最后说点我自己的体会。保险和银行项目里的bug,大多数不是“不会写代码”导致的,而是测试用力没用对地方。状态机、金额、时间、并发这四个词,做金融测试的每天都要在心里默念几遍。这篇bug汇总里的场景,很多都是我用一单单线上事故换来的经验,写出来是希望大家少踩同样的坑。如果哪天你在测试环境真的撞上了类似问题,别慌,按状态、金额、接口、数据四个维度先定位,大概率能找到方向。后面我还会整理一些自动化测试和接口联调的具体案例,到时候再接着聊。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/13 20:24:26

实测RustFS:S3兼容性承诺到底有几分真?

上半年做存储选型,我几乎把所有号称支持对象存储的方案都过了一遍。最让我警惕的,就是项目介绍里那几个轻飘飘的字:S3 兼容。很多项目把“S3 Compatible”当作一块万能招牌,实际上你拿标准客户端一测,连最基础的分片上…

作者头像 李华
网站建设 2026/10/13 20:23:23

数据搬运卡顿真凶:Host-to-Host拷贝次数深度解析与优化

先说结论:很多从标称带宽上算出来“应该没问题”的数据搬运场景,实际跑起来却卡得让人摸不着头脑。我最近在处理一个跨主机数据搬运的调优问题时,就遇到了这种情况。链路侧 PCIe 的有效带宽并不差,内存侧 DDR 带宽看起来更充裕&am…

作者头像 李华
网站建设 2026/10/13 20:21:14

RHINO基础教程:NURBS建模与曲面连续性全流程解析

简介:面向Rhino零基础读者的入门级教程文档,按章节系统讲解软件安装激活、工作流程与基本概念、界面与导航操作、二维图形绘制、基础曲面创建与编辑等核心内容,帮助初学者从零掌握NURBS建模思路。资源为单个doc文档,压缩包大小847…

作者头像 李华
网站建设 2026/10/13 20:21:01

AI辅助数学研究的方法论:从验证成本到人机协作的工程实践

1. 一场访谈引发的思考:AI 做数学到底靠不靠谱前阵子数学圈有个访谈在技术社区传得挺开,一位拿过顶级数学奖项的学者聊了聊自己用 AI 辅助数学研究的真实体验。我第一时间把相关内容翻了几遍,越看越觉得有意思——不是因为里面有什么惊天动地…

作者头像 李华
网站建设 2026/10/13 20:21:01

Arduino红外遥控库IRremote.h硬核调试指南

简介:本资源是Arduino平台红外遥控开发的核心依赖库——IRremote开源库的完整集成包,面向电子制作爱好者、物联网初学者及嵌入式入门开发者,解决红外信号接收与发送功能快速落地的工程化难题。压缩包为33KB的ZIP格式,共14个文件&a…

作者头像 李华
网站建设 2026/10/13 20:20:56

水下目标检测比赛实战指南:从数据清洗到模型部署

水下检测的比赛,我前前后后参加过几次,从第一次连榜单前二十都摸不着,到后来能稳定把名次刷进第一梯队,中间踩过的坑比想象中多得多。很多人一看“水下目标检测”这六个字,觉得不就是把YOLO换到水下数据集上跑一遍吗&a…

作者头像 李华