电话

18600577194

当前位置: 首页 > 新闻 > 物联网技术

物联网软件开发人员加快软件开发过程中的bug定位

标签: 北京物联网软件开发公司 2024-08-16 

现代物联网软件开发项目中通常包含大量文件和数百万行代码。由于数量庞大,查找和纠正错误(即调试)非常困难。

在许多软件开发外包公司中,开发人员仍然手动查找错误,这占用了他们大量工作时间。研究表明,这占总开发时间的 30% 到 90%。

格拉茨工业大学 (TU Graz) 软件技术研究所的 Birgit Hofer 和 Thomas Hirsch 开发了一种基于现有自然语言处理方法和指标的解决方案,可以大大加快查找错误代码并进行调试的过程。

软件开发人员加快软件开发过程中的bug定位

故障定位耗费最多时间

“作为第一步,我们针对开发人员进行了调查,以找出调试过程中最浪费时间的事情。结果发现,实际修复错误根本不是大问题,但程序员主要陷入了定位错误,即将搜索范围缩小到程序代码中的正确区域,”Birgit Hofer 解释道。

基于这一认识,研究人员着手寻找该问题的解决方案,该解决方案还可扩展到具有大量代码的应用程序。

虽然存在有效的基于模型的方法,即将程序转换为逻辑表示(称为模型),但这仅适用于小型程序。这是因为计算工作量会随着代码的大小而呈指数级增长。

Birgit Hofer 和 Thomas Hirsch 采用的方法用数字来表示某些软件属性(例如代码的可读性或复杂性),并且还可以用于大量代码,因为计算工作量仅呈线性增加。

漏洞描述与代码对比

故障定位的起点是错误报告,测试人员或用户填写一份表格,描述观察到的故障,并输入有关软件版本、操作系统、故障发生前他们采取的步骤以及其他相关信息。

根据此错误报告,自然语言处理和度量相结合,对整个代码的类和变量、文件、方法或函数的名称以及对方法和函数的调用进行分析。

该应用程序会识别与错误报告最相符的代码部分。因此,开发人员会收到一份包含 5 到 10 个文件的列表,这些文件按照它们对所观察到的故障负责的可能性进行排序。

开发人员还会收到最有可能涉及的故障类型的信息。这些数据可用于更快地定位和修复错误。

“软件开发人员的工作时间很昂贵,但他们往往把更多的宝贵时间来查找和修复错误,而不是开发新功能,”Birgit Hofer 说。

“由于已经存在多种解决此问题的方法,我们已研究如何将它们结合起来并加以改进,以便为商业应用奠定基础。我们现在已经奠定了基础,系统也运行正常。然而,为了将其整合到公司中,它仍然必须适应公司各自的需求。”