您好,欢迎访问三七文档
软件工程相关理论@孙景卫我是谁@孙景卫weibo.com/sunjwjingweisun@gmail.com百度架构师、项目经理大纲敏捷开发TDD结对开发持续集成、持续交付探索性测试60’s软件作坊70’s软件危机80’s软件工程90’s重型过程20xx敏捷软件开发模式的演进为什么要敏捷?需求经常在变化为什么要敏捷?需求失真为什么要敏捷?kickoff没有足够的时间发布为什么要敏捷?尽早测试、提高产品的质量快鱼吃慢鱼Googlevs.MicrosoftApplvevs.Nokia……敏捷开发和传统开发流程的对比敏捷开发“前”的产品开发过程(瀑布模型)敏捷开发和传统开发流程的对比敏捷开发“后”的产品开发过程(迭代模型)敏捷开发的价值观•勇于去创新,勇于去改变,勇于接受改变•对于我们产品、对于我们的开发过程的每一步开发的进度,每一步测试的结果,对任何人而言都是透明的。•不断反馈的过程就是不断建立信心的过程。•PD和开发、测试之间•用户和PD之间•开发和开发之间•PD和用户之间•我们要用最简单的方式做我们的事情,无论是设计、开发实现还是测试简单沟通勇气反馈敏捷开发方法完整团队项目墙每日晨会/站会测试驱动开发敏捷开发方法结对编程(codereview等)持续集成重构迭代总结TDD:从一句大师的话开始编写单元测试是在进行验证,更是在进行设计。同样,它更是在编写文档。测试驱动开发的精髓将测试方案设计工作提前,在编写代码之前先做这一项工作;从测试的角度来验证设计,推导设计;将测试方案当作行为的准绳,有效地利用其检验代码编写的每一步,实时验证其正确性,实现软件开发过程的小步快走。WhatisTDD?TestDrivenDevelopment(测试驱动开发)测试先行。持续重构。测试驱动开发是一种在极限编程(XP)中处于核心地位的技术。WhyTDD?确保每个方法都是可用的且已被测试过确保及时发现出现问题的模块添加或修改代码更容易频繁地运行测试迭代式递增开发不断重构以改善设计WhyTDD?TDD还能改善和验证设计:以客户端的视角编写测试为客户端提供了示例代码更注重接口的设计为了使测试容易,需要实现松散耦合更少的Debug时间HowtodoTDD?1、写一个空方法。2、写一个测试程序(单元测试用例)。3、让程序编译通过。4、运行测试程序,发现不能运行。(红条)5、让测试程序可以运行。(绿条)6、消除重复设计,优化设计结构。(绿条)7、重构小时候结对学习小时候结对学习的关键词长大了要结对编程结对编程的关键词结对中需要做的需求review设计reviewCodereview进度review结对的好处互相学习,学习人家的设计思路、开发技巧互相backup提高产品质量促进沟通促进问题及时反馈结对中的取舍不是结对编程,而是结对开发无需两两同时进行需要根据项目的大小和难易而定持续集成让机器进行软件研发过程中80%的例行工作,其他20%的需要智力的工作由人进行。Build(Timely,Daily,Weekly)CI/CD/持续反馈版本库中的开发分支个人本地工作区图例:运行测试代码修改代码流向构建成功的线上版本取令牌还令牌二级构建阶段提交构建阶段第二次本地验证第一次本地验证12344’561.把代码从版本库中检出到本地2.为新功能或修改某个缺陷而修改代码,增加测试3.运行第一次本地验证4.验证无问题后,再次与版本库中的代码合并,执行本地验证5.二次验证无问题后,提交代码到版本库6.等待持续集成服务器运行完提交构建注:令牌为可选项,主要解决团队协作问题。每个持续集成只有一个令牌。持续集成步骤持续交付(ContinuousDeployment)codeBinaryConfDataCIProductcodeBinaryConfDataProductCICD部署通过手工、半手工完成,产品信息没有被版本管理,增量部署产品信息版本管理,自动完成部署,整体部署优势codeBinaryConfDataProductCICD•自动化程度高,一键部署•版本管理完整,易于回滚•信息集中管理,便于沟通;角色间沟通的信息量减少(仅revision)•易于完善质量保障环节分支策略主干分支part1-x.x.x版本a提交……版本b版本c提交提交提交提交提交提交提交同步A团队:B团队同步同步同步同步同步同步同步……•It'sNOTaboutfindingbugs!•Thepurposeofunittestingistofacilitatechanges单元测试CI神灯探索性测试(ExploratoryTesting)一边设计测试,一遍执行测试相对于Scriptbasedtesting而言有时候非常有效!百度手机平台测试TIP:TestInProduction利用线上环境进行测试A/B测试大数据量、真实环境性能测试
本文标题:软件工程前沿理论
链接地址:https://www.777doc.com/doc-4551318 .html