与龙智技术专家和顾问团队就行业洞察对话的视频记录
Q:在展会上跟客户交流后您有什么感受?

李培:通过和一些客户的交流,我发现并不是所有的客户,即使有开发经验或者开发项目的管理经验,都对行业内好的工具有清晰的认识。我觉得应该加强和企业的沟通,把DragonSmart的最佳实践或者好的实践/工具推荐给他们,帮助他们降低成本,更好地发展。
Q:展会上前来咨询的客户最迫切的需求是什么?他们在嵌入式开发中面临的现状或问题有哪些值得关注?
吴晓光:这次嵌入式博览会,有很多客户来到我们龙智的展位进行咨询,这些客户对很多产品都感兴趣,其中第一个感兴趣的就是静态代码扫描工具。
对静态代码扫描工具感兴趣的客户可以分为三类,第一类是以前没有用过静态代码扫描工具,非常感兴趣的是这些工具的工作原理以及它们如何帮助他们解决代码质量问题。第二类是之前对静态代码扫描工具有过一些使用经验,并且有合规性需求,因此会询问这些工具是否符合自己需要的代码标准和合规性要求。第三类是对静态代码扫描工具比较了解,比较关心如何将这些工具融入到流水线中,如何将它们融入到日常应用中,会询问一些比较深入的问题。
张定凯:客户关心的主要问题包括龙智的工具如何帮助他们加速嵌入式开发、如何通过工具提高整体开发效率、工具可以实现哪些功能等。
代码质量和合规性:选择静态分析工具
问:哪些类型的工具对于嵌入式团队很重要?
李培:比如静态代码扫描工具已经被一些比较大的厂商采用了,但也有厂商因为对这个功能没有迫切的需求所以没有采用。我觉得这是国内嵌入式公司应该广泛采用的一类工具,或者说是可以改进的一点。
因为嵌入式开发的一大特点就是很难调试bug,出现问题之后返工成本很高。所以在早期编码阶段,使用静态代码扫描工具尽可能的发现代码中隐藏的问题,对于大幅降低企业的隐性成本非常有帮助。行业外的人可能注意不到这些隐性成本,但工作人员很可能每天都在忙着做无用功。所以(使用静态代码扫描工具)是非常有必要的事情。
Q:推荐几款适合嵌入式开发的静态代码扫描工具。
李培:Helix QAC 是一款老牌的静态代码扫描工具,最初是为了满足功能安全(比如汽车行业)的需求而设计的,偏向合规性要求,可以检查 ISO 26262 等规则,对兼容性认证有很好的支持。
Klocwork 的编码标准覆盖率不如 Helix QAC,但使用简单,支持语言较多,对于大型项目的分析结果也得到了验证,比如一些超大型的 Android 项目,Klocwork 可以胜任。
除了这两款,还有一款名为 SonarQube 的静态代码扫描工具,它的优点是受众广泛,支持语言较多,但对嵌入式开发的支持不如 Helix QAC 和 Klocwork,因此我建议开发 Web 应用或互联网应用的公司选择 SonarQube。
张定凯:Helix QAC 和 Klocwork 都符合业界的合规标准。Helix QAC 主要针对 C、C++ 两种语言,符合汽车行业的通用标准,同时满足汽车行业必不可少的两项标准 MISRA 和 AUTOSAR。因此,汽车行业客户需要 Helix QAC 帮助他们通过合规认证,也需要代码测试帮助他们输出 MISRA 和 AUTOSAR 合规报告。Helix QAC 可以作为业界的发布标准,帮助他们实现合规代码发布。
Klocwork支持更多的开发语言,缺陷扫描可以覆盖更多的漏洞,帮助企业在开发早期发现代码缺陷及漏洞问题,使得代码更加合规,更符合行业标准。
这两款工具通过自动化代码扫描,帮助开发人员及早发现问题,解决代码缺陷、编译错误等,将问题消灭在萌芽状态,帮助开发人员提升整体开发效率。
问:哪些行业的客户喜欢使用这些工具,它们的优势是什么?
张定凯:Helix QAC 是汽车行业使用的,几乎所有车企都在用这个产品。Klocwork 不局限于任何行业,航空、交通、汽车行业也占了很大比例的客户。SonarQube 也不局限于任何行业,各行各业都可以使用,服务超过 4 万家企业,涵盖金融、保险等。
首先,这两款产品(Helix QAC 和 Klocwork)已经上市很久了,认可度很高。相比于新产品,Helix QAC 和 Klocwork 在业界口碑很好,占据了市场主导地位。市场份额也说明了客户对软件本身的认可程度。或许同行朋友也在用这两款产品,所以它们的知名度比新产品要高。
同时这些产品也经历了十多年的迭代更新,每年都会更新新的特性,包括功能、支持的规则等,通过长期的迭代更新,帮助客户不断完善软件本身,解决客户新的诉求,紧跟时代潮流。
可追溯性:版本控制解决方案比较
Q:嵌入式开发中追溯方面有没有什么好的实用参考?
李沛:追溯已经成为业界的常识。从实际角度来说,当软件或者系统发生变更时,你一定想知道变更的原因、造成的影响等信息。自然这就需要一个系统来帮助追溯这些信息。这是一个简单的想法,工具的选择也有很多。
Jira 的使用非常广泛,Jira 的优点就是插件多,基础功能比较简单,但是当客户需要定制功能的时候,可以找到相应的插件来提供支持,甚至可以自己开发插件。但是这也会成为一个缺点,当插件数量增加的时候,兼容性和插件管理就会变得麻烦。
另外,需求、变更、Bug、测试管理都可以包含在一个软件中——Helix ALM。这是一款比较传统的软件,相对“重”,不需要安装额外的插件,也可以和芯片开发自带的版本控制工具Helix Core、IPLM很好地融合在一起。相当于两种思路,殊途同归,都能取得很好的效果。
Q:嵌入式开发中版本控制有没有什么好的实用参考?
李沛:今天在嵌入式展会上,我能看到很多板卡,当然还有软件。板卡涉及到硬件设计,芯片(晶圆)也是从设计开始的。不管是代码、硬件设计、板卡设计、芯片设计等等,都是企业的数字资产,或者更通俗的叫文件。对于IT企业来说,这些都是企业的命脉。
每天有那么多员工上班,下班前完成一份文档、一个设计、一个bug、几行代码,这些都是整个企业的产出,这些资产需要一个好的系统来帮助管理。
首先,需要进行版本控制。必须提供版本来显示文件的来源和更改历史,以便实现更好的可追溯性。
第二,要有权限控制。要限制谁可以访问,谁不可以访问,让不该访问的人无法访问。限制是一方面,共享是一方面。当企业规模扩大后,会有很多部门,如果每个部门都造一个轮子,可能就没有沟通。这样看似忙碌,其实给企业造成了巨大的浪费。
另外,随着全球化的浪潮,跨国协作越来越频繁,这时候就要考虑分布式环境的使用效率了。每天自动构建的任务也有很多,这其实就是从版本控制系统中获取数据,处理数据,然后返回数据的过程。当pipeline少的时候,可能问题不大。但是一旦pipeline增多,时间要求严格,或者数据量巨大,就会对数字资产管理系统造成很大的压力。
这时候你就需要一个高可扩展、高扩展、强大、稳定、安全的版本控制系统,比如Perforce Helix Core,作为整个公司的引擎或者中央仓库,可以存储所有的数字资产,实现公司内部高效、无缝、安全的共享。
Q:通过与展会上的客户交流,您认为他们对版本控制软件的了解程度是怎样的?
吴晓光:经过和他们的沟通,我感觉使用开源工具(Git、SVN等)的客户比较多,但这些客户也抱怨一些问题,比如数据量大的时候提交速度慢等。有的客户还提到他们的分支管理不可控,还有的客户提到需要更高的安全性,希望权限管理能升级到文件级别。
Git 和 SVN 的弱点正是 Perforce Helix Core 的强项。它可以很好地处理大文件和数据,并且具有图形界面来展示分支之间的关系。此外,Perforce Helix Core 提供了受控的分支合并策略。它的权限管理也非常灵活,可以细化到文件级别。权限控制也是如此。通过组,可以将权限委托给真正了解项目的人,而不是不了解项目、只会管理系统的 IT 人员。
开发效率:自动化测试工具探索
Q:嵌入式开发行业应该如何应用自动化测试工具?
李沛:对于嵌入式开发来说,自动化测试工具的应用并不是那么容易,这是因为嵌入式开发中有很多对实现要求很高的协议,不同于互联网行业的协议,它的内容是经过严格审核的,通过编码和一些底层的协议进行传输。
TestComplete主要用于UI测试,包括桌面程序,网页应用,APP应用等。很多嵌入式客户认为这个工具没有界面就不能用,其实不然,还是有使用场景的,嵌入式开发中也有一些操作界面,或者有些公司专门开发了上位机软件用于测试。当使用上位机软件跑复杂的流程时,可以使用TestComplete(UI自动化测试工具)。
Ready API 主要用于测试 Web Service 类型的接口,在底层、面向应用的嵌入式开发中可能用不到,但对于时效性不是那么敏感的产品,比如需要与中心服务器通信的智能家居,如果其应用协议(如 SOAP 等 Web Service 协议)在 Ready API 的支持范围内,那么可以使用 Ready API 进行性能测试、功能测试、安全测试等。
Q:请介绍一下UI自动化测试工具TestComplete的特点。
吴晓光:首先TestComplete支持多平台。因为产品平台越来越多样化,包括web、PC、手机甚至工控设备,这些都需要工具来支持。其次它还支持多技术框架。如今的技术框架也是层出不穷,自动化测试工具必须支持多平台、多框架。再者TestComplete的对象识别能力非常强。众所周知,自动化测试工具经常被诟病的对象识别能力弱,很多对象无法识别定位,需要人工修改脚本才能适应。而且当修改了空间的属性后,原本录制的脚本无法重放,无法识别对象,这时候就需要再次修改脚本,效率就会降低。而这正是TestComplete可以发挥作用的地方。
关于隆智
Q:您认为龙智提供的嵌入式开发解决方案有哪些优势或者独特之处?
李沛:龙智是本土服务商,语言、实时性等方面优势明显,如果选择国外供应商,会面临语言障碍、时差等问题。
此外,龙志积累了多年的客户服务经验,能够把老客户的经验运用到新客户身上,帮助新客户少走弯路。
隆志一直秉承着把全球最好的工具引入中国,并为客户提供本地化的优质服务的理念,这是我们最大的优势。
张定凯:龙智在软件解决方案领域深耕已久,我们不仅有这两款产品,还为企业提供全方位的解决方案,提供从前中期开发到后期运维全生命周期的软件产品。
因此客户更看重龙智的整体解决方案能力和龙智的开发能力,龙智的开发团队可以帮助客户进行定制化开发,在购买软件的同时可以实现与其他软件的联动开发和自动化,并进行个性化定制,满足客户的不同需求。
此次龙智主要带来了适用于嵌入式开发的工具,例如静态代码测试工具Helix QAC和Klocwork,自动化测试工具ReadyAPI和TestComplete,以及开发版本管理、生命周期管理和IP管理:Helix Core、Helix ALM和Methodics IPLM。
关于上海嵌入式系统博览会
问:简单介绍一下今年上海国际嵌入式系统的感受。
李培:这次展会上的所有参展商应该都是我们的潜在客户。因为龙智专注于软件工具链的构建,其他参展商的想法或工作更多是偏向硬件的。但凡是硬件都要有软件才能发挥作用,这时候龙智成熟、先进、快速的方法和经验也可以移植到嵌入式开发中。
张定凯:今年展会首次从德国走向全球,很荣幸中国是第一站,未来北美可能是第二站。但选择中国作为第一站,说明它非常重视中国市场,相信这里有更多的商机和机遇。
龙智有幸参加了本次展会,认识了不少嵌入式领域的同行和行业大咖,通过软件和硬件企业之间的相互交流,思想的摩擦和碰撞激发创新,助力整个行业健康发展。