我在互联网上看到,使用静态代码分析数据,我们可以预测应用程序中哪些模块容易出现缺陷。当我试图想象数据集,它是很难适应它作为二维。因为每个构建可以有许多模块,对于每个模块,我们将有源代码度量和缺陷计数。我的怀疑是
如果你能指出这方面的一些详细文章,这将是非常有帮助的。
PS:我在这里发布这篇文章,是因为在测试方面有很好的专业知识的人只能建议在哪里寻找缺陷。
发布于 2017-06-08 13:31:07
在左垂直的y轴上有一个有缺陷数的图
然后,我将有关于相关因素的行,例如代码行数、语句数、行长、变量数、全局变量等。您还可以有一个公式,将它们相乘到一起,给出一行。
我不会尝试做多维模型,除非你有所需的经验和知识,并且已经用2d模型完成了这个工作。3d的细节很重要,不适合于堆栈交换问题。
发布于 2017-06-08 13:32:39
的思考
一行“易缺陷模块”分析可以使用代码复杂性分析将模块分类为“容易出错”或“不容易出错”。这将基于这样一个事实,即更复杂的代码往往有更多潜在的bug。
在代码复杂性分析中,有几个度量标准可以用作机器学习算法的参数:
根据谷歌的Bug预测的文章,他们成功地使用了基于模块更改次数的修改后的"Rahman“算法:
我们通过创建一个连接到我们的源代码控制系统的程序实现了Rahman算法,并提取了所有带有bug的更改。它查看每个bug编号,并与bug跟踪数据库验证它是否真的是一个bug,并过滤掉其他所有内容,例如功能请求。然后,它将查看这些更改中出现的所有文件,并过滤掉那些已被删除且不再处于首位的文件。对于每个文件,计算了它所进行的错误修复更改的数量,并输出了排在前10%的文件。
还有FixCache项目 (未维护)。
还有桅杆组 (机器学习技术用于源代码文本分析),它发布了几种用于源代码分析的机器学习模型和算法。我没有看到一些特定的东西来检测源代码中的错误倾向,但是有一些有趣的和相关的算法。
关于这一主题的更多文章:
https://sqa.stackexchange.com/questions/27686
复制相似问题