嵌入式软件开发的开发过程和技术往往落后于一般软件行业。即使在今天,通用软件行业已经采用构建管道、持续集成和测试工具,而通用嵌入式行业似乎没有意识到这些流程的存在,开发更复杂的构建管道会对嵌入式软件开发生命周期产生巨大影响。让我们看看嵌入式开发人员如何创建自己的构建管道。

构建管道概述

开发更复杂的构建管道会对嵌入式软件开发生命周期产生巨大影响。例如,在软件产品的整个生命周期中,经过深思熟虑的构建管道可以:

提高软件质量

减少调试时间

降低项目成本

提高按时完成任务的能力

简化软件部署过程

软件构建管道只不过是用于管理、测试和部署应用程序的过程和工具。例如,嵌入式软件开发人员通常会将他们的软件提交到修订控制系统,手动测试他们的代码,然后发布可以手动部署到他们的系统的应用程序映像。这个构建管道非常传统,但它缺乏现代构建管道可以提供的复杂性和自动化。

嵌入式开发人员可以利用的更现代的构建管道由四个阶段组成,这些阶段可以完全自动化和手动启动。这些阶段包括:

提交软件(手动触发)

构建和分析(自动化)

测试和报告(自动化)

部署(自动或手动)

每个阶段都有自己的流程和与之关联的工具,但最后三个阶段都可以作为持续集成/持续部署流程 (CI/CD) 的一部分来完成。CI/CD 背后的想法是,开发人员可以在一天结束时将他们的代码提交到存储库,然后启动一系列自动构建、度量和测试,这些可以在第二天或一切顺利的情况下为开发人员提供反馈,自动将固件部署到现场设备。此过程的概述和所涉及的一般工具如下图所示:

请注意,此图由两部分组成,上半部分描述所遵循的过程,下半部分描述所涉及的工具。测试和报告阶段与部署阶段之间也存在障碍。除了所有的测试用例之外,软件只有在通过了所有的构建和分析标准时才应该被部署。如果任何构建或测试用例产生警告或错误,则可以将此反馈报告给嵌入式开发人员,这会触发对软件的更新,然后是新的提交,然后再次启动自动化阶段。

增强嵌入式软件构建管道

创建自动化构建管道不会一蹴而就。研究正确的工具、实施它们、测试过程,然后培训工程师如何正确使用它需要时间,那么如何去增强他们的软件构建管道呢?

首先,确保你拥有健全的修订控制流程非常重要。当今大多数团队都使用版本控制,与几年前相比,这是一个很大的改进,但许多团队都会提到他们每周只提交一次代码,甚至更少。软件应该以足够小的块开发,代码每天至少提交一次,如果不是一天几次的话,这样会让管道更频繁地提供反馈。

其次,你需要实现一个持续集成服务器。嵌入式软件开发人员也可以使用的最流行的之一是 Jenkins(尽管还有其他的)。持续集成服务器旨在自动构建和部署软件,你会发现通常有许多集成可用于自动化几乎任何你可能想要的东西。

第三,嵌入式开发人员需要确保自己的编译器和静态代码分析工具可以通过命令行界面执行,或者它们包含用于自己的持续集成服务器的插件。如果没有静态代码分析工具怎么办? 静态代码分析是软件开发过程中的重要一步,现在是寻找分析的好时机。

第四,也许最困难的是选择测试工具并将其集成到开发过程中。自动化测试非常适合回归测试和验证软件,但它们确实需要将测试设计和实施作为开发过程的一部分。不完全测试软件的自动化测试可能会在软件中留下漏洞,并导致部署质量低于预期。出于这个原因,如果可能的话,应该从一开始就开发测试工具,并将其集成到像测试驱动开发 (TDD) 这样的过程中。

最后,你不必一次完成所有这些操作,增强构建管道可以分步完成,从上述每个步骤开始,一次一个地构建你的工具链和流程。一旦每个阶段都坚如磐石,就可以添加它,直到你最终拥有一个现代化的构建管道,该管道可以完全自动化你的构建、测试和部署。

结论

嵌入式软件构建管道的现代化可以为嵌入式开发团队和整个业务带来很多好处。就像任何流程一样,为嵌入式系统开发正确构建现代构建管道需要时间和预算投资,以构建和实施管道。现代构建管道可以帮助阐明前进的道路、监控软件质量甚至简化软件更新。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部