prod分支
- 用途
- 这是用于部署到生产环境的代码分支。生产环境是软件实际运行并为最终用户提供服务的环境,如一个电商网站为顾客提供购物服务的服务器环境。
prod
分支上的代码应该是经过严格测试(包括单元测试、集成测试、用户验收测试等),具有稳定性和可靠性,能够满足用户需求并且不会出现严重的错误。
- 这是用于部署到生产环境的代码分支。生产环境是软件实际运行并为最终用户提供服务的环境,如一个电商网站为顾客提供购物服务的服务器环境。
- 与其他分支的关系
- 它通常是从开发(
dev
)分支或者测试(test
)分支合并而来。开发人员在开发分支(dev
)上进行功能开发、代码优化等操作。当开发工作达到一定阶段,例如完成了一个或多个功能的开发并且在测试环境(对应测试分支test
)中经过测试验证后,就会将经过测试的代码合并到prod
分支。 - 例如,一个软件开发团队正在开发一个新的用户注册功能。他们首先在
dev
分支上编写代码实现这个功能,包括前端界面的设计和后端数据处理逻辑。然后,将代码部署到测试环境(test
分支对应的环境)进行各种测试,如检查用户输入合法性、数据库数据存储是否正确等。一旦测试通过,就会把test
分支中的这个新功能代码合并到prod
分支,这样生产环境中的软件就可以为用户提供新的用户注册功能了。
- 它通常是从开发(
- 管理策略
- 对
prod
分支的修改通常是非常谨慎的。因为任何对生产分支的改动都可能直接影响到正在使用软件的用户。一般情况下,会有严格的权限控制,只有特定的人员(如运维负责人或者高级开发人员)在经过详细的评估和审批流程后才能够对prod
分支进行操作,例如紧急修复生产环境中出现的严重漏洞。 - 为了确保生产环境的稳定性,还会有版本控制策略与之配合。比如,每次将代码合并到
prod
分支时,会记录版本号,并且对软件的版本更新进行详细的文档记录,包括更新的内容、可能带来的影响等,以便在出现问题时能够快速追溯和解决。
- 对
stg分支
- 用途
- 模拟生产环境测试:
stg
分支用于在一个尽可能接近真实生产环境的环境中进行测试。它的配置和架构通常与生产环境相似,这样可以提前发现一些在测试环境(通常与生产环境有差异)中无法发现的潜在问题,例如,在生产环境中可能会因为服务器负载、网络带宽等因素而出现的性能问题或者配置兼容性问题。 - 客户验收测试(UAT)的主要场所:当开发人员完成功能开发并在开发分支(如
dev
)和测试分支(如test
)中进行了初步测试后,会将代码部署到stg
分支对应的预发布环境。在这里,产品经理、客户代表或者质量保证(QA)团队等可以进行用户验收测试(UAT),从用户的角度来检查软件是否满足需求,功能是否完整、易用等。
- 模拟生产环境测试:
- 与其他分支的关系
stg
分支通常是从dev
或test
分支合并而来。开发人员在dev
分支上进行新功能的开发和代码的初步调试。完成一定阶段的开发后,会将代码合并到test
分支进行系统测试,包括功能测试、性能测试等。当在test
分支测试合格后,就会把代码合并到stg
分支,为预发布环境提供更新后的代码。- 例如,一个移动应用开发团队在
dev
分支上开发了新的支付功能,然后将代码移到test
分支进行测试,确保支付流程在功能上没有问题,并且性能指标(如支付响应时间)符合要求。之后,将代码合并到stg
分支,在预发布环境中,产品经理可以模拟真实用户的使用场景,检查支付功能是否与整个应用的用户体验相匹配,是否符合业务逻辑等。在stg
分支验证通过后,才会考虑将代码合并到prod
(生产)分支。
- 管理策略
- 对
stg
分支的更新通常比prod
分支频繁,但比dev
和test
分支要谨慎。因为它是连接测试和生产的重要环节,需要保证其稳定性和可靠性。在合并代码到stg
分支时,也需要进行一定的质量检查,例如代码审查、自动化测试结果的复查等。 - 为了更好地跟踪和管理
stg
分支上的问题,通常会有专门的问题跟踪系统与之配合。当在stg
预发布环境中发现问题时,可以及时将问题反馈到开发团队,开发人员可以根据问题的严重程度和紧急程度,决定是在stg
分支上直接修复,还是先回退到test
分支进行修复,然后再重新合并到stg
分支。
- 对
sit分支
- 定义与用途
- 在软件开发中,SIT(System Integration Test)分支主要用于系统集成测试。它是一个将各个模块或者子系统的代码集成在一起,验证它们是否能够协同工作,并且满足系统整体功能和非功能需求的分支。
- 例如,在一个大型电商系统中,包括用户管理模块、商品管理模块、订单管理模块等。开发人员分别在不同的开发分支中开发这些模块。当这些模块的开发达到一定阶段后,就会将它们的代码合并到 SIT 分支,在这里对整个电商系统进行集成测试,检查用户是否能够正常登录(用户管理模块),登录后是否能够查看商品(商品管理模块)、添加商品到购物车并生成订单(订单管理模块)等一系列的系统级功能。
- 与其他分支的关系
- SIT 分支通常从开发分支(如
dev
)合并而来。开发人员在dev
分支上进行各个模块的功能开发。一旦各个模块在dev
分支上完成了单元测试并且基本功能稳定,就会将这些模块的代码合并到 SIT 分支进行系统集成测试。 - 与测试分支(如
test
)相比,SIT 分支更侧重于系统级别的集成测试,而test
分支可能还包括一些单元测试的内容或者对单个模块进行更详细的功能测试。SIT 分支的测试结果可以为进一步的测试(如在预发布环境的测试或者用户验收测试)提供基础,帮助发现系统集成方面的问题,如接口不兼容、数据传递错误等。 - 例如,在一个企业资源规划(ERP)软件的开发中,财务模块和库存管理模块在
dev
分支分别开发完成后,合并到 SIT 分支。在 SIT 分支中,通过集成测试发现财务模块和库存管理模块之间的数据交互出现问题,如库存成本核算数据在传递给财务模块时格式错误。这种系统集成问题可以在 SIT 分支中及时发现并反馈给开发人员进行修改。
- SIT 分支通常从开发分支(如
- 管理策略
- 对于 SIT 分支的管理,重点在于确保系统集成测试的有效性。这包括建立完善的测试用例库,覆盖系统的各个功能点和集成场景。在合并代码到 SIT 分支时,需要严格检查每个模块的接口是否符合规范,是否有新的功能变更可能影响系统集成。
- 同时,要对 SIT 分支的测试结果进行详细记录。当发现问题时,能够准确地定位问题所在的模块或者接口,并且及时通知相关开发人员进行修复。一般会有专门的测试团队或者质量保证人员负责 SIT 分支的测试和问题跟踪工作。在 SIT 分支的测试通过后,通常会将代码合并到预发布分支(如
stg
)或者进行进一步的测试环境下的验证。
uat分支
- 定义与用途
- UAT(User Acceptance Testing)分支主要用于用户验收测试。这是软件交付给最终用户之前的最后一道重要测试环节。在这个分支上,软件的功能、用户界面、操作流程等各个方面会从用户的角度进行全面检查,以确保软件能够满足用户的实际需求和期望。
- 例如,对于一个企业内部使用的项目管理软件,UAT 分支对应的测试环境会邀请企业内部的项目经理、项目成员等来实际使用软件。他们会根据日常工作中对项目管理的需求,检查软件是否能够方便地创建项目、分配任务、跟踪进度等。如果软件是面向外部客户的,比如一个电商购物平台,那么在 UAT 分支对应的环境中,会邀请一些典型的客户代表或者通过 beta 测试的方式,让用户来体验购物流程,检查从商品搜索、下单、支付到订单跟踪等一系列环节是否符合用户的期望。
- 与其他分支的关系
- UAT 分支通常是从预发布分支(如
stg
)合并而来。在经过系统集成测试(如在 SIT 分支)和预发布环境测试(如在stg
分支)后,代码被认为在功能和稳定性上达到了一定的水平,然后会被合并到 UAT 分支。它是在更接近真实用户使用场景的环境下对软件进行最后的验证。 - 与开发分支(如
dev
)和测试分支(如test
)相比,UAT 分支更侧重于用户体验和实际业务场景的验证。开发分支主要用于功能开发,测试分支用于各种测试(包括单元测试、集成测试等),而 UAT 分支则是让用户真正参与进来,对软件是否可以投入实际使用进行判定。 - 例如,在开发一款移动办公软件时,开发人员在
dev
分支开发功能,在test
分支进行功能测试和性能测试。之后将代码移到stg
分支进行模拟生产环境的测试。当这些测试都通过后,将代码合并到 UAT 分支,让企业的办公人员实际使用软件,检查是否符合他们日常办公的需求,如文档协作是否方便、会议安排功能是否易用等。
- UAT 分支通常是从预发布分支(如
- 管理策略
- 对于 UAT 分支的管理,重点在于协调用户参与测试和收集反馈。需要建立有效的沟通渠道,让用户能够方便地报告他们在使用过程中发现的问题、提出改进建议。同时,对于用户反馈的问题,要及时进行分类、分析和处理。
- 通常会有专门的团队(如产品管理团队或质量保证团队)负责跟踪 UAT 分支的测试情况。如果用户提出了严重的功能缺陷或者不符合业务需求的情况,可能需要将代码回退到之前的分支(如
stg
或test
)进行修复,然后重新合并到 UAT 分支进行测试。在 UAT 分支测试通过后,软件就可以比较放心地部署到生产(prod
)分支,正式交付给用户使用。
dev分支
- 定义与用途
dev
(development)分支是开发分支,是软件开发过程中的核心分支之一。开发人员主要在这个分支上进行代码的编写、新功能的开发、功能的迭代和优化等工作。它是代码开发的 “主战场”。- 例如,开发一个社交媒体应用,开发人员会在
dev
分支上构建用户注册、登录功能,添加发布动态、评论点赞等功能,以及优化这些功能的性能和用户体验。在这里可以进行各种创意的实现和代码的试验,以达到软件功能不断完善的目的。
- 与其他分支的关系
dev
分支是其他测试分支和发布分支的源头。在完成一定阶段的开发后,代码会从dev
分支合并到其他分支进行不同层次的测试和发布。例如,会将dev
分支的代码合并到测试分支(如test
或SIT
)进行功能测试、性能测试和系统集成测试;合并到预发布分支(如stg
)进行更接近生产环境的测试;合并到用户验收测试分支(如UAT
)让用户参与测试;最终合并到生产分支(prod
)进行正式发布。- 它与生产分支(
prod
)的对比很明显,prod
分支用于稳定运行的生产环境,代码变更谨慎,而dev
分支则是一个活跃的、不断变化的分支,开发人员可以频繁地修改代码,添加新的功能模块或修改现有功能。 - 以一个网页游戏开发为例,开发人员在
dev
分支上快速迭代游戏的新关卡、新角色技能等。当开发到一定程度,将代码合并到测试分支检查这些新功能是否有漏洞,然后逐步经过预发布分支和用户验收测试分支的测试,最后才会将经过验证的代码合并到prod
分支,让玩家在正式的游戏服务器上体验新的内容。
- 管理策略
- 由于
dev
分支的活跃性,良好的代码管理至关重要。通常会采用版本控制系统(如 Git)来管理dev
分支的代码,这样可以方便地记录代码的修改历史、跟踪每个开发人员的工作,并且在出现问题时能够回溯代码。 - 开发团队内部会有代码审查制度,在
dev
分支上开发的代码会经过其他开发人员的检查,以确保代码质量,包括代码的规范性、可读性、可维护性以及是否符合项目的架构设计。同时,开发人员在dev
分支上也要进行单元测试,保证自己编写的代码功能基本正确,为后续的系统测试和集成测试打下基础。
- 由于