首页> 中国专利> 一种面向嵌入式高安全软件的持续集成方法

一种面向嵌入式高安全软件的持续集成方法

摘要

本发明涉及一种面向嵌入式高安全软件的持续集成方法,其特征在于,兼顾嵌入式软件研发高效与安全的持续集成流水线设计,包含开发和测试两条流水线,开发流水线由开发人员执行,包含环境检测,代码构建,代码静态分析,代码自测试以及结果反馈,测试流水线由第三方测试人员执行,包含环境检测,代码三方测试以及结果反馈,开发流水线和测试流水线之间包含代码审查的人工环节。本发明通过合理的持续集成流水线设计,兼顾了嵌入式软件研发的高效与安全,高效体现在测试介入之前引入代码静态分析环节,从而尽可能早的通过工具暴露问题,安全体现在强化对研发环境的正确性管理,以及全方位的代码质量保证措施。

著录项

  • 公开/公告号CN112527380A

    专利类型发明专利

  • 公开/公告日2021-03-19

    原文格式PDF

  • 申请/专利号CN202011397876.6

  • 申请日2020-12-04

  • 分类号G06F8/71(20180101);G06F11/36(20060101);

  • 代理机构11008 中国航空专利中心;

  • 代理人陆峰

  • 地址 610091 四川省成都市青羊区日月大道1610号成都飞机设计研究所计划发展部

  • 入库时间 2023-06-19 10:19:37

说明书

技术领域

本发明属于高安全软件研发集成方法。

背景技术

传统的嵌入式软件开发模式,团队开发成员将代码开发完成后才进行集成,集成过程很容易出现问题,且问题很难排查。持续集成技术是一种软件开发实践,鼓励团队开发人员经常集成他们的工作,每次集成都通过自动化的流水线(包括代码构建、代码测试等)来验证,从而可以尽早发现并修正集成问题,确保每次集成都会生成稳定的版本。

持续集成技术在互联网行业得到了广泛的应用,在嵌入式软件领域应用较少,尤其是嵌入式高安全软件领域。原因在于互联网行业通常采用测试驱动开发模式,开发人员同时负责代码开发与测试,便于持续集成流水线的设计。而嵌入式高安全软件开发强调测试人员的独立性,开发人员和测试人员必须属于不同的团队。此外,嵌入式高安全软件研发需要消除需求理解的二义性,且对开发/测试环境,代码质量,以及测试项目都有严格的规定,现有的持续集成技术无法直接应用。

发明内容

发明目的

提供一种适用于嵌入式高安全软件的持续集成方法,持续集成流水线的设计在确保高效的同时,着重考虑安全因素,确保研发环境的正确性,消除需求理解的二义性,以及确保测试人员的独立性。

发明技术解决方案

本发明的实施包括以下步骤:

1)建立Git分布式版本控制系统,其分支管理策略如下:一是,Master分支,主版本分支,管理代码的主版本变更;二是,Develop分支,主开发分支,管理所有的需求变更代码,代码需要开发流水线执行成功,并且通过领域内专家代码审查;三是,Test分支,三方测试分支,存放第三方测试人员编写的测试用例;四是,Feature分支,功能分支,每一条需求变更对应一个Feature分支,Feature分支根据应根据需求变更ID创建,以建立与需求变更的关联。

2)开发人员从需求管理平台获取需求变更;

3)开发人员根据需求变更更改代码,并编写自测试用例,用于验证代码变更运行符合开发人员预期;

4)开发人员提交更改代码和自测试用例至Git版本管理服务器对应需求变更的Feature分支。

5)持续集成平台管理并执行持续集成的开发流水线,开发流水线基于Git的Feature分支,包含以下步骤:

5.1)对持续集成开发流水线涉及的开发环境的正确性进行检测,确保开发环境的正确性,可采取工具版本匹配性检测,或直接从特定配置管理仓库中检出最新的开发工具脚本的方法;

5.2)从Git版本管理服务器的对应需求变更的Feature分支检出代码和自测试用例;

5.3)执行代码构建操作,如果代码构建过程中报出警告或错误,中止开发流水线执行;

5.4)采用cppCheck等代码检查工具对代码进行静态扫描,如果代码扫描出问题,中止开发流水线执行;

5.5)执行自测试用例,如果自测试用例执行报出警告或错误,中止开发流水线执行;

5.6)无论开发流水线执行成功与否,均需要反馈开发流水线执行结果。

6)如果步骤5)的开发流水线每个环节均执行成功,提交变更代码至领域内专家进行人工审查,如果人工审查不通过,在需求管理平台记录审查问题单;如果人工审查通过,将Git版本管理服务器对应需求变更的Feature分支合并入Develop分支;

7)第三方测试人员编写测试用例,并提交测试用例至Git版本管理服务器的Test分支,根据不同的安全等级,测试可能包含单元测试,部件测试和配置项测试;

8)持续集成平台管理并执行持续集成的测试流水线,测试流水线基于Git的Develop分支和Test分支,包含以下步骤:

8.1)对持续集成测试流水线涉及的测试环境的正确性进行检测,确保测试环境的正确性,可采取工具版本匹配性检测,或直接从特定配置管理仓库中检出最新的测试工具脚本的方法;

8.2)根据安全等级要求,执行单元测试、部件测试和配置项测试;

8.3)无论测试流水线执行成功与否,均需要反馈测试流水线执行结果。

积极效果

本发明通过合理的持续集成流水线设计,兼顾了嵌入式软件研发的高效与安全,高效体现在测试介入之前引入代码静态分析环节,从而尽可能早的通过工具暴露问题,安全体现在强化对研发环境的正确性管理,以及全方位的代码质量保证措施,包括代码静态分析、代码自测试、领域内专家代码审查以及第三方测试。

附图说明

图1一种面向嵌入式高安全软件的持续集成方法示意图。

具体实施方式

以图1所示的示例详细说明具体实施方式。

前提操作:

1)创建Git分布式版本控制系统,创建主版本Master分支、主开发Develop分支和第三方测试Test分支;

2)基于Jenkins持续集成管理平台设置开发流水线,流水线环节涵盖开发环境检测、代码构建、代码静态分析、代码自测试和结果反馈;

3)基于Jenkins持续集成管理平台设置测试流水线,流水线环节涵盖测试环境检测、代码三方测试和结果反馈。

需求变更流程:

1)系统人员下发新的变更需求,并录入到需求管理平台,假设需求编号为REQ001;

2)软件开发人员在需求管理平台接收到需求编号为REQ001的新增需求;

3)软件开发人员请求在Git版本管理服务器上创建Feature-REQ001的功能分支;

4)软件开发人员从Git版本管理服器上克隆Feature-REQ001分支,根据需求REQ001开始编码,并编写自测试用例(用于验证所写代码运行符合开发人员自身预期);

5)软件开发人员提交变更代码和自测试用例至Git版本管理服务器上的Feature-REQ001分支;

6)软件开发人员基于Feature-REQ001分支执行开发流水线,假设各流水线环节执行均成功,无警告或错误报出;

7)软件开发人员提交领域内专家进行代码审查,从第三方角度确保开发人员对需求理解的正确性,假设领域内专家认定开发人员提交的代码实现与需求一致;

8)软件开发人员发起分支合并请求,将Feature-REQ001的分支合并至主开发分支Develop分支;

9)第三方测试人员监测到Develop分支新增合并,根据软件安全等级开展测试用例编写工作,编写完成后提交至Test分支;

10)第三方测试人员基于Develop分支(被测代码)和Test分支(测试用例),执行测试流水线,假定变更部分的测试用例执行出错,第三方测试人员在需求管理平台创建问题单;

11)软件开发人员接收到问题单后,根据问题单修改代码和自测试用例,执行步骤5)-步骤8);

12)第三方测试人员监测到Develop分支新增合并,根据软件安全等级开展测试用例编写工作,编写完成后提交至Test分支;

13)第三方测试人员基于Develop分支(被测代码)和Test分支(测试用例),执行测试流水线,假定所有变更部分的测试用例均执行成功,至此需求REQ-001的持续集成任务完成。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号