信息管理行业案例:15秒查找500000+行代码中的指针错误
这是一个故事,讲述了如何在15秒的分析过程中发现导致崩溃的错误,从而避免了40小时的人工检查。
BITTT Enterprises专注于业务流程,并为信息管理提供战略性业务解决方案。 BITTT帮助他们的客户改善内部技术系统,提高效率和生产率,以实现更健康的利润。
合伙人Timothy W. Okrey负责BITTT的开发。实际上,他是BITTT编写的代码背后的策划者。最近,Okrey正在继续开发正在进行中的项目,该项目已经进行了两年。该程序突然开始崩溃时,它处于虚拟生产环境。这种情况使Okrey完全傻眼了。
在尝试自己解决问题并向各个方向撞墙之后,Okrey找到了的C/C++运行时分析和错误检测解决方案。Parasoft Insure++不仅帮助Okrey解决了眼前的问题,而且使他能够同时有效地增强多个独立项目。
临界指针错误的出现
Okrey正在开发的产品稳定并且可以在虚拟生产模式下运行。但是,该程序在经过最近的构建以解决客户要求的许多增强功能后开始失败。
BITTT已在该产品上投资了两年,这是一种与薪资相关的解决方案,旨在帮助客户减少每周投资的60至70个工时,以手动完成14个州的1000名员工的薪资。由于BITTT的工作,现在客户的工资单已实现自动化,使他们每周花费不到12个工时。不幸的是,最新版本出现的停止显示错误导致BITTT的客户恢复到人工工资核算流程。
基于20多年的开发经验,Okrey知道,如果已经碰壁了,那就是时候以不同的方式重做整个项目了。不幸的是,在这种情况下,这甚至都不可行,因为“没有决定性的证据,甚至没有可追溯的错误。”Okrey进一步解释说:“这不是新的发展。我们也没有尝试将部分代码组合在一起以使其正常工作。这个特定程序是使用工具箱作为细节从头开始编写的。”
该工具包是Okrey于1993年开始创建的工具包。它允许他将工作功能提取到原始源代码中,或用作任何项目的库。该工具包为他的所有项目提供了稳定的基础,并减轻了反复重写代码的需要。该工具包已经发展到超过500000行代码,这些代码都是经过最大程度的努力而编写的。Okrey严格遵循结构化编程的规则,因此在保持代码清洁方面很明智。他从未使用过第三方工具来分析他的代码,也从未需要过。
减少下游开发流程的时间和成本
在一个多星期的时间里,Okrey试图重新设计引起麻烦的样式的不同部分。
但是他为解决问题所做的尝试仅导致更改了一些内部零件,从而使故障点发生在其他位置。“像平时一样,我用细齿梳和放大镜花了40多个小时来浏览我的所有代码。我无法找到问题所在。我可以看到发生了什么事。我只是不知道为什么会这样,” Okrey说。
从那时开始,他开始寻求帮助。他只发现了少数能够完成他想要的工具。在少数几个产品中,大多数产品仅允许静态检查代码。是唯一还执行动态分析的产品。Okrey说:“Parasoft使我能够在运行环境中分析我的内容,而不仅仅是看纸上的代码。”
设置并运行后,经历了Okrey源代码的第一版——全部500000行。在启动后的15秒内,发现了一个过时的指针错误。Okrey谈到快速的投资回报时说:“如果我找不到,那将导致客户提出非常苛刻的要求。”他补充说:“仅仅由于升级,从程序的正常运行版本变为非正常运行版本,将导致进度逆转,我甚至不愿考虑采取强制性的财政让步。这是一个很麻烦的情况。”
提高代码质量、稳定性和合规性
使Okrey能够完全修改工具包的源代码。特别是改善字符串处理。改进已扩展到其他项目。Okrey还为使用相同后端工具包的各种客户提供了许多其他程序,因此所有这些程序都能从中受益。Okrey指出:“我甚至无法开始告诉您所有依赖于后端工具包的程序。由于进行了改进,使我能够进行改进,使它们更加稳定和合规。”
Okrey说,解决方案使他能够实施和执行他的高编码标准。Okrey说:“迫使您验证所使用的标准和做法绝对原始。”“作为项目负责人或像我这样的管理合伙人,面临的挑战之一是确认您的团队正在编写符合高标准的代码。Parasoft可以帮助我验证我的团队正在编写符合我的标准的代码,并允许我保证结果。我为此感到非常兴奋。”
从的解决方案中获取价值
Okrey对迅速融入其应用程序开发过程的质量感到满意。他不仅能够为尊贵的客户纠正问题,而且还能够为其他客户提高数十种程序的质量。
Okrey说:“对于我选择认可的产品,我非常严格。出于各种原因,世界上编写的大多数软件都无法正常运行。也许它的设计不正确,以至于运行缓慢,或者系统要求不切实际。清单继续。
“不过,我确实很喜欢一些产品。其中之一是我一直依赖的系统软件产品。我从未经历过GPF。决不!当我得知该产品的提供商是客户时,就是这样。这就是让我决定尝试的原因,对此我感到非常高兴。”
获取Parasoft资料或申请试用可加QQ:2867205852