首页 > 其他分享 >源代码分析改善客户体验:静态分析工具Klocwork通信行业案例

源代码分析改善客户体验:静态分析工具Klocwork通信行业案例

时间:2023-02-03 17:32:36浏览次数:62  
标签:分析 Polycom 开发人员 代码 Klocwork HDX 源代码 Stanek

Polycom,Inc.是全球一体化协作通信的领导者。是专业开发、制造和销售高质量音视频会议系统及解决方案的领先提供商。Polycom的产品通过让人们在全球范围内进行协作和交流,就像人们在同一个房间里一样,使其工作场所发生了革命性的转变。为了创造这种体验,他们的产品必须每次都能提供可靠且无缝的“面对面”体验。

20年来,作为统一通信行业的先驱,Polycom确实面临着一些挑战,比如用新旧代码扩展代码库。从礼堂到个人工作区,Polycom HDX室内远程呈现解决方案以无与伦比的质量和易用性提供逼真的交互,利用开放视频标准,并以竞争解决方案的一半带宽提供惊人的通信质量。“我们的一些旧代码组件已经存在了大约10年。Polycom工程经理Jami Stanek表示:“我们希望揭露任何隐藏的稳定性问题,尤其是那些因我们持续支持传统客户环境的技术复杂性而加剧的问题。”

为了积极应对这一挑战,Polycom选择了Klocwork Insight™ 帮助其开发团队完善HDX代码库。两年半后,在量化成功的激励下,该公司现在正将Klocwork静态分析推广到了他们500个开发人员的桌面上。

通过静态分析提高产品的安全性和可靠性

Polycom 为 HDX 产品线中的 Polycom 软件寻求源代码分析 (SCA) 解决方案,该产品线包含数百万行代码。该公司采取了强硬路线,以确保关键缺陷得到解决。该解决方案首先被部署到90个开发人员的桌面上,并从Klocwork Insight™归类为严重等级一级和二级的缺陷中开始寻找,即安全和可靠性错误,如缓冲区溢出和内存泄漏。

Stanek回忆道,“Klocwork报告在定位潜在问题并根据严重程度对其进行优先排序方面非常有帮助。”

“我们从缓冲区溢出开始,并通过评估这些溢出进行了相应的工作。接下来,我们解决了内存泄漏和空引用的问题--我们正在消除Klocwork归类为严重等级5级或以上的所有缺陷。"

除了使用SCA工具来发现和消除现有代码库中的潜在缺陷外,它还用于确保将来的代码中不会出现问题。“我们现在使用 Klocwork 作为开发过程中的一扇门,”Stanek解释道。“我们的质量标准设置得非常高,并且不允许开发人员在代码库中引入任何1-5级严重级别-这些缺陷现在很快就会被识别出来,开发人员必须修复它们,否则他们的代码就不会被签入。”

Polycom还采用双管齐下的方法进行了源代码分析,在桌面和集成阶段都运行Klocwork。“开发人员负责检查无缺陷的代码。我们还在构建中进行分析,检查整个代码库以从可能在集成期间添加的代码中发现问题。

可量化的可靠性和生产力改进

在 HDX 代码库上实施 Klocwork 之前,Polycom 没有使用 SCA 工具,而是仅依靠同等代码复查和伙伴签入。现在使用Klocwork清理HDX代码库已经有两年半了,Polycom对承担这项任务的价值充满信心。

Stanek表示,SCA对HDX产品线的影响可以通过客户满意度和产品稳定性来衡量,“我们接到的客户电话越来越少,”他说,“我们发现测试周期的稳定性更好。这种改进可通过Polycom的现场数据进行经验性的衡量。“我们的服务案例显着减少,这是积极的趋势。”我们的客户非常满意。

Klocwork也正在对新的开发产生影响。“如今,我们的代码更加稳定可靠,我想说,与业内的其他软件公司相比,我们是领先水平。当开发开始新的编码时,我们可以看到这一点,并且稳定性下降幅度非常小。开发也能更快的恢复,且更迅速地开始新产品的工作"。Stanek补充道:“我相信Klocwork有助于提高我们的软件质量。"

此外,使用 Klocwork 可以减少代码库中潜在的安全漏洞,这对 Polycom 确保其产品满足客户严格的安全性和互操性要求是至关重要的。“在缺陷产生之前,使用 Klocwork 为客户减少这些缺陷还具有一定的安全优势,”Stanek证实了这一点。“例如,通过消除缓冲区溢出,我们正在提高代码的安全性。”

变更管理的最佳实践

基于其对 Klocwork Insight 的初步经验,Polycom 现在正在他们整体的开发团队中部署该解决方案,包括所有产品线和数百个开发人员的桌面。Polycom将继续使用Klocwork,以确保在现有错误根据其严重性被系统消除的同时,不会引入新的缺陷。

我们成功推出的关键之一是使用 Klocwork Insight 报告来提高 Polycom 管理的可见性。"我们每周都会在运营审查中报告Klocwork的情况。它就在每个人的眼前,管理者们知道他们的队列中有多少缺陷,有多少正在修复,以及趋势线是什么样子的。”

Stanek总结道,“最终,Klocwork是为了向我们的客户提供更优质的产品”。“这就是我们在HDX产品线中看到的价值,这也是我们现在正在向其他产品线所推广的价值。”

关于Klocwork

Klocwork®帮助开发者创建更安全、更可靠的软件。Klocwork可以实时分析源代码,简化同行代码审查,并延长复杂软件的生命周期。超过900家客户,包括移动设备、消费电子、医疗技术、电信、军事和航空航天领域的最大品牌,已将 Klocwork 纳入其软件开发过程。成千上万的软件开发人员、架构师和开发经理每天依靠Klocwork提高他们的生产力,同时创建更好的软件。

了解更多有关Klocwork的试用体验、技术信息及商务服务,请访问​​​http://m6z.cn/5RbQvj​​​留下您的详细需求,或按以下方式联系旋极信息:

源代码分析改善客户体验:静态分析工具Klocwork通信行业案例_代码安全性测试工具

源代码分析改善客户体验:静态分析工具Klocwork通信行业案例_代码安全性测试工具_02

标签:分析,Polycom,开发人员,代码,Klocwork,HDX,源代码,Stanek
From: https://blog.51cto.com/u_15366222/6035955

相关文章

  • fiddler 导入 pcap 分析修复
    [email protected]"tcpdump-nibr-lan-s0-w-notport22"|"C:\ProgramFiles\Wireshark\Wireshark.exe"-k-i-sshroot@1......
  • ClickHouse SQL调优及执行计划分析
    ClickHouse在做SQL查询时要尽量遵循的原则1.大表在左,小表在右,否则会造成右表加载数据量太大,大量消耗内存资源;2.如果join的右表为大表,则需要将右表写成子查询,在子查询中将......
  • 亚马逊云科技:未来的云原生数据分析将会更敏捷,更易用!
    AmazonOpenSearchServerless的上线,让亚马逊云科技成为首个AnalyticsAllonServerless的云供应商,未来的云原生数据分析将会更敏捷,更易用! 在亚马逊云科技re:Invent2022......
  • 亚马逊云科技的数据分析服务已全部实现了Serverless无服务器化
    AmazonOpenSearchServerless的上线,让亚马逊云科技成为首个AnalyticsAllonServerless的云供应商,未来的云原生数据分析将会更敏捷,更易用! 在亚马逊云科技re:Invent2022......
  • 塔吉特Target Domestic EDI 856 & 810业务分析
    Target公司位于明尼苏达州明尼阿波利斯美市,是美国仅次于沃尔玛的第二大零售百货集团,也是美国标准普尔500指数成分股。它最早名叫戴顿赫德森公司(于1962年成立),2000年1月正式......
  • 【suspend】suspend流程分析
    suspend相关模块autosleepsuspendwakelockwakeup待梳理模块调用关系suspend流程Reference蜗窝文章http://www.wowotech.net/tag/suspendkerneldochttps://......
  • 墨天轮《2022年中国数据库行业年度分析报告》正式发布,精彩抢先看
    自2022年4月份起,墨天轮数据社区持续发布月度《中国数据库行业分析报告》,目前已发布7期,点击超过10万次,下载近万次。为总结过往,展望未来,墨天轮数据社区正式发布了《2022年......
  • 内存分析 - 初始
    内存分析-初始内存内存栈堆栈、堆//1.声明数组//在栈中创建一个array的名字,这个时候array是空的,没有实际意义//这个时候的array就相当......
  • SRS之RTMP推拉流分析
    SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181;本文以SRS4.0版本进行分析RTMP推拉流架构,SRS整体架构如下图(官网图片)所示: 有图可......
  • cve_2020_6507分析
    poc$catpoc.jsarray=Array(0x40000).fill(1.1);args=Array(0x100-1).fill(array);args.push(Array(0x40000-4).fill(2.2));giant_array=Array.prototype.......