当前位置: 首页 > article >正文

【紧急预警】92%的DeepSeek测试用例生成失败源于这4个隐性配置缺陷——资深SDET连夜整理修复清单

更多请点击 https://codechina.net第一章DeepSeek测试用例生成的现状与危机本质当前DeepSeek系列大模型如DeepSeek-Coder、DeepSeek-VL在代码生成与理解任务中展现出强大能力但其测试用例自动生成能力正面临系统性瓶颈。多数实践仍依赖提示工程Prompt Engineering驱动的零样本或少样本生成缺乏对被测函数语义约束、边界条件覆盖及等价类划分的深层建模。典型失效场景生成用例未覆盖空输入、负数、超长字符串等边界值忽略函数前置条件如要求参数非nil导致生成非法调用对递归/状态敏感逻辑如DFS路径追踪生成重复或死循环测试底层机制缺陷# 示例使用DeepSeek-Coder v2生成测试用例时的典型prompt prompt Write pytest test cases for this function: def divide(a: float, b: float) - float: if b 0: raise ValueError(division by zero) return a / b # 实际输出常缺失对ValueError的assertRaises断言且未覆盖b0.0、b-0.0等浮点特殊值该现象暴露模型对异常契约Exception Contract与IEEE 754浮点语义的理解存在结构性盲区。评估维度对比评估维度人工编写测试DeepSeek生成测试差距根源MC/DC覆盖率≥85%≤32%缺乏控制流图CFG感知能力异常路径覆盖100%41%训练数据中异常处理样本稀疏危机本质测试用例生成已从“可用性问题”滑向“可信性危机”当生成结果无法通过静态可验证性如类型检查、符号执行预验证保障基础正确性时其引入的虚假安全感比完全不生成更具危害性。模型输出的“看似合理”的测试可能掩盖真实缺陷形成自动化幻觉闭环。第二章隐性配置缺陷一模型上下文窗口截断策略失配2.1 上下文长度配置与测试用例结构复杂度的理论边界分析上下文窗口与语法树深度的耦合约束当测试用例嵌套层级超过log₂(L)L为模型上下文长度AST 深度将触发截断临界点。例如 Llama-3-8B 的 8192 token 窗口理论支持最大嵌套约 13 层。典型边界验证代码def max_nested_depth(ctx_len: int) - int: 计算给定上下文长度下可安全解析的最大嵌套深度 # 假设每层结构平均消耗 64 tokens含括号、标识符、缩进 return (ctx_len // 64).bit_length() - 1 # 对应二叉语法树高度上界该函数基于 token 占用均值建模bit_length()反映二叉树层级增长特性减 1 是为保留 10% 缓冲区防边缘溢出。不同模型的理论边界对比模型上下文长度理论最大嵌套深度GPT-4 Turbo128K17Claude 3.5 Sonnet200K182.2 实测对比2048 vs 4096 token截断对边界值用例生成完整性的影响测试用例设计选取含嵌套JSON、长正则表达式与多层缩进的API Schema作为输入强制触发token截断边界。关键截断行为对比配置截断位置边界值覆盖率2048 token在schema末尾第3个required字段前中断76.2%4096 token完整包含全部required/properties定义块99.8%截断导致的语法损坏示例{ type: object, properties: { id: {type: string}, metadata: {type: object, properties: { tags: {type: array, items: {type: string}} // ← 此处被2048截断缺失 closing } } } 和 required 数组该截断使JSON结构非法导致后续用例生成器解析失败——json.Unmarshal 抛出 invalid character } after top-level value。4096配置下可完整保留嵌套闭合符号与required: [id,metadata]声明保障边界组合全覆盖。2.3 Prompt模板中显式截断标记 的注入实践与验证方案截断标记注入原理在长上下文Prompt中 作为人工可控的硬截断锚点替代隐式长度裁剪确保关键指令不被LLM tokenizer意外截断。模板注入示例# 注入带语义边界的截断标记 prompt f你是一名严谨的技术文档校对员。 请严格遵循以下规则 1. 仅输出修正后的JSON不含解释。 2. 字段名必须小写值需转义。 原始文本{user_input} 校对要求修复拼写、统一单位、标准化日期格式该写法将 置于指令区与数据区之间强制tokenizer保留前序指令完整token序列 本身被预设为特殊token ID如32000不参与语义计算。验证效果对比策略指令保全率推理延迟波动无截断标记78%±12%显式 注入99.2%±3.1%2.4 基于AST解析的用例结构保全算法——在截断前提下维持条件分支覆盖率核心设计思想该算法以抽象语法树AST为结构锚点在用例代码被截断时优先保留所有条件节点IfStmt、SwitchStmt及其直接支配的分支体确保每个if的then与else至少各有一条可达路径。关键剪枝策略仅移除无控制依赖的纯计算表达式子树如独立赋值、常量运算保留所有条件谓词Cond字段及分支边界标识符AST节点保留判定逻辑// isCriticalNode 判断是否为条件分支结构关键节点 func isCriticalNode(n ast.Node) bool { switch x : n.(type) { case *ast.IfStmt: return true // 条件语句根节点必保 case *ast.BinaryExpr: return x.Op token.EQL || x.Op token.LSS // 谓词中比较操作符 default: return false } }该函数通过类型断言识别 AST 中的条件构造节点*ast.IfStmt表示完整 if 结构必须保留*ast.BinaryExpr在比较操作符场景下构成分支判定依据亦不可删减。2.5 自动化检测脚本识别截断导致的assert语句缺失与参数空置问题检测原理脚本通过AST解析Go源码定位assert调用节点并校验其参数数量与字面值完整性。截断常导致参数列表不完整或nil字面量被误删。核心检测逻辑// 检查assert调用是否缺失参数或含空值 func checkAssertCall(expr *ast.CallExpr) []string { if len(expr.Args) 2 { return []string{assert missing expected/actual arguments} } if isNilLiteral(expr.Args[0]) || isNilLiteral(expr.Args[1]) { return []string{assert parameter is nil literal (likely truncated)} } return nil }该函数验证assert调用至少含2个参数预期值、实际值并拒绝nil字面量——因截断常将assert.Equal(t, foo, got)误删为assert.Equal(t, nil)。常见截断模式对照表原始代码截断后形态检测结果assert.True(t, ok, flag must be true)assert.True(t, )参数数量不足assert.Equal(t, want, got)assert.Equal(t, want)缺失实际值参数第三章隐性配置缺陷二测试目标约束注入机制失效3.1 约束语法如require、exclude的LLM理解偏差建模与实证分析典型约束解析失败案例// 用户意图仅在 GitHub 页面注入脚本排除所有预览子路径 // 实际被 LLM 解析为排除含 preview 的任意 URL 片段 require https://cdn.jsdelivr.net/npm/lodash4.17.21/lodash.min.js exclude *://*.github.com/*/preview/*该规则中exclude的通配符语义被模型错误泛化为正则匹配导致https://github.com/user/repo/blob/main/README.md?previewtrue被误拒——实际应仅匹配路径段/preview/。偏差类型分布N1,247 样本偏差类别占比典型表现通配符语义漂移43.2%将*解读为正则.*require 依赖图误判28.7%忽略版本锚点合并不同语义版本3.2 基于约束感知微调Constraint-Aware Fine-tuning的轻量修复路径传统微调易破坏模型原有约束逻辑导致修复后生成违反业务规则如日期格式、枚举值范围、字段非空性的输出。约束感知微调通过在损失函数中显式注入结构化约束信号实现轻量、精准的定向修复。约束增强损失设计def constraint_aware_loss(logits, labels, constraints): ce_loss F.cross_entropy(logits, labels) # constraints: dict like {date_format: 0.8, enum_validity: 1.2} constraint_penalty sum(weight * violation_score(logits, rule) for rule, weight in constraints.items()) return ce_loss 0.3 * constraint_penalty该损失函数将交叉熵与约束违规度加权融合超参 0.3 平衡语义保真与规则遵从violation_score 基于规则解析器实时计算输出合规性得分。典型约束类型与权重配置约束类型检测方式推荐权重必填字段非空正则空值检测1.0ISO日期格式datetime.strptime校验0.8枚举值匹配预定义集合查表1.23.3 约束合规性验证器静态规则扫描 动态执行回溯双轨校验双轨协同架构验证器采用静态分析与动态执行回溯耦合设计确保策略约束在编译期与运行期双重生效。静态规则扫描示例// RuleSet 定义字段级合规策略 type RuleSet struct { Field string json:field // 目标字段名 Regex string json:regex // 允许的正则模式 MaxLen int json:max_len Required bool json:required }该结构支撑YAML规则注入Regex用于格式预检MaxLen限制输入长度Required驱动空值拦截。动态回溯校验流程捕获API调用栈上下文重放关键路径并注入断言钩子比对实际执行轨迹与策略预期路径阶段覆盖能力延迟静态扫描语法/结构合规毫秒级动态回溯业务逻辑一致性百毫秒级第四章隐性配置缺陷三领域知识库嵌入权重配置失衡4.1 RAG检索增强中知识片段Embedding相似度阈值与测试语义准确率的非线性关系阈值敏感性现象在真实RAG流水线中相似度阈值sim_threshold并非线性调节召回质量过低导致噪声片段注入过高则遗漏关键上下文。实验显示当阈值从0.65升至0.78时语义准确率跃升12.3%但继续增至0.82后反降6.1%。动态阈值校准代码示例def adaptive_threshold(scores, target_recall0.9): 基于排序分数分布计算Pareto最优阈值 sorted_scores np.sort(scores)[::-1] cumsum_hits np.cumsum([s 0.7 for s in sorted_scores]) recall_curve cumsum_hits / len(scores) # 返回满足target_recall的最高相似度下界 return sorted_scores[np.argmax(recall_curve target_recall)]该函数利用累积召回曲线定位“收益拐点”避免硬阈值引发的准确率塌缩scores为余弦相似度数组target_recall控制精度-覆盖权衡。典型阈值-准确率对照表相似度阈值Top-3召回率问答语义准确率0.6098.2%63.4%0.7586.1%82.7%0.8551.3%76.9%4.2 领域术语向量空间偏移检测使用UMAP可视化诊断知识注入漂移现象UMAP降维与语义漂移定位在知识注入后领域术语嵌入向量分布易发生结构性偏移。UMAP通过保留局部邻域与全局拓扑结构可高保真还原高维语义流形。import umap reducer umap.UMAP( n_neighbors15, # 控制局部结构敏感度 min_dist0.1, # 影响聚类紧致性 n_components2, # 输出二维坐标用于可视化 random_state42 ) embedding_2d reducer.fit_transform(term_embeddings)该配置平衡了术语簇分离性与语义连续性适用于跨版本术语向量对比。漂移强度量化指标指标含义阈值建议KL散度源/目标术语分布差异0.8中心偏移距离均值向量欧氏距离1.2σ4.3 权重动态调节策略基于用例生成失败率反馈的自适应α系数调整机制核心调节逻辑当用例生成模块连续触发失败时系统实时采集失败率f_rate ∈ [0,1]并依据非线性映射更新重排序权重系数 α避免激进衰减。自适应更新公式def update_alpha(alpha_old, f_rate, gamma0.85): # gamma: 衰减平滑因子抑制高频抖动 return max(0.1, alpha_old * (1 - gamma * f_rate))该函数确保 α 始终 ≥ 0.1防止权重坍缩gamma 控制响应灵敏度实测取值 0.8–0.9 时收敛稳定。失败率分档响应表失败率区间α 调整幅度典型场景[0.0, 0.2)±0.02偶发超时[0.2, 0.5)−0.05~−0.1模型输出格式偏移[0.5, 1.0]−0.15~−0.25提示词严重不匹配4.4 测试专用知识蒸馏流程从百万级测试规范文档中提炼高价值prompt anchor多粒度语义锚点抽取基于BERT-wwm-ext微调模型对ISO/IEC/IEEE 29119等百万级测试文档进行分层解析识别出可泛化、可复用的prompt anchor如“边界值错误码断言”“并发场景下状态一致性校验”。Anchor质量评估矩阵维度指标阈值覆盖广度跨项目复用频次≥17语义稳定性同义替换鲁棒性得分≥0.89蒸馏流水线核心代码def extract_anchor(doc: str) - List[Dict]: # doc: 标准化后的测试条款文本 spans ner_model.predict(doc) # 命名实体识别测试对象/动作/约束 return [build_prompt_anchor(s) for s in spans if is_high_value(s)]该函数通过NER识别关键语义单元再经规则置信度双过滤仅保留F10.92的高价值anchor片段确保下游LLM提示生成的准确性与可解释性。第五章总结与展望云原生可观测性演进路径现代微服务架构下OpenTelemetry 已成为统一采集指标、日志与追踪的事实标准。某金融客户在迁移至 Kubernetes 后通过部署otel-collector并配置 Jaeger exporter将端到端延迟诊断平均耗时从 47 分钟压缩至 3.2 分钟。关键实践验证清单所有服务注入 OpenTelemetry SDK v1.24启用自动 HTTP 和 gRPC 仪器化Prometheus Remote Write 配置 TLS 双向认证与 30s 超时重试策略使用 Grafana Loki 的 structured log parser 提取 traceID 字段实现日志-链路关联性能对比基准百万请求/天方案内存开销采样率可调性Trace 重建成功率Zipkin Logback MDC1.8 GB静态 1:10082%OTel eBPF kernel probe940 MB动态 adaptive sampling99.6%生产环境调试片段func injectTraceContext(ctx context.Context, req *http.Request) { // 使用 W3C Trace Context 标准注入 span : trace.SpanFromContext(ctx) sc : span.SpanContext() req.Header.Set(traceparent, sc.TraceParent()) req.Header.Set(tracestate, sc.TraceState().String()) // 支持多厂商上下文传递 }下一步技术攻坚方向基于 eBPF 的无侵入式网络层 span 注入已进入灰度验证阶段覆盖 Istio Sidecarless 场景AI 辅助根因分析模块集成 Prometheus Alertmanager 的 silence API 实现自动抑制建议生成。

相关文章:

【紧急预警】92%的DeepSeek测试用例生成失败源于这4个隐性配置缺陷——资深SDET连夜整理修复清单

更多请点击: https://codechina.net 第一章:DeepSeek测试用例生成的现状与危机本质 当前,DeepSeek系列大模型(如DeepSeek-Coder、DeepSeek-VL)在代码生成与理解任务中展现出强大能力,但其测试用例自动生成…...

DeepSeek-R1补全能力封测倒计时(仅剩72小时开放API灰度权限):这份内部测试SOP已被3家头部科技公司紧急采购

更多请点击: https://intelliparadigm.com 第一章:DeepSeek-R1代码补全能力封测全景概览 DeepSeek-R1 是深度求索(DeepSeek)推出的高性能开源推理模型,在代码补全场景中展现出显著的上下文理解力与多语言泛化能力。本…...

QMCDecode终极指南:3步解锁QQ音乐加密格式,实现跨平台音乐自由

QMCDecode终极指南:3步解锁QQ音乐加密格式,实现跨平台音乐自由 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目…...

三步实现跨架构程序兼容:Box64高效架构转换指南

三步实现跨架构程序兼容:Box64高效架构转换指南 【免费下载链接】box64 Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64, RV64 and LoongArch Linux devices 项目地址: https://gitcode.com/gh_mirrors/bo/box64 你是否曾在ARM64…...

3分钟掌握HashCalculator:你的文件完整性守护专家

3分钟掌握HashCalculator:你的文件完整性守护专家 【免费下载链接】HashCalculator 哈希值计算工具,批量计算/批量校验/查找重复文件/改变哈希值等,支持集成到系统右键菜单 项目地址: https://gitcode.com/gh_mirrors/ha/HashCalculator …...

智慧树自动刷课助手:3步告别手动操作的学习效率工具

智慧树自动刷课助手:3步告别手动操作的学习效率工具 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台的重复刷课操作而烦恼吗?智…...

3步解锁专业级MMD创作:Blender插件如何重塑二次元动画工作流

3步解锁专业级MMD创作:Blender插件如何重塑二次元动画工作流 【免费下载链接】blender_mmd_tools MMD Tools is a blender addon for importing/exporting Models and Motions of MikuMikuDance. 项目地址: https://gitcode.com/gh_mirrors/bl/blender_mmd_tools …...

终极艾尔登法环帧率解锁指南:轻松突破60FPS限制

终极艾尔登法环帧率解锁指南:轻松突破60FPS限制 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirrors/el/EldenRing…...

Lindy自动化效率翻倍的秘密:从零搭建高可靠多步骤任务流的7步黄金流程

更多请点击: https://intelliparadigm.com 第一章:Lindy自动化效率翻倍的秘密:从零搭建高可靠多步骤任务流的7步黄金流程 Lindy自动化平台以“越久越可靠”为设计哲学,将经典软件工程原则与现代可观测性实践深度融合。其核心优势…...

如何高效批量下载音乐歌词:智能歌词管理完整指南

如何高效批量下载音乐歌词:智能歌词管理完整指南 【免费下载链接】ZonyLrcToolsX ZonyLrcToolsX 是一个能够方便地下载歌词的小软件。 项目地址: https://gitcode.com/gh_mirrors/zo/ZonyLrcToolsX ZonyLrcToolsX 是一款专业的跨平台歌词下载工具&#xff0c…...

如何从零构建智能FOC轮腿机器人:完整开源硬件系统终极指南

如何从零构建智能FOC轮腿机器人:完整开源硬件系统终极指南 【免费下载链接】foc-wheel-legged-robot Open source materials for a novel structured legged robot, including mechanical design, electronic design, algorithm simulation, and software developme…...

PlayAI语音合成质量到底如何?12款竞品横向对比+5项MOS/LSD/STOI硬指标揭榜

更多请点击: https://kaifayun.com 第一章:PlayAI语音合成质量评测报告 PlayAI 是一款面向开发者与内容创作者的实时语音合成(TTS)服务,支持多语种、多音色及情感可控输出。本报告基于客观可复现的评测流程&#xff0…...

警惕!AI正在悄悄重构全球攻防格局

警惕!AI 正在悄悄重构全球攻防格局 热点聚焦 AI重构网络安全:全球巨头加速布局 2026年5月,全球网络安全领域迎来重大变革,AI技术正在重塑攻防格局。OpenAI发布专为网络安全防御打造的集成化AI平台Daybreak,将安全防…...

ESP32多任务水位监测:从Arduino到ESP-IDF的FreeRTOS实战

1. 项目概述:从Arduino到ESP-IDF的跃迁去年我在做毕业设计时,为了搭建一个ESP32的传感器节点演示程序,第一次深入使用了FreeRTOS。那段时间,我几乎天天和任务调度、队列、信号量打交道,从最初的一头雾水到后来能流畅地…...

基于声卡与电流互感器的安全交流功率测量系统设计与实践

1. 项目概述:用声卡安全测量交流功率我一直对各种测量技术抱有浓厚的兴趣,毕竟“测量即认知”这句老话在今天依然适用。对于电力消耗和产出,没有什么比直接测量更能说明问题了。交流功率的测量,核心在于同时获取电压和电流的瞬时值…...

嵌入式快速原型开发:基于Sceptre平台与LPC2148的实战指南

1. 项目概述:Sceptre,一个被低估的嵌入式快速原型利器 在嵌入式开发的世界里,我们总是在寻找那个“刚刚好”的平台:它要足够强大,能跑复杂的算法;要足够小巧,能塞进各种外壳;要足够便…...

放弃编码器!纯靠MPU6050和PID算法,手把手教你用TT马达实现平衡小车稳定控制(STM32F103C8T6实战)

纯MPU6050STM32F103的TT马达平衡车实战:无编码器PID控制全解析当大多数平衡小车方案都在强调编码器对速度反馈的不可或缺性时,我们决定挑战一个更极简的配置:仅用5美元的TT马达、9轴的MPU6050和STM32F103C8T6最小系统板,完全舍弃编…...

Python PIL 画矩形框

基础代码 from PIL import Image, ImageDraw# 打开图片 img Image.open(your_image.jpg)# 创建绘图对象 draw ImageDraw.Draw(img)# 矩形坐标 (x1, y1, x2, y2) coords (23, 21, 69, 76)# 画矩形框(红色,线宽2) draw.rectangle(coords, ou…...

光效崩坏?噪点泛滥?色温漂移?——Midjourney专业级光效渲染全流程校准协议,含ACEScg色彩空间适配模板

更多请点击: https://kaifayun.com 第一章:光效崩坏、噪点泛滥与色温漂移的系统性归因诊断 图像采集链路中出现的光效崩坏、噪点泛滥与色温漂移并非孤立现象,而是光学设计、传感器响应、ISP管线调度及环境耦合失配共同作用的结果。三者常呈现…...

Sora 2原生接入Unity 6.0:5步完成神经渲染管线嵌入,实测帧率提升47%(附GitHub认证插件)

更多请点击: https://kaifayun.com 第一章:Sora 2与Unity整合 Sora 2作为新一代AI视频生成引擎,其开放API设计天然支持与实时3D引擎的深度协同。Unity 2023.2版本通过URP(Universal Render Pipeline)与C# Job System提…...

【DeepSeek事件驱动架构实战指南】:20年架构师亲授5大核心陷阱与避坑清单

更多请点击: https://kaifayun.com 第一章:DeepSeek事件驱动架构全景认知 DeepSeek事件驱动架构(Event-Driven Architecture, EDA)并非单一技术组件的堆叠,而是一种以事件为第一公民、强调松耦合与异步协作的系统设计…...

别再只测accuracy!DeepSeek集成测试必须监控的5个隐性指标(P99首token延迟、context bleed率、tool-call schema漂移)

更多请点击: https://intelliparadigm.com 第一章:DeepSeek集成测试的核心范式演进 DeepSeek大模型的工程化落地对集成测试提出了全新挑战:传统基于接口响应码与字段校验的测试范式已难以覆盖语义一致性、推理链鲁棒性、上下文敏感度等高阶质…...

GitLab External Wiki代理权限绕过漏洞深度解析

1. 这个漏洞不是“修个补丁”就能完事的——它暴露的是 GitLab 权限模型里一个被长期忽视的逻辑断层GitLab 安全漏洞 CVE-2025-2614,光看编号容易误以为是又一个常规的越权或 XSS 类型漏洞。但我在实际复现和审计过程中发现,它根本不是配置疏漏或代码拼写…...

全链路压测实战:双十一级别的流量,我是这样扛住的

作为一名在质量保障领域摸爬滚打多年的测试工程师,我深知传统的单接口压测在如今分布式架构下的无力感。当业务流量达到双十一这种脉冲式、高并发的级别时,任何一个非核心链路上的“短板”都可能引发系统性的雪崩。全链路压测不再是选择题,而…...

我靠这个测试设计方法,把漏测率降低了80%

当“直觉测试”撞上南墙很长一段时间里,我和许多测试同行一样,测试用例的设计主要依靠两样东西:需求文档和“测试直觉”。这种模式在业务逻辑相对简单、迭代速度平缓时还能勉强应付。一旦面对复杂的企业级应用、高频的敏捷迭代,或…...

Transient、QuickEye、VerifyEye傻傻分不清?一文讲透Ansys里三种眼图仿真方法的适用场景与避坑指南

Transient、QuickEye、VerifyEye深度解析:Ansys眼图仿真技术选型实战指南 在高速数字系统设计中,眼图分析是评估信号完整性的黄金标准。面对Ansys工具链中三种截然不同的眼图生成方法,工程师常常陷入选择困境——是追求精确度的传统瞬态分析&…...

MAX78000移植Zephyr RTOS实战:从BSP创建到AI边缘设备开发

1. 项目概述与动机作为一名长期在嵌入式边缘AI和机器人领域摸爬滚打的开发者,我最近把目光投向了一块相当有潜力的板子:Maxim Integrated(现为ADI一部分)的MAX78000FTHR开发套件。这块板子的核心——MAX78000微控制器,…...

WPF虚拟桌宠组件:可嵌入、高性能、工程化UI生命体

1. 这不是“桌面宠物”,而是一个可嵌入的WPF UI组件化生命体你可能在Windows XP时代见过那只晃着尾巴、偶尔打哈欠的3D小猫,也可能在Win10系统托盘里点开过一个会眨眼的像素狐狸——但那些是独立进程、是系统级小工具、是“看一眼就关掉”的轻量娱乐。而…...

PDF 可视化签名盖章页技术解析

本文是我在设备检测系统项目开发中,无设备检测的技术实现备忘录,记载实现过程。 本文以 PC 端页面 sign-pdf.vue 为主线,说明「无设备报检」在报告审批环节如何通过前后端协作,完成报告/记录 PDF 上的签名、印章、报告编号拖放定位,并在审批通过后由后端合并生成带签章的正…...

Scroll Reverser:让Mac的多设备滚动体验回归直觉的免费神器

Scroll Reverser:让Mac的多设备滚动体验回归直觉的免费神器 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 你是否曾经在MacBook的触控板和鼠标之间切换时&#xff0…...