敏捷测试(2022年10月21日)

敏捷软件测试:测试人员与敏捷团队的实践指南 敏捷软件测试:测试人员与敏捷团队的实践指南 crispin和Gregorv定义了敏捷测试的概念,并通过来自现实敏捷团队的示例阐述测试人员的职责。她们讲述如何利用敏捷测试象限来识别需要哪些测试,谁来做,以及哪些工具有帮助。《敏捷软件测试:测试人员与敏捷团队的实践指南》从测试人员的角度记录了敏捷软件开发迭代的一个完整周期,并解释了敏捷测试的七大关键成功要素。 读者将从《敏捷软件测试:测试人员与敏捷团队的实践指南》中收获 测试人员如何参与敏捷开发 测试人员和QA经理如何适应敏捷团队 敏捷测试人员的招聘要求是什么 如何从传统模式迁移到敏捷模式 如何在短期迭代中完成测试任务 如何利用测试指导开发 如何克服困难实现测试自动化 是敏捷测试人员、敏捷团队及其经理和客户的必备书籍 立即下载

敏捷测试(杂)

测试左移
冒烟测试推至开发,保证提测需求的质量
保证每个环节出来的质量

《敏捷软件测试:测试人员与敏捷团队的实践指南》 by Lisa Crispin 和 Janet Gregory

方法篇:以相对可靠的方法减小测试范围
减少工作量,取舍影响范围
工具篇:用自动化测试方法减少测试执行时间
如何减少测试执行时间

对测试的认知
  • 测试人员不应该是以发现bug越多越有成就感,而是要想着如何跟不同角色高效合作,使得交付的产品能够优化业务价值
对技术的关注
  • 测试活动多样性
  • 不能只关心测试相关技术,要把视野扩展到软件开发过程中的各个环节所接触到领域知识和不同类型的技术,不同业务类型、技术架构和基础设施等
    测试不可以独立存在
  • 测试不再以独立部门自居,需要跟不同的角色更多的沟通和合作

敏捷测试偏PM、自动化偏开发。可以根据自己感兴趣的方向进行

敏捷测试强调的是尽早测试和频繁测试,测试人员从需求分析阶段开始介入,全流程参与,跟整个团队一起实现团队为质量负责。
领域测试能力
需要丰富的业务知识
较强的业务敏感度
较强的业务理解能力
熟悉各种不同类型的业务模式
自动化测试能力
敏捷开展的必要条件
沟通协调能力(目标:让团队为质量负责)
测试人员作为主力,需要承担起质量的分析者和协调者的角色
要求有很好的跟不同角色沟通和协调团队合作的能力

敏捷测试专家的要求:
测试人员了解不同的自动化测试框架的优缺点,能够指导项目自动化工具的选型;
了解测试分层的思想,能够帮助团队制定合适的自动化测试策略;
能够实现业务功能层的自动化测试,能够跟开发人员一起参与底层自动化测试(接口测试、单元测试等)的评审工作;
了解持续集成工具,能够在持续集成流水线上配置和运行自动化测试。

PMI 敏捷实践指南.pdf 理解、评估和使用敏捷和混合的敏捷方法的资源。该指南为何时、何地以及如何应用敏捷方法提供指导,并为希望增强敏捷性的实践者和组织提供实用工具。 立即下载

相关推荐

敏捷实践指南(中文).pdf

敏捷实践指南(中文)

《敏捷软件测试:测试人员与敏捷团队的实践指南》

名称解释 XP:ExtremeProgramming,极限编程,“Extreme”(极限)是指,对比传统的项目开发方式,XP强调把它列出的每个方法和思想做到极限、做到最好;其它XP所不提倡的,则一概忽略(如开发前期的整体设计等)。一个严格实施XP的项目,其开发过程应该是平稳的、高效的和快速的,能够做到一周40小时工作制而不拖延项目进度。 Sprint:短距离赛跑的意思,这里面指的是一次迭代,而...

weixin_30882895的博客 1156

AgilePracticeGuide敏捷实践指南-密码:Competence123

AgilePracticeGuide敏捷实践指南-密码:Competence123

读书笔记:《敏捷软件测试》

你无法把质量测试进产品中,关键是客户对质量的看法

Rolei的博客 2398

敏捷软件测试实践指南(清华大学出版)

清华大学出版-敏捷软件测试实践指南,高清原版!请叫我雷锋~

敏捷软件测试:测试人员与敏捷团队的实践指南

敏捷软件测试:测试人员与敏捷团队的实践指南 高清完整版带书签

即将2023年了,我好想念那些2022年离职的兄弟

2022留下的其实一点也不轻松,以下这些经历有些是我个人的,有些是身边小伙伴的,你是否也有相同的经历呢?

xingyu_qie的专栏 2602

敏捷实践指南-中文版(可搜索、带页码).pdf

敏捷实践指南-中文版(可搜索、带页码),简单易学,轻松掌握敏捷项目管理,对开发人员参与敏捷项目有很大帮助,适合开发人员学习

9月,2022年最后一次PMP/ACP考试

2022年,PMI认证考试还有9月最后一次考试机会,有计划的小伙伴抓紧时间报名啦~

Tracy19890201的博客 580

网络安全隔离技术解析:单向网闸与双向网闸的核心差异与应用场景

本文深入解析网络安全隔离技术中的单向网闸与双向网闸,详细比较两者的核心差异与应用场景。单向网闸通过物理隔离确保数据单向流动,适用于金融交易等高风险场景;双向网闸则支持严格安检的双向数据交互,常见于医疗、政务等领域。文章还提供了选型建议和技术发展趋势,帮助读者根据安全需求和业务场景选择最适合的网闸解决方案。

weixin_29323365的博客 529

如何获取SAP BTP账户及BAS启用

返回到 Service Marketplace 点击SAP Business Application Studio 然后go to Application。进入子用户的OverView里面找到Entitlements添加SAP Business Application Studio。注意:在选购BTP免费环境的时候,使用人要选公司才可以成功。在完成上述操作后,就可以登陆Cockpit。这里有SAP官方的BTP试用的手顺链接。配置权限※我绑定的是登录时的邮箱。※过程中有问题可以在评论区讨论。

wangshulong2013的博客 723

【愚公系列】2023年10月 Java教学课程 085-Junit单元测试框架

单元测试是软件开发中的一种测试方法,它是对软件系统中最小的可测试单元进行测试的过程。通常,单元测试是用程序代码编写的测试代码来测试某个程序单元的行为,如一个函数、一个模块或一个类。单元测试的目的是发现代码中潜在的缺陷和错误,以确保每个代码单元的功能都得以正确实现,并且当代码修改时能够保证代码的正确性。单元测试也是敏捷开发和测试驱动开发中的一项重要技术,可以提高代码质量和可维护性,减少开发和测试的时间和成本。JUnit是一个用于编写和运行单元测试的开源框架。

愚公智库 3万+

Windows 11安装 SQLServer 2008 R2 失败问题处理

Windows 11安装SQL Server 2008 R2失败解决方案 由于Windows 11移除了对PowerShell 2.0的支持,导致SQL Server 2008 R2安装失败。经过多次尝试,最终通过**方案六(修改注册表模拟PowerShell 2.0环境)**成功安装。其他可行方案包括: 使用SP3集成版安装包 通过命令行跳过检查(/SUPPRESSPOWERShellCHECK参数) 创建特殊配置文件 替代方案建议: 使用Docker容器运行 在虚拟机中安装 升级到新版SQL Serve

oDengWei的博客 7182

2022年度总结 | 这一年,LigaAI写了10万字

2022年,我们用10万字写了敏捷开发、组织构建、效能提升、程序员成长、产品管理、需求管理…… 希望对你有帮助!

LigaAI的博客 1029

告别手动复制粘贴:3种高效合并Excel表格的方法对比(含代码)

本文对比了VBA、Power Query和Python三种高效合并Excel表格的方法,并提供了可直接运行的代码。针对不同数据量、更新频率和技术背景,详细分析了各方案的优缺点与适用场景,帮助读者告别低效的手动操作,实现自动化数据整合。

weixin_29057237的博客 442

STC8H8K64U ADC采样实战:从蜂鸣器控制到电压测量(附完整代码)

本文以STC8H8K64U单片机为核心,通过两个实战案例详细讲解ADC采样的应用。首先介绍如何利用ADC采样值动态控制蜂鸣器响度,实现模拟PWM效果;其次深入探讨高精度外部电压测量的方法,包括硬件连接、两点校准技巧以及软件滤波,旨在帮助开发者从理论到实践全面掌握ADC功能。

weixin_29159441的博客 562

【CSM认证】11月1-4日在线工作日班 | 全国招生

我们将会从“道、法、术”的层面来解读敏捷,学员不仅仅知道什么是敏捷,还会了解为什么需要敏捷,敏捷的核心是什么,敏捷会给企业带来什么好处。◇ “参加了Jim老师的敏捷讲座,在Jim的引导下,大家进行了高强度的烧脑,最终这个过程坚定我对敏捷的认知,也解答了我的很多困惑,这些困惑是在整个通过敏捷实践和思考沉淀下来的。敏捷中的规划都有哪些,分别是什么用处,在什么阶段使用

ScrumDavid的博客 436

【06】C#入门到精通——C# 多个 .cs文件项目 同一项目下添加多个 .cs文件

本文介绍了如何将C#游戏开发中的代码从单个.cs文件拆分到多个.cs文件中,以提升代码的可维护性和可读性。文章演示了在Visual Studio中创建Hero类和ShowInfo类的具体步骤:通过右键项目名添加新建类,将原有代码分别剪切到对应的类文件中,并自动生成命名空间。拆分后需要在Program.cs中通过"using"指令引用这些类,最后通过运行测试验证功能正常。这种模块化代码组织方式能有效解决单一文件代码过长、结构混乱的问题。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1137

软件测试周刊(第58期):春光不必趁早,冬霜不会迟到。相聚离开,全部刚刚好。

如何建设无人测试流水线?如何拿下 Selenium?你还记得测试策略么?2021年软件质量事故盘点;如何解决数据质量问题?计算机会进化成与人脑一样吗?为什么说75%新项目都可以“无脑”选择单体架构?传奇企业家理查德·布兰森:10个实现事业目标的优质习惯;每个CEO都应该带团队看的108个忠告。

毕小烦的学习笔记 2681

Windows 镜像包大全(附百度云下载链接)

插入U盘,找到下载好的两个驱动软件,并安装,先打开驱动人生万能网卡版,安装好网卡驱动,可以接入wifi或者网线了,然后打开驱动精灵,按照提示,安装所有的驱动(中间要是让你重启,就先选择稍后再说,如果有的驱动安装好之后非要你重启,关不掉的那种,那你就重启吧),等全部安装好了,重启电脑。如果你有显卡,这里以英伟达举例,我是GTX960的,当你的驱动都安装好后,右键桌面,会出现一个英伟达控制面板。安装软碟通,下载之后,一直下一步就ok,啥也不用配置,到了最后一项点击“继续试用”即可。(下载里面的网卡版即可),

悦分享 7363

一文读懂 SAP ICF Services:从 SICF 激活到 ABAP OData V2/V4 安全与实战

本文系统化介绍了ABAP系统中ICF服务的关键概念及实践要点。主要内容包括:ICF服务的核心安全机制,需显式激活才能响应HTTP请求;在SICF中正确激活服务的操作步骤;OData V2/V4服务所需的不同ICF节点配置,如V4统一入口节点/sap/opu/odata4;典型问题如default_host未激活会导致HOST_INACTIVE错误;安全实践包括CSRF防护机制和权限对象(S_ICF_ADM)配置;以及实际案例分析和常见ICF服务节点的功能说明。文章为ABAP开发者与运维人员提供了ICF服务管

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 472

2022年,HR 如何构建员工参与的绩效管理体系?

为了检查员工的业绩,通常的做法是每年举行一次业绩考核。在这些考核中,员工对自己的业绩进行评价。他们也会从经理那里得到数字分数形式的评价。在听取了同行和团队领导的反馈意见后,员工就可能得到加薪。或者,如果他们的表现不尽如人意,也可能被解雇。 绩效考核一般是一年一次的谈话。难怪它无关紧要、毫无意义、而且浪费时间。 事实上,只有14%的企业对他们目前的绩效管理系统感到满意。这些系统大多已经使用了60多年。但是,当今员工的需求已经发生了变化,而组织性质的变化也创造了新的商业机会。 在本文中,我们将讨论如何构建下一代

Tita OKR 658

深度学习工具包 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")

2022年10月北京/上海/广州/深圳产品经理认证NPDP知识学习

产品经理国际资格认证NPDP是国际公认的唯一的新产品开发专业认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。-Scamper、头脑风暴法、思维导图、故事板、头脑书写法、六顶思考帽、SWOT分析、PESTLE分析、德尔菲法。-焦点小组、客户现场访问、人种学、社交媒体、问卷调查、消费者监测组、产品使用测试、试销。-波特的战略框架、迈尔斯和斯诺的战略框架、颠覆式创新与持续式创新、创新画布。-平台战略、技术战略、知识产权战略、营销战略、能力战略。

209

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

2022年10月杭州/成都/郑州/武汉产品经理认证NPDP招生简章

产品经理国际资格认证NPDP是国际公认的唯一的新产品开发专业认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。-Scamper、头脑风暴法、思维导图、故事板、头脑书写法、六顶思考帽、SWOT分析、PESTLE分析、德尔菲法。-焦点小组、客户现场访问、人种学、社交媒体、问卷调查、消费者监测组、产品使用测试、试销。-波特的战略框架、迈尔斯和斯诺的战略框架、颠覆式创新与持续式创新、创新画布。-平台战略、技术战略、知识产权战略、营销战略、能力战略。

288

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

2022七场硬核MLOps会议实战指南:聚焦生产落地与可复用方案

MLOps并非单纯的技术堆叠,而是覆盖模型生命周期管理、CI/CD for ML、特征平台实践、可观测性落地与跨团队协作瓶颈的工程化体系。其核心在于将数据科学实验可靠、安全、可持续地转化为线上服务能力。随着企业对模型迭代效率、线上稳定性与合规治理要求持续提升,具备真实生产指标验证、完整架构图披露和可运行代码支撑的MLOps实践正成为技术选型与平台建设的关键依据。本文基于2022年全球7场高实操浓度会议的深度拆解,提炼出特征双活容灾、模型服务网格治理、GDPR合规检查表等已在金融、电商、出行等领域验证的落地路

weixin_33696106的博客 877
上一篇: Appium学习1(2020-09-22)
下一篇: 2022-07-15 window下DBeaver的安装和使用
海里一尾鱼
博客等级 码龄8年 9粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值