华为流程规范分享

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

华为研发流程规范分享Ai学测试:李志目录1华为IPD-CMM流程234版本控制方面优秀实践敏捷研发流程优秀实践华为版本敏捷开发流程IPD流程介绍IPD的核心内容是以市场为导向的产品开发,关注客户需求,另外IPD把产品开发在公司内部也作为一项投资来看待。IPD流程需要建立了虚拟的投资决策委员会(IPMT),对产品开发团队(PDT)的活动在一些关键点上进行决策,此外IPD所建立的产品开发团是跨部门的,可以打破部门之间的沟通壁垒,并给出了跨部门业务流程指导跨部门团队运作。IPD:集成产品开发,英文“IntegratedProductDevelopment”的缩写。概念计划开发发布验证生命周期概念决策评审点计划决策评审点可获得性决策评审点生命周期结束决策评审GATR1TR2TR3TR4TR4ATR5TR6LAUNCHTR点:技术评审点,在各个阶段要交付技术文档CMM介绍CMM软件开发过程的演进进行描述,为软件组织的开发过程定义、实施、测量、控制和改进等活动提供指导;为软件组织选择过程改进战略提供指导。CMM是由美国卡内基梅隆大学的软件工程研究所(SEI:SoftwareEngineeringInstitute)受美国国防部委托研究制定并在美国,随后在全世界推广实施的一种软件评估标准,主要用于软件开发过程和软件开发能力的评估和改进。CMM:能力成熟度模型,英文全称为“CapabilitymaturityModel”。初始级(1)不可预测并且缺乏控制可重复级(2)可重复以前的主要经验Level3Defined已定义级(3)过程被描述,并得到良好理解Level4Managed已管理级(4)过程被测量并受控Level5Optimizing优化级(5)持续自觉的改进有纪律的过程标准一致的过程可预测的过程不断改进的过程华为IPD-CMM介绍IPD关注整个产品的开发管理,包括市场、开发(软件、硬件)、结构、生产、采购、财务等各个方面。IPD-CMM流程关注其中的软件研发过程的管理。IPD-CMM流程CONCEPTDEVELOPQUALIFYCYCLELIFECDCPADCPPLANPDCPGALAUNCHSRSHLDLLDCODEUTITSTTR1TR2TR3TR4TR4ATR5TR6IPD流程LAUNCHIPD-CMM是IPD的软件使能流程目录1华为IPD-CMM流程234版本控制方面优秀实践敏捷研发流程优秀实践华为版本敏捷开发流程X产品版本规划1)研发周期长,半年迭代2)技术优势考虑领先2年3)前期技术瓶颈和性能瓶颈突破在研版本维护版本1)研发周期为2周到1个月,持续迭代2)修改线上bug和合入定制化需求(有钱)3)补偿前期遗留bug技术债1)命名全新版本2)支持老版本功能3)性能更好更稳定维护bug合入到新版本上线之后华为敏捷开发流程部分名词解释:CDCP(ConceptDCP):概念决策评审PDCP(PlanDCP):计划决策评审ADCP(AvailabilityDCP):可获得性决策评审产品Backlog:产品带班列表Anatomy:系统解剖AR:AllocationRequirement,分配需求部分名词解释:TDD:Test-DrivenDevelopment,测试驱动开发LLT:LowleveltestUT:单元测试MIT:模块集成测试MST:模块系统测试目录1华为IPD-CMM流程234版本控制方面优秀实践敏捷研发流程优秀实践华为版本敏捷开发流程优秀实践1:每日站立会议什么是每日站立会议每日工作前,团队成员的例行沟通机制,由ScrumMaster组织,Team成员全体站立参加聚焦在下面的三个主题:我昨天为本项目做了什么?我计划今天为本项目做什么?我需要什么帮助以更高效的工作?每日站立会议的关键要点准时开始:按计划会议制定的时间地点开会,形成团队成员的自然习惯;高效会议:会议限时15分钟,每个人都保持站立,依次发言,不讨论与会议三个主题无关的事情(如技术解决方案等);问题跟踪:ScrumMaster应该记录下所有的问题并跟踪解决;每日站立会议的好处增加团队凝聚力,产生积极的工作氛围及时暴露风险和问题;促进团队内成员的沟通和协调。每日站立会议促进团队沟通协调,及时暴露问题优秀实践2:可视化管理可视化管理的好处简单,一目了然,降低管理成本;实时状态显示,及时暴露问题;信息同源使团队理解一致,提升团队凝聚力;激励先进,鞭策后进,增强团队进取心。什么是可视化管理将项目状态(进度、质量等)通过物理实体(如白板,大屏幕)实时展示,让团队所有成员直观地获取当前项目进展信息。可视化管理的关键要点物理实体:可视化一定要做到物理上的实体化,大家在公开场所都容易看到,触摸到,(存在电脑中的文件不是可视化的);内容精简,易懂:信息展示一目了然,切实对团队有帮助,切忌贪多求全,难以分辨;实时刷新:延迟的信息拖延问题暴露,降低运作效率。可视化管理及时暴露问题,激励团队Story墙(展示Story进度)缺陷走势图(展示缺陷解决进展)优秀实践3:迭代回归会议迭代回顾会议的好处激励团队成员;帮助团队挖掘优秀经验并继承;避免团队犯重复的错误;营造团队自主改进的氛围。什么是迭代回顾会议在每轮迭代结束后举行的会议,目的是分享好的经验和发现改进点,促进团队不断进步;围绕如下三个问题:本次迭代有哪些做得好本次迭代我们在哪些方面还能做得更好我们在下次迭代准备在哪些方面改进?迭代回顾会议的关键要点会议气氛:Team全员参加,气氛宽松自由,畅所欲言,头脑风暴发现问题,共同分析根因;关注重点:Team共同讨论优先级,将精力放在最需要的地方(关注几个改进就够了);会议结论要跟踪闭环:可以放入迭代backlog中。迭代回顾会议是促进团队持续改进的最有效手段好的能做得更好的将来改进的优秀实践4:结对编程什么是结对编程两位程序员在一台电脑前工作,一个负责敲入代码,而另外一个实时检视每一行敲入的代码;操作键盘和鼠标的程序员被称为“驾驶员”,负责实时评审和协助的程序员被称为“领航员”;领航员检视的同时还必须负责考虑下一步的工作方向,比如可能出现的问题以及改进等。结对编程的好处有助于提升代码设计质量;研究表明结对生产率比两个单人总和低15%,但缺陷数少15%,考虑修改缺陷工作量和时间都比初始编程大几倍,所以结对编程总体效率更高(source:TheEconomist);结对编程能够大幅促进团队能力提升和知识传播。结对编程的关键要点程序员应经常性地在“驾驶员”和“领航员”间切换,保持成员间平等协商和相互理解,避免出现一个角色支配另一个角色的现象;开始一个新Story开发的时候即可变换搭档,以增进知识传播;培养团队成员积极、主动、开放、协作的心态能够增进结对编程效果;实施初期需要精心辅导,帮助团队成员克服个性冲突和习惯差异。结对编程提高代码质量和工作效率优秀实践5:测试驱动开发什么是测试驱动开发TDD以测试作为编程的中心,它要求在编写任何代码之前,首先编写定义代码功能的测试用例,编写的代码要通过用例,并不断进行重构优化;TDD要求测试可以完全自动化运行。测试驱动开发的好处和代码同步增长的自动化测试用例,能为代码构筑安全网,保证代码重构的质量;TDD有助于开发人员优化代码设计,提高代码可测试性。测试驱动开发的关键要点测试代码和源代码一样都需要简洁,可读性好;测试用例的设计要保证完备,覆盖被测单元的所有功能;每个测试用例尽量保持独立,减少依赖,提高用例的可维护性;当功能单元较大时,为降低难度,可分解为多个更小的功能单元,并逐一用TDD实现。测试驱动开发保证代码整洁可用(Cleancodethatworks)编写测试用例运行测试用例不通过编写代码再次执行用例通过进行重构执行所有用例通过优秀实践6:持续集成(CI)什么是持续集成持续集成(CI)是一项软件开发实践,其中团队的成员经常集成他们的工作,通常每人每天至少集成一次,每次集成通过自动化构建完成。持续集成的好处大幅缩短反馈周期,实时反映产品真实质量状态;缺陷在引入的当天就被发现并解决,降低缺陷修改成本;将集成工作分散在平时,通过每天生成可部署的软件;,避免产品最终集成时爆发大量问题。持续集成的关键要点持续集成强调“快速”和“反馈”,要求完成一次系统集成的时间尽量短,并提供完备且有效的反馈信息;自动化测试用例的完备性和有效性是持续集成质量保障;修复失败的构建是团队最高优先级的任务;开发人员须先在本地构建成功,才可提交代码到配置库;持续集成的状态必须实时可视化显示给所有人;大系统持续集成需分层分级,建立各层次统一的测试策略。持续集成提供产品质量的快速反馈,保证随时拥有可工作的软件解决问题单源码CheckIn源码CheckOut自动编译链接/自动发邮件编程规范检查/代码静态检查自动单元测试代码格式化/源码CheckIn源码打标签打包,安装盘(二进制文件,配置文件,帮助文件等)包FTP/CheckIn自动部署自动验证自动发布源码管理编译/测试部署随时随时每天一次每月一次发布版本发布人工自动工具自动工具自动工具生成品质度量报告自动工具支撑人工验证验证每周一次内部测试版本构建人工自动目录1华为IPD-CMM流程234版本控制方面优秀实践敏捷研发流程优秀实践华为版本敏捷开发流程优秀实践1:严格评审制度开发评审,参与者:开发\测试\版本经理1)SRS评审2)HLD评审3)LLD评审4)bug修改方案评审【完成后】所有文档归档保存决策类评审,参与者:SE\TSE\版本经理\测试经理\开发经理1)每个版本迭代需求排期评审2)版本迭代bug修改时间评审3)上线前,决策评审当前需要修改的bug和可以不修改的4)重大线上问题解决方案评审测试评审,参与者:开发\测试\版本经理1)测试需求分析方案评审2)测试方案评审3)测试用例评审4)bug测试用例评审【完成后】所有文档归档保存评审保证开发和测试的方向和质量的正确性优秀实践2:全员Code-Review开发必须组织Code-Review何时组织:在代码Check-in之前参与者:开发经理、周边相关开发、测试怎么做:开发讲解自己的开发思路浏览代码结构和调用关系确认代码规范性确认代码引用无问题确认经常踩得坑可以避免Code-Review保证开发思路和规范,避免继续入坑优秀实践3:控制版本合入在研版本开发控制1)每天早上编译一个版本2)白天开发,晚上改问题3)早上给测试合入需求和修改问题列表维护版本测试控制1)每个版本转测试2次2)第一次修改bug3)第二次修改第一次发现的bug和未完成修复的bugPS:1)如果bug过多,可以双方确认转测试次数,但是不能大于2次。2)超过2次编译,需要开发部长审批线上紧急bug版本经理控制1)紧急版本紧急处理不做控制2)可以开发直接修改并编译,测试直接测试3)保证问题第一时间解决并上线发布控制版本合入次数保证版本的稳定性优秀实践4:严谨代码对比参与者:测试适合版本:维护版本实现方式:采用自动化工具;对比目的:查看本次修改是否有其他未涉及的无关代码和异常代码的提交;对比时间:转测试之后,开始测试之前代码对比防止修改被遗漏、需求未提交参与者:开发适合版本:在研版本实现方式:采用自动化工具;对比目的:查看本次提交内容是否覆盖版本规划的全部需求和修改项目;对比时间:转测试之后,开始测试之前QA有什么想说的,可以抛出来?智能教学,爱上学习ThankYou

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功