软件测试左移策略:加速职业价值的秘密

存储&AI行业每日要闻(2026-10-25 影响:这是市场对"烧钱就能赢"叙事的一次集体重估——Meta 主动设 C 类股稀释投票权也要融资,SpaceX 单季资本开支逼近营收 1.35 倍,叠加前一日博通 600 亿/SpaceX 400 亿芯片抵押融资,AI 基建已进入"股权+债务双管抽血"阶段;若指引保守,则昨日费半暴跌的余波将继续发酵。影响:DSX POD 的本质是把 AI 基建从"定制工程"变成"集装箱产品"——这与前一日"芯片抵押融资 5000 亿框架"形成闭环:英伟达不仅卖 GPU,还帮客户解决融资、集成、电力等全链条问题; 阅读详情

在快速迭代的软件开发时代,测试人员常面临一个核心挑战:如何从“找 bug 的后期角色”跃升为“质量守护的战略伙伴”?测试左移(Shift-Left Testing)正是解锁这一职业转型的金钥匙。它不仅是技术实践,更是测试从业者提升影响力、拓宽职业路径的核心策略。本文将深入解析测试左移的本质、价值与实施方法,助您在质量保障领域实现质的飞跃。

一、测试左移的本质:从被动检测到主动预防

测试左移是一种将测试活动提前至软件开发生命周期(SDLC)早期阶段的策略,涵盖需求分析、设计评审和编码等环节。传统瀑布模式中,测试常被置于开发完成后,缺陷修复成本高昂——在编码阶段发现的问题只需数分钟修复,而若延至上线后,成本可能激增至数百倍。测试左移打破这一线性流程,强调“缺陷预防优于事后补救”。其核心理念是:质量是设计出来的,而非测出来的。

  • 历史演变:随着敏捷和 DevOps 的兴起,测试左移从概念走向实践。它要求测试人员从项目启动就介入,通过早期参与需求澄清和设计评审,识别潜在风险,而非等待成品测试。

  • 核心原则:左移不是简单的时间前移,而是思维转变——测试人员从“质量验证者”升级为“质量共建者”,与开发、产品团队无缝协作,确保每个阶段产出“安全可靠”。

二、测试左移的核心价值:成本、效率与质量三重增益

实施测试左移能为团队带来显著收益,而这些收益直接转化为测试人员的职业资本。数据显示,85% 的缺陷源于编码阶段,但多数在后期测试才暴露。左移策略通过早期干预,实现以下突破:

1. 大幅降低缺陷修复成本

  • 在需求阶段发现的问题,仅需调整文档即可解决,成本微乎其微;若缺陷流入生产环境,修复成本可能指数级增长,涉及版本回滚、用户补偿等。例如,金融系统中一个安全漏洞在设计阶段修复仅需少量资源,而上线后可能导致巨额损失。

  • 职业价值:测试人员通过预防重大事故,彰显风险管理能力,提升在企业中的话语权。

2. 缩短交付周期,提升响应速度

  • 传统测试中,后期缺陷堆积导致反复返工,拖慢迭代。左移策略通过持续测试(如单元测试、静态代码分析),减少后期测试负载。敏捷团队采用左移后,交付周期可缩短 30% 以上。

  • 职业价值:测试人员成为加速交付的关键推手,从“瓶颈”变为“催化剂”,增强在跨职能团队中的影响力。

3. 增强产品质量与稳定性

  • 在设计阶段引入测试思维,可规避架构级缺陷。例如,测试人员参与微服务接口设计时,提前提出兼容性要求,避免集成问题。左移还通过自动化测试(如持续集成流水线),确保代码变更即时验证。

  • 职业价值:通过提升产品可靠性,测试人员从支持角色转型为核心质量顾问,为职业晋升铺路。

4. 促进团队协作与质量文化

  • 左移打破“开发写代码,测试找漏洞”的孤岛模式。测试人员提供早期测试用例,帮助开发理解需求;开发人员则承担单元测试责任。这种协作培养全员质量意识。

  • 职业价值:测试人员成为团队粘合剂,发展沟通与领导技能,为管理岗奠定基础。

三、实施测试左移的关键步骤:从理论到实践

成功左移需系统化方法,测试人员需主导以下阶段活动,确保全程质量管控。

1. 需求分析阶段:奠定质量基石

  • 活动:测试人员参与需求评审,将模糊需求转化为可测指标。例如,将“页面加载快”明确为“3G 网络下首屏加载 ≤3 秒”。

  • 工具应用:使用 Jira 等平台实时协作,记录需求澄清过程。

  • 职业技巧:培养业务分析能力,理解用户场景,从源头预防需求偏差。

2. 设计评审阶段:构建稳健架构

  • 活动:测试人员评估设计合理性,识别风险点。如在金融系统设计中,提前验证数据加密逻辑。

  • 工具应用:结合 UML 图或架构文档进行评审。

  • 职业技巧:学习基础设计知识,提升技术视野,从纯功能测试转向系统级思考。

3. 开发与编码阶段:嵌入持续验证

  • 活动:

    • 测试人员编写测试用例,驱动开发(如 TDD);开发人员执行单元测试和代码审查。

    • 集成静态分析工具(如 SonarQube),实时检测代码缺陷。

  • 工具应用:利用 DevCloud 等平台实现代码提交触发自动化测试流水线。

  • 职业技巧:掌握自动化脚本(如 Python 单元测试),提升技术深度,避免技能过时。

4. 持续反馈与优化:闭环质量改进

  • 活动:建立缺陷跟踪机制,将早期问题同步团队。例如,在需求变更时评估影响范围。

  • 工具应用:集成禅道 ZTF 等工具管理测试用例和 Bug。

  • 职业技巧:发展数据分析能力,从缺陷模式中提炼改进建议,体现战略价值。

四、加速职业价值的秘密:测试人员如何借左移腾飞

测试左移不仅是技术升级,更是职业转型的杠杆。测试从业者可通过以下策略,将左移实践转化为个人竞争力。

1. 技能升级:从执行者到质量架构师

  • 核心技能:精通需求分析、自动化测试(如 Selenium/Appium)、性能与安全测试。例如,学习 API 测试工具,支持早期集成验证。

  • 增值路径:通过认证(如 ISTQB 高级)或专项培训,成为全栈测试专家,薪资潜力可提升 40% 以上。

2. 角色进化:从测试员到质量顾问

  • 协作模式:主动参与冲刺规划会,提供测试视角建议。在敏捷团队中,测试人员可担任 Scrum Master,主导质量目标。

  • 影响力构建:通过预防缺陷展示价值,例如在项目中报告“左移减少 50% 后期 Bug”,赢得决策层信任。

3. 应对挑战:破解实施瓶颈

  • 资源限制:采用增量实施,从核心模块(如登录/支付)试点,再推广全流程。

  • 技能鸿沟:与开发结对编程,互学技能;利用在线社区(如 CSDN)持续学习。

  • 文化阻力:推动质量 KPI 纳入团队考核,如“缺陷发现阶段分布”指标。

4. 未来趋势:左移与右移的协同

  • 测试右移(生产环境监控)补充左移,形成闭环。测试人员需掌握日志分析(如 ELK 栈)和用户反馈管理。

  • 在 AI 与 DevOps 浪潮下,左移测试人员将成为“质量工程师”,主导全生命周期质量保障。

五、结语:拥抱左移,定义职业新高度

测试左移是一场从“事后救火”到“全程护航”的革命。对测试从业者而言,它不仅是技术实践,更是职业价值的加速器——通过早期介入,您从被动执行者蜕变为质量战略家。在迭代加速的软件生态中,掌握左移技能的测试人员将不可替代。记住,最好的缺陷是从未产生的缺陷,而您正是这愿景的缔造者。即刻行动,将左移融入日常,您的职业之路必将更宽广、更闪耀。

有限元分析必看:如何用ANSYS检查关键区域的网格质量(附操作截图) 本文聚焦有限元分析中决定仿真精度的关键环节,详细讲解了如何利用ANSYS Workbench对关键区域进行网格质量检查与优化。文章提供了从思维转变、实战操作到指标解读的完整流程,强调通过命名选择、Worksheet过滤器等工具实现定向检查,并给出了针对结构分析的关键区域网格质量阈值建议,帮助工程师提升仿真结果的可靠性与效率。 阅读详情

相关推荐

Python+AI能源管理实战:从电力负荷预测到智能调度的全流程开发

本系统展示了Python在能源管理领域的强大能力,通过AI技术实现了从预测到优化的智能决策闭环。随着碳中和目标的推进,智能能源系统将成为新型电力系统的核心大脑。📌 专业建议:系统部署需考虑网络安全防护,关键控制指令应设置多重验证机制!关注我的CSDN账号获取能源系统安全最佳实践~下期预告:我们将探索Python在智慧医疗中的应用,开发基于多模态数据的智能诊断辅助系统。想提前获取代码?评论区留言"智慧医疗"获取GitHub源码链接!

资深全栈架构师,乐于在 CSDN 分享技术见解,与大家携手共进,共攀技术巅峰! 620

安全测试左移:在SDLC早期扼杀安全漏洞

文章摘要: 安全测试左移(ShiftLeft)将安全活动前置到软件开发生命周期的早期阶段,从需求分析到编码设计,以降低修复成本并提升效率。传统后期测试存在"漏斗效应",漏洞修复成本随阶段推进呈指数增长。左移实践要求测试人员转型为安全质量推动者,通过威胁建模、安全需求用例化、静态代码扫描(SAST)及CI/CD流水线集成(如SCA、DAST)实现全流程覆盖。关键挑战包括工具误报、团队协作与技能提升,需通过分层检查、规则优化和知识共享解决。左移不仅是技术革新,更是一种质量内建的文化变革,使测

2501_94449311的博客 92

一个响应ping包延迟偏大的问题

前段时间客户反馈一个使用pc上的命令行ping无线设备(WiFi4)时,设备平均响应时间(测试时长2小时,1秒Ping一次)相比其它机型偏慢的问题,并上传上具体的时间的Log.从log中看到,大多数包的响应还是比较快的,只是个别响应时间较长,且响应时间长的包时间几乎都是一样的100多ms.如下是部分响应时间截图. 整个2小时的测试时间里,总是时不时的出这么上102,104ms的响应时间,这直接导致了平均响应时间被拉大.于是本地测试,也发现了类似的延迟.本地测试时,现象略有...

流风回雪的博客 1万+

自动化测试代码评审:提升质量的秘密武器

摘要: 自动化测试代码评审是提升测试质量的“秘密武器”,能预防缺陷、优化性能并促进团队协作。其核心价值包括早期拦截漏洞(捕获60-90%缺陷)、降低维护成本(Google数据显示bug率减少40%)及强化合规性。实施时需分三阶段:准备(制定规范、选择工具)、执行(聚焦逻辑错误与数据问题)、优化(跟踪指标、培养评审文化)。推荐工具如SonarQube、GitHub PR等,结合AI可提升效率。某电商案例显示,评审后缺陷逃逸率从20%降至5%。未来,AI驱动的预测性评审将成为测试从业者的核心技能,推动质量与职业

2501_94438416的博客 660

共享单车需求预测问题:建模篇

机器学习训练营——机器学习爱好者的自由交流空间(qq群号:696721295) 在上一篇里,我们使用可视化的方法分析了“共享单车”的数据集,理解了特征(变量)之间的关系。我们将在本篇建立几个模型预测单车的需求量,并比较它们的预测效果。 随机森林填充法 首先,导入必需的库、训练集和检验集。 import pylab import calendar import numpy as np impor...

wong2016的博客 1万+

QEMU源码全解析 —— virtio(3)

QEMU源码全解析 —— virtio(3)

phmatthaus的专栏 1845

测试自动化工程师的未来:高需求、高薪资的秘密

数字化转型浪潮下,测试自动化工程师成为企业竞争力的关键角色。本文剖析其高需求、高薪资的底层逻辑:市场需求高涨源于软件行业爆发式扩张,DevOps理念普及推动自动化测试融入全流程;薪资竞争力与技术深度正相关,金融、AI测试岗位溢价显著;AI与智能化正重塑行业,催生物联网、区块链等新场景需求。职业发展呈现技术纵深与管理双轨路径,未来核心竞争力转向编程、AI工具调优等复合能力。面对技术迭代挑战,从业者需构建T型知识结构,持续学习前沿技术,把握工程效能转型机遇。

2501_94480392的博客 146

如何利用通达信进行选股集合操作

每个交易者实际上都有自己的选股策略,这是必然的,也会有自己的主观干预,但是还是需要从客观热点股票进行一个比对的,才能说主观和客观相结合不至于​偏离方向。 这几天我也发了节前最后一天我的选股策略盘中的选择结果, 我也从网上拿到了热点股票池,当拿到之后你会发现如何从几十个股票热点股票选出核心票,这就是个问题了,这里面一定要通过股价涨跌幅来进行过滤,而不是通过指标,因为一切指标都是根据价格变化而改变的了,所以​这一步不要走弯路。 1、把拿到的热点股票名单,导入通达信自定义板块 2、删除

抢财猫股票课堂 2580

‌基础设施即代码(IaC)配置文件开源:测试从业者的机遇与挑战

基础设施即代码(IaC)通过代码化定义和管理IT基础设施,已成为DevOps的核心实践。本文将从测试视角,系统分析开源IaC的价值链、关键测试场景及实战策略,助力团队构建可靠的基础设施防线。开源IaC配置文件正重塑测试范式——从被动运维响应转向主动质量管控。测试从业者需掌握代码化思维,将安全左移(Shift-Left),并拥抱AI辅助工具(如自动生成测试用例的Copilot)。未来,随着FaaS(函数即服务)与IaC融合,测试焦点将扩展至无服务器配置的健壮性验证,持续护航数字化基础设施。

2501_94449023的博客 648

C# 固高板卡(总线型) 操作类

主要功能有:初始化,轴使能,正负方向手动移动,回0,点到点移动,等待移动完成,输入IO数据读取,输出IO控制,清除报警等功能。

StevenChen的博客 568

040、未来展望:MLIR与编译技术的演进方向

MLIR不是又一个编译框架,它更像是一套“元框架”——提供构建专用编译工具的能力。未来几年,我们会看到更多垂直领域(自动驾驶、射频信号处理、生物计算)出现基于MLIR的专用编译器,它们可能不会挂“MLIR”的名字,但内核都是这套可扩展的IR基础设施。不要等MLIR“成熟”再用,现在就该把它当成一把瑞士军刀,先挑刀口最锋利的那个功能(比如图优化、循环变换)用起来。编译技术的演进不再是学术界的独角戏,而是越来越贴近实际生产中的异构、动态、领域专用需求。

m0_50546716的博客 168

技术人的“第二增长曲线”:在主营业务之外培育新能力

摘要:随着AI技术发展,传统软件测试工作面临挑战。文章提出测试工程师需构建"第二增长曲线",在原有测试技能基础上拓展新能力。三条可行路径包括:向左成为质量架构师,参与需求与架构设计;向右深耕测试效能,开发测试平台与AI辅助工具;向外发展为业务领域专家,融合技术与业务知识。建议通过低风险实验逐步转型,让新能力反哺主业。在AI时代,测试人员的核心竞争力在于系统思维、质量把控和跨界整合能力,而非单纯执行测试任务。

2501_94261392的博客 277

ZYNQ PL通过EMIO ETHE1外接PHY由GMII转RGMII

1,设置EMIO方式引出ETHE1 2,从GMII过度到RGMII GMII: 发送 gmii_tx_clk gmii_tx_d[7:0] gmii_tx_en gmii_tx_er 接收 gmii_rx_clk gmii_rx_d[7:0] gmii_rx_dv gmii_rx_er RGMII: 发送 tx_clk tx_d[3:0] tx_ctrl 接收 rx_clk rx_d[3:0] rx_ctrl 首先数据总线从时钟单边沿采样8bit转变为了双边沿采样4bit,从88E1

wangjie36的博客 1万+

流程驱动与菜单过程:两种系统设计出发点的差别驰骋BPM驰骋低代码低代码工作流引擎

从功能出发做页面,还是从流程出发做模型?两种出发点的差别贯穿系统整个生命周期,本文对比入口、权限、协作与变更成本四个维度。

开源驰骋工作流引擎 218

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

流程引擎功能量化描述:配置项、规则与对外接口清点驰骋BPM驰骋低代码低代码工作流引擎

按枚举、属性常量、设计器配置项、对外接口四层逐项清点一套流程引擎的配置体量,并说明统计口径与边界。

开源驰骋工作流引擎 189

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

营销活动低代码前后台整体方案与前端深度实现详解

为彻底解决以上问题,阿里、腾讯、快手、B站等主流大厂均落地了营销活动专属低代码解决方案,通过「运营可视化低代码配置 + 技术组件逻辑低代码复用」的双轨架构,实现0研发参与快速搭活动、全业务组件/逻辑复用、统一高并发架构,将营销活动上线周期从「3-7天」压缩至「10分钟-1小时」。在电商、互联网大厂的日常业务中,营销活动是流量拉升、用户促活、 GMV 转化的核心手段,常见场景包含节日大促、签到打卡、幸运抽奖、积分兑换、弹窗福利、裂变分享等。面向运营、产品人员,零代码、纯可视化操作,无需懂任何代码。

警警的博客 198

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

一份 BPM 平台能力对标清单:25 个评估维度的横向观察驰骋BPM驰骋低代码低代码工作流引擎

一份基于源码实测的 BPM 平台横向评估:25 个评估维度,引擎、表单、投递规则、信创适配逐项展开,对标部分为综合公开信息判断,附选型建议。

开源驰骋工作流引擎 154

营销活动低代码前后台方案

当然落地中也踩过一些坑,比如Schema版本兼容、组件样式污染、事件链路异常中断、大促大量配置请求打垮后端,后面我们也通过版本兼容、CSS隔离、事件断点上报、CDN缓存Schema、预加载做了优化。运营侧低代码(无代码可视化):面向运营、产品,拖拽页面、可视化配置样式、奖品、活动时间、弹窗文案,最终产出一份标准JSON Schema,不用写代码;技术侧低代码(工程复用):面向研发,把原子组件、业务组件、渲染引擎、事件编排、请求容错、缓存策略全部沉淀成可复用能力,新活动不再搭底层架构。

警警的博客 247

BPM 引擎怎么选:15 项指标的权重打分与场景选型驰骋BPM驰骋低代码低代码工作流引擎

以 15 项评估指标和权重口径,对三款流程引擎做客观打分:总分接近但能力画像不同,本文给出按场景选型的对照建议。

开源驰骋工作流引擎 110

简化模式与专业模式:流程设计器的两种配置路径驰骋BPM驰骋低代码低代码工作流引擎

把流程设计模式与节点表单方案两层分开,说明极简、专业、绑定单表单、绑定多表单四种模式的适用边界与配置顺序。

开源驰骋工作流引擎 171

[Playwright][08] Upload 模块自动化:如何设计真实业务测试用例?

本文记录HPC Dashboard Upload模块E2E测试的开发过程。基于业务流程,设计五条测试用例,覆盖表单校验、普通Job提交及Recurring Job关联等核心场景。采用Playwright+TypeScript实现,封装文件上传与提交逻辑,重点验证提交后跨页面业务结果(如任务可见性、运行次数统计)。测试中发现定位精准性、等待机制与数据清理等问题,为后续优化提供方向。强调:自动化测试应验证业务结果,而非仅操作执行成功。

stay hungry stay foolish 129

AI智能测试用例生成技术解析:多源融合+LLM混合生成方案与实践

AI测试用例生成是指利用大语言模型(LLM)与约束求解技术,融合需求文档、源代码和历史缺陷三类数据,自动生成高质量、可执行测试用例的技术。本文介绍的“AI驱动的自动化测试用例生成方法及系统"(专利号:ZL202611022773.9)通过"多源融合建模 → 风险驱动规划 → LLM混合生成 → 覆盖贡献精简 → 脚本化部署"的完整链路,系统性解决了传统测试用例生成方法中模板僵化、语义缺失、建模成本高、针对性不足四大痛点。

分享软件测试与用户体验技术 327

CANoe自动化:跑起第一个测试用例

总结一下:Test Module=仿真节点+CAPL测试框架+自动报告。建工程三步(Test Configuration→挂DBC→配硬件通道),写用例抓住testStep/testStepPass/testStepFail/testWaitForTimeout这四个函数,跑完看报告三栏。第一次不用贪多,跑通一个testcase,你就跨过了自动化测试的门槛。

qq_43241255的博客 161

Java怎么开发AI Agent?——从模型调用到业务编排,框架级底座要备齐什么

Java怎么开发AI Agent?调大模型API只是第一行代码,真正的工作量都在模型之外:多步骤的编排、工具的接入协议、模型和资源的调度、权限和审计,还有让Agent读懂业务对象——这几块自己拼,Demo三天、上生产三个月。向量空间JBoltAI框架把这些做成了框架级底座,当前V5.3.0是第24个版本,100%源码按git仓库交付,AI能力长在框架层,不是外挂拼装。

AIGS001的博客 158

【技术拆解】配音工具选型评估方法论:用 6 个维度给 AI 配音软件打打分

✅ 测试方案:准备一段包含括号注释、数字、中英文混排的文案导入试听,校验读音、停顿是否合理。案例参考:逗哥配音配套了文案提取、自动对轴、人声分离、声音转换等附加工具,支持 wav /mp3 /mp4 格式导出,可附带字幕与 SRT 文件,在字幕对齐、文件导出这条链路具备对应的能力,适合批量生产场景的创作者在这个维度进行自测打分。同一款配音引擎,有人评价 “自然接近真人”,也有人反馈 “AI 感很重”,核心差异往往来自使用场景:30 字以内的短口播,和 3000 字小说章节朗读,对引擎能力要求完全不一样。

zhizhizhuzhuxia的博客 162

容器能启动却调用不了GPU?CUDA驱动兼容性验收实战

AI算力平台容器虽可进入Shell,但GPU任务仍可能因驱动、运行时、框架版本或设备映射不匹配而失败。验收需逐层验证:宿主机驱动、Docker GPU支持、框架版本、动态库加载、基础CUDA计算及自定义扩展。通过固定镜像Digest、执行最小计算与业务请求,确保真实算力可用,避免将兼容性问题误判为模型错误。

iFisher666的博客 455
上一篇: 推荐系统冷启动问题的几种创新解法
下一篇: AI产品经理入门:从技术到商业的转型
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值