开发流程规范
流程说明
1、根据迭代发布时间、发布功能点确定开发迭代分⽀,并从master 拉取⼀个基准分⽀,作为这个 迭代的发布分⽀(以下简称发布分⽀V0),并打上tag(tag-f1_f2-begin)
2、以⼀个开发⼈员独⽴负责的功能点为最细粒度(简称开发粒度),从发布分⽀上拉取开发迭代-特 性分⽀(简称特性分⽀),每个独⽴的开发⼈员都在⾃⼰的特性分⽀上进⾏开发。 举个例⼦,⼀个迭代中有3个功能点,分别由2个开发⼈员进⾏开发,其中A开发2个功能点,B开发1 个功能点,则从发布分⽀上拉取2个特性分⽀,分别为特性分⽀1,特性分⽀2。
3、A、B两名同学并⾏开发,开发完可以选择在⾃⼰本地电脑上⾃测或者将代码merge到dev分⽀, ⽤公共的dev环境进⾏开发⾃测
4、各⾃测试完成后,将特性分⽀merge到发布分⽀,产⽣新版本的发布分⽀(简称发布分⽀V1), 并打上tag(tag-f1_f2-merge),使⽤发布分⽀V1在dev环境进⾏集成开发⾃测
5、集成开发⾃测完成后,在发布分⽀上打上tag (tag-f1_f2-devTestFinish)(简称发布分⽀V2),将 发布分⽀V2提交到qa环境进⾏提测,qa提测完成,打上tag(tag-f1_f2-qaTestFinish)(简称发布分 ⽀V3)
6、将发布分⽀V3 merge到预发分⽀,并打上tag(tag-f1_f2-prepublishBegin),merge之前 预发 分⽀先rebase最新的master代码,使⽤合并后的预发分⽀进⾏回归测试,回归完成,打上tag(tag- f1_f2-prepareFinish) 7、将预发分⽀merge 到master进⾏⽣产环境发布,合并完成打上tag(tag-f1_f2-publish)
QA&&异常流程处理
Q1:qa环境测试到bug,应该在哪个分⽀进⾏修改?
A1:应该在所属的特性分⽀上修改,修改前特性分⽀需要先rebase下发布分⽀V1,然后重⾛dev–》 qa的流程
Q2:预发环境测试到bug,应该在哪个分⽀修改
A2:同A1
Q3:为什么要有特性分⽀,为何直接在发布分⽀上开发?
A3:为了⽅便回滚和提⾼并⾏开发效率,假设流程⾛到了qa环节,被通知功能1要延期上线,那么只 需要讲发布分⽀回滚到发布分⽀V0,然后重新merge 功能2的特性分⽀代码。假设没有特性分⽀,那 么两个2功能的开发散落咱多个⽇常commit⾥,⽆法剥离。
Q4:qa环境只有⼀个,但是有多个迭代测试时间重叠怎么办?
A4:将多个迭代的发布分⽀merge到qa分⽀,同时测试
Q5:⽬前公司没有预发环境怎么办?
A5:同时向公司申请,在申请下来之前先⽤QA环境代替,⽣产环境验证环节代替
Q6:现有流程和以前有何区别
A6:增加了发布分⽀、特性分⽀、预发分⽀,增加分⽀合并后的tag操作,更有利于开发功能分⽀代 码管理和提升并发开发效率,以及更好的保障master代码的正确性
禁⽌的⾏为
1、直接使⽤dev、qa、预发分⽀进⾏代码开发