嵌入式系统软件的全过程质量保证

学习笔记:嵌入式软件质量保证 (一)嵌入式软件质量的特性 (1)正确性。 指系统规范、设计和实现方面的错误的稀少程度。 (2)可用性。 指用户学习和使用一个产品的容易程度。 (3)效率。 指软件是否尽可能少地占用系统资源,包括内存和执行时间。 (4)可靠性。 指在指定的必须条件下,一个系统完成所需要的功能的能力。 (5)完整性。 指系统阻止对程序或者数据进行未经验证或者不正确访问能力以及确保数据能够正确访问。 (6)精确性。 ... 阅读详情
2009-04-09 作者:靳超 来源:电子产品世界
 

质量是产品的生命

当今随着软、硬件技术的发展,嵌入式系统广泛应用于航空航天、国防军事、电子通信等行业,其中软件也越来越复杂。而这些领域应用特点,决定了嵌入式系统往往是高安全、任务关键的系统,软件的微小瑕疵就可能严重威胁到生命和国家的安全、天文数字的巨额财产损失。这就使得保证嵌入式软件的质量和可靠性,变得至关重要。而在这些领域,对产品质量从来就保持着高度的重视,有将“质量视为产品的生命”的传统。这样,相关行业的高层管理人员和开发人员对于软件的质量也逐渐提高了重视程度。近年来,在组织上,建立了完善的软件测试体系;在开发和测试方法上,建立了中国的软件过程成熟度的评价体系GJB5000;在自动化工具方面,投入了大量的经费和人员在测试设备的开发、购置和建设方面。应该说,软件作为嵌入式产品主要的组成部分之一,对其质量的重视是目前相关行业的一个共识。

IBM Rational多年来在软件工程和质量保证方面积累了丰富的方法和经验。本文依据部分嵌入式开发机构对软件质量保证工作的一些理解,分析相应开发机构工作中可能的问题,并提出以RUP为核心的全过程质量管理的思想和具体的实现方式,提出不同单位的过程改进方法,以一种渐进的方式,从简单的工作开始,逐渐深入地改进组织的软件质量管理水平。

定义质量

对于任何一个组织,定义共同的对质量的理解是重要的第一步。软件开发组织经常按照一种不精确的、概括的质量观念来运转。

在IBM Rational统一过程中,质量定义如下:

  • 满足或超出认定的一组需求;
  • 使用经过认可的评测方法和标准来评估;
  • 使用认定的流程来生产。

在这个定义中,我们首先看需求,IBM Rational的软件质量在用户需求方面的定义分为五个方面:易用性、可靠性、性能、可支持和功能。

质量保证,归根结底就是为客户提供更高品质的产品,更好地满足客户的需求。另一方面,这个质量定义中明确指出,质量更体现在软件开发的整个过程和一个标准的评价方式上。

软件开发过程质量就是指为了生成工件而对可接受流程的实施和遵守程度,体现在三个层次:

  • 产品本身和用来生产、组装软件产品的零部件质量;
  • 在软件开发过程的标准化、流程化、自动化程度和团队基本协作平台的效率,各个过程对质量的承诺;
  • 软件产品验收的评测手段应该是被业界广泛认可和接受的方法,所构筑的质量评价标准。

一个软件生产企业的过程质量一般可以用它的软件过程成熟度等级来评估。

RUP全过程质量保证

Rational Unified Process(RUP)是一个可以通过Web来使用的软件工程过程。作为软件工业事实上的标准,它回答了我们以下问题:在整个软件开发的各个过程中,谁(角色)应该在什么时候(详细工作流程)做什么(任务)和产生什么样的开发结果(工件),以完成整个项目的开发目标。建立有效的工作过程,可以提高团队的生产效率,控制开发过程中的风险,保证软件开发进度并且提高软件产品质量。同时通过为所有重要的开发活动提供全面的指南、模板和示例,使整个软件开发团队能够有效共享成功经验,提高团队效率,最终保证软件开发质量。

全过程质量保证思想

RUP把整个软件开发过程分解成:业务建模、需求管理、分析设计、实施、测试、部署、配置与变更管理、项目管理和环境等九个核心工作流程。每个核心工作规程由多个详细工作流程组成。RUP使用角色、任务和作为输入/输出的工件来组织每个详细工作流程,实现软件开发组织内部人、资源和流程的融合。RUP通过建立完整的软件开发过程,使得产品的质量由项目团队的每个成员所代表的角色共同负责,具体体现在:每个工作流程设定相应的工作指南和工作检查点,每个角色承担相应的质量任务。

在RUP中,整个软件开发过程如图1所示,它以指定的工件为输入,通过软件开发角色和标准化的软件开发活动,生产出满足质量要求的输出工件。

 

用正确的过程和平台实现质量

IBM提供一个完整的方案以帮助开发团队构建更高质量的软件。这个开放和标准的平台包括IBM软件的许多工具,包括IBM Rational统一过程。在开发的每个阶段和每个流程都强调关注质量,帮助团队来识别开发生命周期中的早期问题。以下部分描述了RUP和IBM软件开发平台中的工具如何支持每个工作流程中的质量实践的。

为减少重复描述,先将相关工具的功能统一简要描述。下面的所有工具都可以以插件的形式集成到开放的Eclipse平台上,为开发者提供集成环境:

  • IBM Rational System Developer 用于系统建模和开发的集成环境;
  • IBM Rational TestManager 用于计划、管理和报告任何测试工作要求;
  • IBM Rational Manual Tester 用以提高手工测试工作的效率;
  • IBM Rational Test RealTime

用于嵌入式系统的静态度量、代码规则检查、单元测试、覆盖率分析、内存分析、性能分析、代码跟踪、线程分析、基于消息的分布式系统测试的跨平台解决方案。

为了推动团队沟通、协作和合作,IBM Rational还提供多种额外的解决方案选项。

分析

根据统计得知,引起客户不满意问题的80%可以追溯到对需求的糟糕理解上。对于任何嵌入式开发项目,不论是新的系统开发,或遗留系统更新集成,质量开始于分析业务,以确保系统需求清晰且准确地反映了业务和客户需求。

我们可以将被测系统置于其将运行的环境中,采用建模的方式,将最优确认的需求,用条目化的方式管理需求文档,实现从需求、到分析、到设计、到实现、到测试的双向跟踪,以实现测试中发现缺陷到各层次的跟踪,和影响范围的分析。

设计

在设计中,主要的质量集中在构架上,这是软件的“灵魂”。低质量的构架会引起大范围的质量问题,包括(软件)脆弱、缺乏升级、以及发现缺陷也难以修改。这些问题随着应用软件项目不断发展,变得越来越难以解决;并且随着应用软件从设计到开发、测试和部署,纠正缺陷的成本以指数在增长。如果软件开发人员可以有效地发现、隔离和解决设计和开发期间的结构上的不足,这项工作会在整个项目期间获得受益。

开发

平均起来,开发人员在他们写的每千行代码中会产生100到150个错误。当然,这个数量随着开发人员和项目的不同而不同。即使只有一小段代码,产生10%的错误也是很严重的。

RUP倡导开发人员主动地测试和分析。尽管单元测试和运行分析已经变得更为主流,但是许多管理人员仍然有这样的误解,即这些过程使时间表中增加了不必要的时间。事实上,如果不采用这些措施,开发时间表通常会一样或更加延长,这是由于在质量保证或客户发现问题后,开发人员在生命周期中调试代码要花费更多的时间。

测试

管理系统级功能和性能测试是持续保证质量的一个主要部分。一个开发组织既不应当过分强调,也不应当减少系统测试的重要性。如前所述,保证质量不只是测试团队的职责,测试也不只是质量保证的唯一领域。某些测试可以并且应当由开发人员来运行,在某些情况下,可以由构架师来运行。大量的质量保证工作,在RUP的原则下是由其他开发角色构造的。

支持保证质量的团队职责

质量是开发团队中的每个人的职责,但是它也是团队作为一个整体的职责。在一个迭代的过程中,每个迭代确保了每个工件质量的持续的重新评估,这样,在迭代的方式下,经常可以保证提交质量更高的产品。有效的软件配置管理和变更管理是保证质量的一个基本工具;它帮助组织确保软件在每次构建时是可重复的和可靠的,并且保证缺陷和变更请求得到正确的管理。

质量过程改进的步骤

当我们考虑需要什么来构建任务关键和高安全性的系统软件,并涉及过程质量改进时,大家往往想到的是一个复杂的过程。其实,软件过程质量改进,如软件开发,可以是一个迭代的过程。你不需要一步就完成所有的事情。即使是小的变化,包括调整你的组织中对质量的看法,也会产生一个切实的改进。

我们指出两条参考的改进的线路图,递进式的(或者本质的)和演进式的(反应式的)。递进式的更多考虑工作流程间的依赖性,做到先改善基础流程,再基于已有的改善基础,做进一步改进。而演进式的多来自于工作中感知到的问题和瓶颈,依据问题的表面做反应式的改进。基于改进后再发现新的问题,如此反复。当然,我们也在努力发现一种可以兼顾工作流程间依赖性,有可以快速显示改进效果的改进方式。

我们可以把质量保证工作改善划分为以下几个方面:配置管理和变更管理、静态分析和单元测试、集成测试和系统测试、迭代开发和连续测试、全过程质量、组织级质量体系、架构分析、需求管理、项目管理。递进式和演进式的实施方式如图2和图3所示。

获得软件高质量的高收益

全过程的质量保证体系总是比忽略质量问题的成本要低。事实上,如果你正确地运用,提高产品质量基本上没有成本。

在国际上,随着软件质量保证理论及应用研究工作的不断深入,针对软件质量保证工作的工作重点也经历了如下发展历程:

  • 1970年以前,采用特定(Ad-hoc)测试,与调试没有区分;
  • 1970年末到1980年中期,测试基础理论和实用技术形成,软件测试作为软件质量保证(SQA)的主要手段和职能;
  • 1980年代末到90年代中期,测试工具在质量和数量上不断增长,测试与SQA分离,注重于工具对测试效率的影响;
  • 1990年后期到目前,重新关注有效的过程管理对于软件测试的重要性,将软件工程视为软件测试的基础,或形成各种独立的测试模型、测试能力成熟度模型。

现在高品质软件,需要完整的软件开发过程和整合的软件开发平台来共同铸就。IBM Rational软件开发平台,就是以各种国际标准和开放平台为基础,为嵌入式系统软件产品的开发和生产过程提供了良好的开发速度和质量保证。

嵌入式软件测试方法:提高嵌入式软件质量的关键步骤 嵌入式软件在现代技术领域中扮演着重要角色,它们嵌入在各种设备中,从汽车到家用电器,从医疗设备到智能手机。在这个示例中,我们编写了一个简单的程序,要求用户输入一个数字,并计算其平方。在这个示例中,我们编写了一个简单的程序,要求用户输入一个数字,并计算其平方。通过运行集成测试,我们可以确保这两个模块之间的接口和交互是否正常。通过运行集成测试,我们可以确保这两个模块之间的接口和交互是否正常。在这个示例中,我们定义了两个简单的函数。在这个示例中,我们定义了两个简单的函数。在这个示例中,我们有两个模块。 阅读详情

相关推荐

嵌入式系统软件可靠性设计与测试方法

本文介绍了嵌入式系统软件可靠性设计和测试的常用方法,包括异常处理和错误检测、单元测试以及静态代码分析。通过合理应用这些方法,开发人员可以改善嵌入式系统软件的可靠性,并减少潜在问题和错误。在上述代码中,我们定义了一个add函数用于两个整数的相加,并编写了test_add函数来进行单元测试。然而,变量c未使用,这可能是一个错误。通过编写针对每个单元的测试用例,可以对其进行全面的测试,并及时发现潜在的问题。通过合理设计的异常处理机制和错误检测代码,可以及时发现并处理潜在的错误,避免系统崩溃或数据损坏。

DevCyberX的博客 533

如何保障汽车嵌入式软件的质量与安全?您需要了解ASPICE标准

遵循ASPICE标准的好处有很多,而且,一旦您的组织制定了符合ASPICE要求的流程,就等于您建立了一个可以帮助您获得其他标准认证的框架。例如,尽管存在差异,但遵循ASPICE也可以帮助您遵循如ISO 26262等的其他安全标准。通过遵循ASPICE指南来实施最佳实践,组织能够更好地在汽车上市之前发现问题,提高汽车嵌入式系统质量和安全性的透明度,同时在适当的流程评估下推动产品创新。ASPICE是一项强大的标准,能够在组织、项目和系统级别来评估公司的流程,以便汽车供应商和OEM能够持续监控并改进工作方式。

weixin_49715102的博客 828

GJB 438B嵌入式软件质量保证报告实战填表指南

软件质量保证(SQA)是嵌入式系统研发中确保可信性与合规性的核心工程活动,其本质是通过可追溯、可量化、可审计的过程证据链,验证开发活动与GJB 438B-2009等军用标准的符合性。其技术价值在于将抽象的质量要求转化为V模型各阶段的结构化检查项、分岗制责任矩阵和联合评审闭环记录,从而支撑第三方评测与项目结题审查。典型应用场景涵盖航天、军工、轨道交通等高可靠嵌入式软件交付,尤其在甲方强审、时间节点紧迫、文档需直通归档的实战压力下,高质量SQA报告成为过程合规性与产品可信度的关键载体。本文聚焦GJB 438B标

weixin_31476015的博客 229

提升汽车电子嵌入式软件质量的秘密武器

有哪些可以优化的内存分配,缓存友好的点?虽然底层很重要,但是无限纠结于底层从而忽略对上层的宏观把握,必会导致因小失大,花很大精力设计一套没什么用甚至起反作用的功能,是一个程序不成熟时常犯的错误。做程序的没啥高人一等,和清朝捏糖人的手艺人没区别,靠手艺吃饭,手艺没了人就可以没了,至于摊子在哪条街哪个铺,都是身外之物。·功能测试和故障注入测试只是软件测试的一部分,即使测试用例100%覆盖了所有的功能需求和安全需求(假设有这么两份文件的话),不能排除软件中存在其它的分支导致系统出现其它非预期的结果。

单片机一哥的博客 596

提高嵌入式软件质量的途径

嵌入式编程技术本身是一个技术含量比较高的技术,一般很难写出高质量的软件,这篇文章中解释了提高软件质量一些需要注意的问题,给陷入低效嵌入式编程中的人一个解答问题的借鉴之言!

嵌入式系统/ARM技术中的 POLYSPACE 工具实现了开发高质量嵌入式软件

MathWorks 今天宣布推出对其 Polyspace 嵌入式代码验证产品的改进,此类产品可以证明源代码中不存在某些运行错误。 Polyspace新特性包含了 指标网络控制面板(metrics web dashboard)、自动计划验证工作、电子邮件通知以及增强的代码指标支持,这些新特性使工程师能够选择并跟踪嵌入式软件质量的指标和阈值。这些改进帮助软件团队更好地定义质量目标,并更快地加以实现,以便在汽车、航空、国防以及工业自动化和机械行业中得到高完整性应用。     关键应用中的嵌入式软件需要满足特定的软件质量目标,这是监管指令或企业验证流程的一部分。为使软件团队能实现这些目标,开发人员和

嵌入式软件开发之------浅谈研发管理与设计质量

一、导读    Would you buy an automobile made by a company with a high proportion of recalls? Would that change if they told you they had cleaned up their act? What does it really cost for your users to fi...

lujian186的博客 4064

SoC低功耗设计实战:28nm工艺下四核A7的Hierarchical Flow全流程解析

本文深入解析了在TSMC 28nm工艺上,采用Hierarchical Flow(层次化流程)实现四核Cortex-A7 SoC低功耗设计的全流程。文章从项目背景切入,详细探讨了基于UPF的电源规划、时钟树综合、接口时序收敛以及物理验证等关键环节,分享了使用Cadence Innovus等工具进行低功耗物理实现的实战经验与挑战。

weixin_29231263的博客 322

嵌入式软件可靠性设计

设备的可靠性涉及多个方面:稳定的硬件、优秀的软件架构、严格的测试以及市场和时间的检验等等。这里着重谈一下作者自己对嵌入式软件可靠性设计的一些理解,通过一定的技巧和方法提高软件可靠性。 1、判错 工欲善其事必先利其器。判错的最终目的是用来暴露设计中的Bug并加以改正,所以将错误信息提供给编程者是必要的。 有时候需要将故障信息储存于非易失性存储器中,便于查看。这里以使用串口打印错误信息到PC显示屏为例,来说明一般需要显示什么信息。 编写或移植一个类似C标准库中的printf函数,可以格式化打印字符、字符串、十进

BeginnerMind 1909

手把手教你用STM32单片机控制双向可控硅调光(附完整代码+电路图)

本文提供了一套完整的STM32单片机控制双向可控硅实现灯光无级调光的实战方案。详细讲解了硬件电路设计,包括过零检测与隔离驱动,并剖析了基于定时器中断的软件核心逻辑,通过精准的相位角计算实现平滑的灯光强度控制。附有完整代码与电路图,适合嵌入式开发者实践。

weixin_29194255的博客 952

微机原理与接口技术第六版周荷琴课后习题答案及解析(期末重点)

第二章 1.8086/8088CPU可直接寻址多少个内存(字节)单元?多少个I/O端口?它们的外部数据总线各有多少根? 8086/8088CPU使用的是20位地址总线,因此可以直接寻址2的20次方个内存单元(即1,048,576),每个单元大小为1字节,因此可以直接寻址2的20次方个字节的内存。 8086/8088CPU有64K个I/O端口,每个端口占用1字节的地址空间,因此可以直接寻址6...

Wmicheng的博客 1万+

CMMI—过程与产品质量保证

CMMI—过程与产品质量保证

深圳市多克创新科技有限公司 1595

中文顶刊《会计研究》文本分析技术最新进展总结盘点

会计研究》是由中华人民共和国财政部主管、中国会计学会主办的国家一级学术期刊,为会计领域中文顶级期刊。随着大数据技术的日益成熟, 社交网络类文本 、上市公司披露类文本、媒体报道类文本、 其他类文本 、网络搜索数据、P2P 网络借贷文 本与分析师报告等文本数据逐渐成为财务会计的研究素材。

qq_52891550的博客 2891

讲解2024全球C++及系统软件技术大会日程及讨论内容

日程、 2024全球C++及系统软件技术大会是由C++之父领衔,系统软件专家齐聚的重要会议。以下是该会议的日程安排: 第一天(上午): - 开幕式:C++之父发表开幕演讲,介绍本次大会的主题和重要议题。 - 主题演讲1:深入了解C++20的新特性和语法,讲解其应用场景和性能优化技巧。 - 主题演讲2:系统软件的发展趋势和挑战,讨论如何应对并解决系统软件开发中的常见问题。 - 分论坛1:C++20新特性实践分享。在这个分论坛中,参与者将分享他们在实际项目中应用C++20新特性的经验和教训。 第一天(下午

ch_yang123的博客 1148

修复ASUS in WinRE教程

暑假入手了天选三,发现是win11家庭版,本来想着家庭版将就一下无所谓,结果在使用的过程中发现相较于专业版真的是不能比,于是自己就重装了系统,发现ASUS in WinRE入口不见了,折腾半天最后成功修复。

weixin_46202629的博客 1万+

开源WorkBuddy实战课:从零搭建AI Agent办公自动化工作台

AI Agent作为大语言模型之上的智能体,正在重塑办公效率。它通过工具调用、任务规划与长期记忆,将被动问答升级为主动执行。WorkBuddy作为图形化智能体工作台,降低了搭建门槛,让非技术人员也可配置自动化流程。本文开源整套实战资料,涵盖JDK环境配置、模型接入、日报邮件处理、表格清洗、批量文档生成等场景,并讲解自定义指令、Skills扩展与MCP协议。从基础概念到工程实践,帮助读者快速上手,构建属于自己的办公自动化助手。

weixin_29083475的博客 224

【ALM】ALM解决方案系列:质量保证

Polarion系统支持过程域审计并提供对应过程域的检查单,若用户已有检查单可直接上传到系统中,或根据系统已提供的检查单进行裁剪。Polarion系统的文档模板库提供了强大的文档复用能力,支持跨项目的复用。系统提供独立和客观的保证,使工作产品(如需求设计等规范文档)和过程符合预先定义的规定和计划,并使不符合项得到解决和进一步预防。质量管理信息系统还未建设,50%已建立了部分的质量系统,30%的大型头部企业各类信息化系统已经覆盖。QA可根据下图不符合项趋势报表查看不符合项的发现和解决关闭的趋势。

ALM专业人士 2265

PINN——加入物理约束的神经网络

【摘要】 基于物理信息的神经网络(Physics-informed Neural Network, 简称PINN),是一类用于解决有监督学习任务的神经网络,它不仅能够像传统神经网络一样学习到训练数据样本的分布规律,而且能够学习到数学方程描述的物理定律。与纯数据驱动的神经网络学习相比,PINN在训练过程中施加了物理信息约束,因而能用更少的数据样本学习到更具泛化能力的模型。本文主要解析这种神经网络以...

qq_39444290的博客 4582

Duktape发布流程:版本管理与质量保证的完整体系

Duktape是一个轻量级、可嵌入的Javascript引擎,专注于可移植性和紧凑的代码占用。作为开源项目,Duktape建立了一套严谨的发布流程和版本管理体系,确保每个版本的质量和稳定性。 ## 🚀 发布流程的完整生命周期 Duktape的发布流程是一个精心设计的体系,从版本分支管理到最终发布,每个环节都体现了专业软件工程的严谨性。整个流程可以分为四个主要阶段: **版本准备阶段** -

gitblog_01081的博客 1063

老 Intel Mac mini 装 OpenClaw:低成本常年在线方案

老款Intel Mac mini部署OpenClaw方案摘要 本文详细介绍了如何利用老款Intel Mac mini低成本部署OpenClaw系统。方案推荐2011-2018款Mac mini,建议升级至16GB内存和SSD存储以提升性能。部署步骤包括:1)安装Ubuntu系统;2)配置Docker环境;3)通过docker-compose部署OpenClaw及其依赖组件(PostgreSQL和Redis);4)进行系统级和Docker层面的性能优化;5)设置开机自启动服务。该方案充分利用老款设备剩余价值,

一键难忘的博客 2476

IMSL CNL 7.0.0 (x86-64)Crack

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

TinyGo认证测试:质量保证流程

TinyGo作为面向微控制器、WebAssembly和小型系统的Go编译器,其质量保证体系采用了多层次、全方位的测试策略。本文深入解析TinyGo的认证测试流程,从单元测试到集成测试,从持续集成到发布验证,全面展现其质量保证机制。 ## 测试架构体系 TinyGo的测试架构采用分层设计,确保从编译器核心到目标平台的全面覆盖: ```mermaid graph TB A[TinyGo测...

gitblog_00128的博客 1034

Camera2Demo

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

FreeRTOS测试框架终极指南:从零构建嵌入式系统质量保证体系

FreeRTOS作为嵌入式领域最流行的实时操作系统之一,其稳定性和可靠性直接关系到嵌入式产品的质量。本文将全面介绍如何利用FreeRTOS内置的测试框架,从零开始构建一套完整的嵌入式系统质量保证体系,帮助开发者快速掌握任务调度、内存管理和中断处理的测试方法,确保系统在各种工况下的稳定运行。 ## 测试框架核心组件解析 🧩 FreeRTOS测试框架的核心在于其模块化设计,主要包含以下关键组件:

gitblog_01195的博客 804

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

嵌入式固件 .pkg 打包流程

固件 pkg 包结构、打包流程、Conan Server 替换、build.sh 及版本管理

IT OR 考公? 2001

【亲测免费】 提升嵌入式软件质量:嵌入式软件评审资源文件推荐

提升嵌入式软件质量:嵌入式软件评审资源文件推荐 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在嵌入式软件开发过程中,软件评审是确保软件质量的关键环节。为了帮助开发团队和评审人员更好地执行评审流程,我们推出了“嵌入式软件评审资源文件”项目。该项目提供了一系列详细的评审规范和要素表,旨在帮助团队系统化、高效地进行软件评审,从而提升软件质量,确保项目顺利进行。 项目技术分...

gitblog_09814的博客 518
上一篇: 软件发布版本说明
下一篇: BUG分类标准
张志龙
博客等级 码龄24年 412粉丝 131原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值