探索嵌入式开发工具选择与最佳实践:2023上海国际嵌入式展龙智专访

2023上海国际嵌入式展(embedded world China 2023)上,我们对话了龙智技术专家团队与顾问团队中的三位专家——龙智大规模安全研发技术专家李培、龙智资深DevSecOps顾问巫晓光,以及龙智资深DevSecOps顾问张鼎凯,就嵌入式开发的工具选择、工具链搭建以及加速嵌入式开发的最佳实践展开深入探讨。

上海国际嵌入式展 | 对话龙智专家:如何加速嵌入式软件开发

视频文字实录

对话龙智技术专家与顾问团队

行业洞察

Q:通过与展会现场的客户交流,你有什么感受?

李培:通过与一些客户交流,我发现并不是所有的客户都对行业内好的工具有一个清晰的认知,虽然他们本身有开发经验,或是对于开发项目有管理经验。我认为我们应该与企业加强沟通,把龙智的最佳实践,或是好的做法/工具推荐给他们,帮助他们降低成本、更好地开发。

Q:展会现场前来咨询的客户最迫切的需求是什么?他们目前的在嵌入式开发中有那些值得关注的现状或者问题?

巫晓光:这次嵌入式展,有很多客户前来我们龙智展台咨询。这些客户关注很多产品,首先是静态代码扫描工具。

关注静态代码扫描工具的客户主要分为三类,一类是从没有接触过静态代码扫描工具,对这类工具的工作原理、如何帮助他们解决代码质量问题很感兴趣。二类是稍微接触过静态代码扫描工具,也有合规方面的要求,就会咨询工具是否符合他们所需的代码标准和合规要求。三类是更加了解静态代码扫描工具,他们更关心工具如何集成到流水线中,如何集成到日常应用中,会咨询一些深层次的问题。

张鼎凯:客户主要关心的问题包括龙智的工具如何帮助他们加速嵌入式开发,如何通过工具实现整体开发效率的提升,以及工具能实现哪些功能。

代码质量与合规:静态分析工具的选择

Q:有什么类型的工具对于嵌入式团队很重要?

李培:例如静态代码扫描工具,有一些较大型的厂商已经采用了,但有些厂商因为对此功能的需求不迫切,所以还没有采用。我认为这是国内嵌入式企业应该普遍采用的一类工具,或是一个可以改进的点。

因为嵌入式开发的一大特点是调试Bug困难,出问题后返工代价大。所以在早期编码阶段,利用静态代码扫描工具尽可能地发现代码中隐藏的问题,对大幅降低企业的隐性成本很有帮助。行业以外的人可能不会注意到隐性成本,但工作人员每天忙碌很有可能在做无用功。所以(使用静态代码扫描工具)是一件很必要的事情。

Q:推荐几款适合嵌入式开发的静态代码扫描工具。

李培:Helix QAC是一款老牌静态代码扫描工具,它诞生的初衷是为了满足功能安全的要求(例如汽车行业),偏向于合规性要求。它检查ISO 26262等规则,对兼容性认证提供很好的支持。

Klocwork的编码标准覆盖率不如Helix QAC,但它简单易用,并且支持更多语言。对于大型项目的分析结果都是经过验证的,比如一些巨大的安卓项目,它都能够胜任。

除了这两款以外,还有一款名为SonarQube的静态代码扫描工具。它的优点是受众广,支持的语言更多。但对于嵌入式开发的支持,它不如Helix QAC和Klocwork。所以,我推荐开发Web应用或是互联网应用的企业选择SonarQube。

张鼎凯:Helix QAC和Klocwork这两款产品符合行业的合规标准。Helix QAC主要针对C、C++这两种语言,符合汽车行业的通用标准。以及它也符合MISRA、AUTOSAR这两个汽车行业必备的标准。所以汽车行业客户需要Helix QAC来帮助他们通过合规认证,也需要通过代码检测来帮助他们输出MISRA、AUTOSAR合规报告。Helix QAC能够作为行业的发布标准,帮助他们实现合规的代码发布。

Klocwork支持更多开发语言,同时缺陷扫描能够覆盖更多漏洞,帮助企业在开发早期发现代码的缺陷以及漏洞问题,使代码更合规、更符合行业标准。

这两款工具通过自动化的代码扫描,帮助在开发人员在早期发现问题,早期解决代码上的缺陷、编译错误等,把问题扼杀在摇篮中,帮助他们提高整体开发效率。

Q:哪些行业的客户更青睐使用这几款工具,以及他们的优势在哪里?

张鼎凯:Helix QAC是汽车行业占大头,基本上所有车企都有使用这款产品。Klocwork不限制行业,航空、交通、汽车行业也是占比较大的客群。SonarQube也不限行业,各行各业都能使用。它服务于四万多家企业,涵盖金融、保险等。

一是(Helix QAC和Klocwork)这两款产品推出市场的时间较久,认知度很高。相比较新推出市场的产品,Helix QAC和Klocwork在整个行业中的口碑很好,在市场上占主导地位。市场份额也说明了软件本身受到客户认可的程度。可能同行友商们也在使用这两款产品,所以知名度相较新产品来说更高。

同时,这几款产品也经历了数十年以上的迭代更新,每年都更新新的特性,包括功能、支持的规则等等。通过长期迭代更新,能够帮助客户不断完善软件本身、解决客户新的诉求、紧跟时代的潮流。

可追溯性:版本控制解决方案比较

Q:嵌入式开发中的可追溯性方面,有没有好的实践参考?

李培:可追溯性已经成为了业界常识。从实践方面来说,当对软件或系统做了一个更改时,肯定想知道这个更改的来由、造成的影响等信息。自然而然,这就需要系统来帮助追溯这些信息。这是一个朴素的思想,落地到工具上会有很多选择。

应用较为广泛的是Jira。Jira的优点是插件多,它的基础功能简单,但当客户需要定制功能时,都能寻找到相应的插件来提供支持,甚至您还可以自己开发插件。但这也会成为一个缺点。当插件增多,兼容性、插件管理都会很麻烦。

另外,需求、变更、Bug和测试管理等都可以包含在一个软件中——Helix ALM。这是一款比较传统的软件,它比较“重”,不需要额外安装插件,也可以与版本控制工具Helix Core、包含在芯片开发里的IPLM很好地集成。相当于两个流派,但殊途同归,都能起到很好的效果。

Q:嵌入式开发中的版本控制方面,有没有好的实践参考?

李培:今天参加的嵌入式展,可以看到有很多板卡,当然也有软件。板卡会涉及到硬件设计,芯片(晶元片)也是从设计出发的。不管是代码、硬件设计、板卡设计、芯片设计等都是属于公司的数字资产,更通俗地说就是文件。对于IT企业来说,这些就是他的命脉。

每天这么多员工上班,工作到下班时间,今天完成了一个文档、完成了一个设计、修改了一个bug、改了几行代码……这就是整个企业的所有输出。这些资产都需要一个好的系统帮助管理。

第一,实现版本化。必须要有版本,显示文件的来龙去脉和变更历史,这样才能实现更好地追溯。

第二,要有权限控制。要限制哪些人能访问、哪些人不能访问,不应该访问的人就不能访问。限制是一方面,共享也是一方面。当企业规模扩张后,会拥有很多部门。每个部门都造一个轮子,就可能没有沟通。这样看着很忙,实际上对公司造成了巨大的浪费。

另外,在全球化的浪潮下,跨国协作越来越频繁。这时就需要考虑分布式环境的使用效率。每天自动构建的任务也很多,这实际上就是从版本控制系统中取得数据、加工数据,然后再返回数据的流程。当这个流水线很少的时候,可能不是问题。但一旦流水线增加,时间要求苛刻,或是数据量巨大的情况下,对于数字资产管理系统造成了巨大的压力。

这时,你需要的是一个高度可伸缩、可扩展、强壮、稳定且安全的版本控制系统,比如Perforce Helix Core,作为整个公司的发动机,或者说是中央仓库。它能够保存所有的数字资产,并且在公司内实现高效、无阻且安全的共享。

Q:通过与展会现场的客户交流,你认为他们对版本控制软件的认知如何?

巫晓光:经过交流,我感觉运用开源工具(Git、SVN等)的客户更多。但这些客户也会抱怨说遇到一些问题,例如当数据量大时,提交很慢的问题。还有一些客户提到,他们的分支管理不可控。另外一些客户提到,他们需要更高的安全性,希望权限管理提升到文件级别。

Git和SVN的弱项就是Perforce Helix Core的强项所在。它能够很好地处理大文件、大数据,并且它拥有一个图形化的界面来展示分支之间的关系。另外,Perforce Helix Core提供受控的分支合并策略。其权限管理也非常灵活,可以细化到文件级别。权限控制也是如此,可以通过组的方式,将权限下放给真正了解项目的人,而不是并不了解项目、只管理系统的IT人员。

开发效率:自动化测试工具探索

Q:嵌入式开发行业应当如何应用自动化测试工具?

李培:对于嵌入式开发来说,自动化测试工具的应用没有这么容易。因为嵌入式开发中有很多实施性要求高的协议,有别于互联网行业的协议。它的内容是经过严格审核的,经过编码和一些更底层的协议来传输的。

TestComplete主要用于UI测试,包括桌面程序、web应用和APP应用。很多嵌入式客户认为,没有界面就用不上这款工具,其实不然,还是有使用场景的。嵌入式开发也存在一些操作界面,或是有些公司为测试专门做了上位机的软件。当用上位机软件跑一个复杂的流程时,就可以使用TestComplete(UI自动化测试工具)。

Ready API主要是测试web service类型的接口,在偏底层、偏实施应用的嵌入式开发中可能使用不到,但是对于时效性没那么高的,例如智能家居等需要与中心服务器通讯的产品来说,如果其应用协议(例如SOAP等web service协议)在Ready API支持范围内,就可以使用Ready API进行性能测试、功能测试和安全测试。

Q:介绍一下TestComplete这款UI自动化测试工具的特点。

巫晓光:首先,TestComplete支持多平台。因为现在产品平台越来越多样化,包括web端、pc端、手机移动端甚至工业设备等,都需要工具能够支持。其次,它还支持多种技术框架。现在的技术框架也是层出不穷,自动化测试工具一定要支持多平台、多框架。再者,TestComplete的对象识别能力非常强。众所周知,自动化测试工具经常被诟病的地方就是对象识别能力弱,很多对象无法识别、定位,需要手工修改脚本来适配。而且,当对空间的属性进行修改后,原来录制的脚本无法重放,无法识别对象了。这时就需要重新修改脚本,效率就会有所降低。这就是TestComplete可以发挥作用的地方。

关于龙智

Q:您认为龙智提供的嵌入式开发解决方案有什么优势或独特之处?

李培:龙智是本土服务商,在语言和实时性上有明显优势。如果选择国外的供应商,就会面临语言障碍和时差问题。

另外,龙智积累了多年的客户服务经验,能够将已有客户的经验应用在新客户上,帮助新客户少走弯路。

龙智始终秉承着把世界上最好的工具引入中国这一理念,并为客户提供本土化的优质服务,这就是我们最大的优势。

张鼎凯:龙智长期深耕软件解决方案领域,我们不单单有这两款产品,还为企业提供一个综合的解决方案,提供从开发早期、中期到后期运维的全生命周期的软件产品。

所以客户更看中龙智提供整体解决方案的能力,以及龙智的开发能力。龙智的开发团队能够帮助他们定制化开发,让他们在购买软件的同时,实现与其他软件的联动开发、自动化等需求,个性化定制满足客户的不同诉求。

这次龙智主要带来了适用于嵌入式开发的工具。例如静态代码测试工具Helix QAC和Klocwork,自动化测试工具ReadyAPI和TestComplete,还有开发的版本管理、生命周期管理和IP管理:Helix Core、Helix ALM和Methodics IPLM。

关于上海国际嵌入式展

Q:简单说说您对本届上海国际嵌入式展的感受。

李培:这次展会的展商应该都是我们的潜在客户。因为龙智专属于软件工具链的构建,其他展商的思路或工作都偏硬件一些。但所有的硬件都必须有软件才能发挥作用。这时,龙智成熟、先进、快速的方法和经验,也能够移植到嵌入式开发中。

张鼎凯:这个展会在今年是第一次从德国走向世界。很荣幸中国成为第一站,后续可能在北美踏出它的第二站。但选择中国作为第一站,可见它十分重视中国市场,认为这里有更多的商机与机遇。

龙智有幸参加此次展会,在此也遇到了很多同行或是嵌入式领域的行业巨头。通过软硬件企业的相互交流,idea摩擦碰撞,能够激发创新,帮助整个行业良性发展。

 

你可能感兴趣的:(人工智能,大数据,运维)