本发明涉及计算机软件技术领域,尤其涉及一种软件敏捷开发方法及系统。
背景技术:
软件项目敏捷开发的过程通常包括开发新功能、发布测试、发布生产、发布热修复补丁,这些过程都是迭代进行的。目前,公知的基于git的软件敏捷开发流程是gitflow。gitflow使用多个功能分支管理项目迭代开发,如图1所示,包括特性分支、开发分支、发布分支、生产分支和热修复分支。其中,特性分支用于开发新功能,发布分支用于测试、修复bug,生产分支用于发布生产环境,热修复分支用于修复在生产环境上发现的bug。新版本的特性分支从开发分支中拉出,当新功能完成时将特性分支合并到开发分支。到了提测时间点,新版本的发布分支从开发分支中拉出,用于测试和bug修复。到了发生产的时间点,发布分支需要合并到生产分支和开发分支,之后将生产分支的代码发布到生产环境并在生产分支上打tag。当在生产环境上发现bug时,新的热修复分支从生产分支上拉出。在热修复分支上改好bug后,需要合入生产分支和开发分支。最后在生产分支上打tag。这样就完成一轮迭代开发。gitflow工作流中,发布分支和热修复分支的修改除了要合入生产分支外,还要同步合入到开发分支。这在发布过程中很容易遗漏,导致上一个版本的bug传递到下一个版本中,增加维护成本。
技术实现要素:
本发明所要解决的技术问题是:本发明提供一种软件版本更新可靠性能高的软件敏捷开发方法及终端,降低了后期的维护成本。
为了解决上述技术问题,本发明提供了一种软件敏捷开发方法,包括以下步骤:
s1:第一版本的发布分支将预先存储的第一版本对应的第一代码发送至特性分支;
s2:特性分支根据所述第一代码研制出第二版本的特性,得到对应的测试代码;
s3:第二版本的发布分支根据特性分支发送的测试代码以及生产分支发送的第一版本的补丁代码,测试后得到第二代码;
s4:所述生产分支接收到第二代码,分配第二代码对应的版本号,并将第二代码打包后发送至生产服务器。
本发明还提供了一种软件敏捷开发系统,包括:
第一发送模块,用于第一版本的发布分支将预先存储的第一版本对应的第一代码发送至特性分支;
研制模块,用于特性分支根据所述第一代码研制出第二版本的特性,得到对应的测试代码;
测试模块,用于第二版本的发布分支根据特性分支发送的测试代码以及生产分支发送的第一版本的补丁代码,测试后得到第二代码;
打包模块,用于所述生产分支接收到第二代码,分配第二代码对应的版本号,并将第二代码打包后发送至生产服务器。
本发明的有益效果为:
相对于gitflow敏捷开发流程,存在上一版本的bug传递到下一版本中,而增加维护成本的问题,本发明去除开发分支,通过将生产分支上的补丁代码发送至第二版本的发布分支,同时特性分支将研制出的第二版本对应的测试代码发送至第二版本的发布分支,第二版本的发布分支根据补丁代码和测试代码进行测试得到第二代码,并发送至生产分支,以使得生产服务器对新版本进行发布,通过上述方法将补丁代码和新版本的测试代码均发送至第二版本的发布分支进行测试,有效解决了旧版本容易将bug传递到新版本的问题,同时本发明无需开发分支,使敏捷开发流程更简单,提高了软件敏捷开发的效率,降低了用户的使用及后期维护的成本。
附图说明
图1为根据本发明背景技术中的软件敏捷开发流程的示意图;
图2为根据本发明实施例的一种软件敏捷开发方法的数据流图;
图3为根据本发明实施例的一种软件敏捷开发方法主要步骤示意图;
图4为根据本发明实施例的一种软件敏捷开发系统的结构示意图;
标号说明:
1、第一发送模块;2、研制模块;3、测试模块;4、打包模块;5、检测模块;6、创建模块;7、第二发送模块;8、修复模块;9、第三发送模块;
10、第四发送模块;11、分配模块。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
本发明最关键的构思在于:第二版本的发布根据特性分支发送的测试代码以及生产分支发送的第一版本的补丁代码,测试后得到第二代码,并将第二代码发送至生产分支。
请参照图2至图3,本发明提供了一种软件敏捷开发方法,包括以下步骤:
s1:第一版本的发布分支将预先存储的第一版本对应的第一代码发送至特性分支;
s2:特性分支根据所述第一代码研制出第二版本的特性,得到对应的测试代码;
s3:第二版本的发布分支根据特性分支发送的测试代码以及生产分支发送的第一版本的补丁代码,测试后得到第二代码;
s4:所述生产分支接收到第二代码,分配第二代码对应的版本号,并将第二代码打包后发送至生产服务器。
从上述描述可知,本发明去除开发分支,通过将生产分支上的补丁代码发送至第二版本的发布分支,同时特性分支将研制出的第二版本对应的测试代码发送至第二版本的发布分支,第二版本的发布分支根据补丁代码和测试代码进行测试得到第二代码,并发送至生产分支,以使得生产服务器对新版本进行发布,通过上述方法将补丁代码和新版本的测试代码均发送至第二版本的发布分支进行测试,有效解决了旧版本容易将bug传递到新版本的问题,同时本发明无需开发分支,使敏捷开发流程更简单,提高了软件敏捷开发的效率,降低了用户的使用及后期维护的成本。
进一步的,所述s3之前还包括:
所述生产服务器检测所述第一版本是否存在bug;
若存在,则创建修复分支;
所述生产分支发送第一代码至所述修复分支;
所述修复分支对bug修复完成后,得到补丁代码;
所述修复分支发送补丁代码至生产分支;
所述生产分支发送所述补丁代码至第二版本的发布分支。
从上述描述可知,通过上述方法能够确保当前版本的bug得到有效解决,同时避免了当前版本的bug传递到下一版本,降低了后期维护成本。
进一步的,“所述生产分支发送所述补丁代码至第二版本的发布分支”之后还包括:
所述生产分支分配所述补丁代码对应的补丁版本号,并将所述补丁代码打包后发送至生产服务器。
从上述描述可知,通过上述方法,使系统中软件第一版本的bug得到有效解决。
进一步的,所述s3具体为:
所述第二版本的发布分支接收特性分支发送的测试代码,以及接收生产分支上发送的补丁代码;
根据所述补丁代码更新所述测试代码,得到更新后的代码;
调试所述更新后的代码;
调试成功后得到所述第二代码。
从上述描述可知,通过上述方法,能够确保得到的第二代码的正常运行,同时使得第二版本解决了第一版本的bug的问题。
进一步的,“测试后得到第二代码”之前还包括:
当所述第二版本的发布分支接收到特性分支发送的测试代码后,检测是否接收到补丁代码;
若未接收到,测试所述测试代码;
若接收到,则通过补丁代码更新所述测试代码后进行测试。
从上述描述可知,通过上述方法缩短了软件版本的更新周期,当一有新版本的测试代码时,则立即更新。
请参照图4,本发明提供了一种软件敏捷开发系统,包括:
第一发送模块1,用于第一版本的发布分支将预先存储的第一版本对应的第一代码发送至特性分支;
研制模块2,用于特性分支根据所述第一代码研制出第二版本的特性,得到对应的测试代码;
测试模块3,用于第二版本的发布分支根据特性分支发送的测试代码以及生产分支发送的第一版本的补丁代码,测试后得到第二代码;
打包模块4,用于所述生产分支接收到第二代码,分配第二代码对应的版本号,并将第二代码打包后发送至生产服务器。
进一步的,所述的一种软件敏捷开发系统,还包括:
检测模块5,用于所述生产服务器检测所述第一版本是否存在bug;
创建模块6,用于若存在,则创建修复分支;
第二发送模块7,用于所述生产分支发送第一代码至所述修复分支;
修复模块8,用于所述修复分支对bug修复完成后,得到补丁代码;
第三发送模块9,用于所述修复分支发送补丁代码至生产分支;
第四发送模块10,用于所述生产分支发送所述补丁代码至第二版本的发布分支。
进一步的,所述的一种软件敏捷开发系统,还包括:
分配模块11,用于所述生产分支分配所述补丁代码对应的补丁版本号,并将所述补丁代码打包后发送至生产服务器。
进一步的,所述的一种软件敏捷开发系统,所述测试模块包括:
接收单元,用于所述第二版本的发布分支接收特性分支发送的测试代码,以及接收生产分支上发送的补丁代码;
第一更新单元,用于根据所述补丁代码更新所述测试代码,得到更新后的代码;
调试单元,用于调试所述更新后的代码,调试成功后得到所述第二代码。
进一步的,所述的一种软件敏捷开发系统,所述测试模块包括:
判断单元,用于当所述第二版本的发布分支接收到特性分支发送的测试代码后,检测是否接收到补丁代码;
测试单元,用于若未接收到,测试所述测试代码;
第二更新单元,用于若接收到,则通过补丁代码更新所述测试代码后进行测试。
请参照图2至图3,本发明的实施例一为:
本发明提供了一种软件敏捷开发方法,包括以下步骤:
生产服务器检测第一版本是否存在bug;若存在,则创建修复分支;所述生产分支发送第一代码至所述修复分支;所述修复分支对bug修复完成后,得到补丁代码;所述修复分支发送补丁代码至生产分支;所述生产分支发送所述补丁代码至第二版本的发布分支;
所述生产分支分配所述补丁代码对应的补丁版本号,并将所述补丁代码打包后发送至生产服务器;
第一版本的发布分支将预先存储的第一版本对应的第一代码发送至特性分支;
特性分支根据所述第一代码研制出第二版本的特性,得到对应的测试代码;
第二版本的发布分支根据特性分支发送的测试代码以及生产分支发送的第一版本的补丁代码,测试后得到第二代码;
“第二版本的发布分支根据特性分支发送的测试代码以及生产分支发送的第一版本的补丁代码,测试后得到第二代码”具体为:
所述第二版本的发布分支接收特性分支发送的测试代码,并判断是否接收到生产分支发送的补丁代码;
若未接收到,对所述测试代码进行测试;
若接收到,则通过补丁代码更新所述测试代码,得到更新后的代码;测试所述更新后的代码;
上述测试完成后得到第二代码;所述第二版本的发布分支发送所述第二代码至生产分支。
所述生产分支接收到第二代码,分配第二代码对应的版本号,并将第二代码打包后发送至生产服务器。
请参照图4,本发明的实施例二为:
所述生产服务器通过检测模块检测所述第一版本是否存在bug,并将检测结果发送至创建模块;根据检测结果判断是否存在bug,若存在,通过创建模块创建修复分支;第二发送模块用于所述生产分支发送第一代码至所述修复分支;所述修复分支通过修复模块对bug修复完成后,得到补丁代码,并将补丁代码发送至第三发送模块;所述修复分支通过第三发送模块发送补丁代码至生产分支;所述生产分支通过第四发送模块发送所述补丁代码至第二版本的发布分支;第一版本的发布分支通过第一发送模块将预先存储的第一版本对应的第一代码发送至特性分支;特性分支通过研制模块,并根据所述第一代码研制出第二版本的特性,得到对应的测试代码;第二版本的发布分支通过测试模块,并根据特性分支发送的测试代码以及生产分支发送的第一版本的补丁代码,测试后得到第二代码;所述生产分支通过打包模块,接收到第二代码,分配第二代码对应的版本号,并将第二代码打包后发送至生产服务器。
综上所述,本发明去除开发分支,通过将生产分支上的补丁代码发送至第二版本的发布分支,同时特性分支将研制出的第二版本对应的测试代码发送至第二版本的发布分支,第二版本的发布分支根据补丁代码和测试代码进行测试得到第二代码,并发送至生产分支,以使得生产服务器对新版本进行发布,通过上述方法将补丁代码和新版本的测试代码均发送至第二版本的发布分支进行测试,有效解决了旧版本容易将bug传递到新版本的问题,同时本发明无需开发分支,使敏捷开发流程更简单,提高了软件敏捷开发的效率,降低了用户的使用及后期维护的成本。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。