智能汽车车用基础软件平台关联技术
(2) 代码管理
代码管理是 CI/CD 流程中不可或缺的一部分,代码管理包含了版本管理和代码审核两部分,版本管理方式决定了是否能够实践 CI/CD 以及 CI/CD 的实践策略。目前比较常用的版本管理工具有 GIT、SVN、 RTC 等,这些工具可以方便 CI 针对不同的分支和版本制定不同的集成和检查策略。如图 4.4-6 所示,在代码管理部分,目前比较主流的做法是:针对不同的分支和主干,采用不同的策略,包括触发策略和审 查策略。
· 在触发策略上,对于个人分支,可以采用提交触发的方式,即该分支上每次的提交都会触发检查, 主要检查本次提交的代码本身有没有问题;而在集成分支上,一般则采用定时触发或合并触发方式, 即设定固定的触发时间或每次有新的合并时才去检查,这部分则主要检查本次合并过来的代码是 否会对原来的代码造成影响。
· 在审查策略上,同样建议按分支来划分,对于个人分支部分,主要进行代码本身的静态、动态测试等;而对于集成分支,除了静态、动态的测试,往往还需要集成测试、系统测试等。当然,在代码集成时,除了自动化的测试审查外,还建议引入人工审查,以最大程度保证代码的质量。
图4.4-6代码管理
目前,市面上也有很多基于GIT 的优秀工具,比如Github、Gitlab、Gerrit 等,这些工具集成了版本管理、代码审核等基本功能。有了这些工具,再配合合适的分支模式(主干开发模式、Git-Flow 模式、Github- Flow 模式、Gitlab-Flow 模式等),即可方便地支撑 CI/CD 流程。
(3) 静态检查
代码静态检查可以在不需要代码运行的情况下,基于源代码层面,对源代码使用规则进行分析和检查, 这可以有效的提高代码质量。一些优秀的工具可以深入到代码程序的逻辑检查、内存使用情况的检查甚至更高层面的检查,可以有效地提高代码的安全性、健壮性和运行性能。
代码静态检查环节是持续集成中最常做的以及最容易实现的环节。在该环节,一般输入源代码以及检查规则,即可完成自动化的检查。而在该环节,我们还应该关注代码需要满足哪些规则,以及为何需要满足这些规则,以此来提高开发工程师的开发能力。
在通常使用的静态解析工具中,开源的有 Cppcheck、Cpplint,、Findbugs、Spotbugs 等,商用的有 QAC、Klocwork 等。对于一些功能安全件,有代码质量的要求,静态代码检查规则需要满足车载行业检查标准,常见的标准有 Misra C,Misra C++,对于安全编码层面,常用的标准有 Cert C,Cert C++, Cert Java 标准。商用软件能够覆盖目前的大部分检查规则。如下图 4.4-7 所示为商用软件QAC 的界面。
图4.4-7 静态代码解析工具QAC界面
自动化集成本质上是一个自动编译和打包的验证过程,借助软件开发时使用的编译和打包工具,对源代码进行编译、链接、打包,提前发现代码编译过程中的编写问题、链接过程中的依赖问题、打包过程中的配置等问题。
在汽车行业中,不同的目标平台往往需要不同的编译器,这也导致了编译器工具非常多,如常用的HighTec、Tasking、Greenhills 等。同时,车载软件的复杂性也导致了编译环境非常复杂。在持续集成(CI) 中,编译过程的自动化是可以比较轻松地去实现的,而复杂的编译环境适配才是持续集成(CI)在车载 软件编译环节中需要重点关注的事情。
-
汽车测试网V课堂
-
微信公众号
-
汽车测试网手机站
编辑推荐
最新资讯
-
燃油车经济性试验综述
2024-11-27 07:57
-
L3不是冗余备份,L3是体系安全。
2024-11-27 07:42
-
谱尼集团河南总部大厦落成并正式入驻运营
2024-11-26 21:30
-
谱尼测试集团山东区域总部大厦落成仪式圆满
2024-11-26 21:26
-
一图读懂丨谱尼测试2024年半年度报告
2024-11-26 21:25