加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

精准测试新玩法の基于犯罪心理学挖掘代码风险

发布时间:2021-03-09 13:13:28 所属栏目:大数据 来源:网络整理
导读:副标题#e# 前言 ? 犯罪心理学还能用于挖掘代码风险? 挖掘出来的东西是什么? 挖掘出来的东东长什么样子? 挖掘出来能用来做什么? 具体怎么样挖掘呢? 这是本文的主要探讨的内容. ? 在大型的项目中,代码和模块的复杂度在很大程度上决定了测试任务的时间,?

Python脚本 (用于merge 结果生成json)

https://s3.amazonaws.com/CodeMaatDistro/scripts0.4.zip

  • Visualizations 例子

https://s3.amazonaws.com/CodeMaatDistro/sample0.2.zip

?

执行过程 (以svn为例子):

  1. 在需要分析的目录下,用svn 命令行得到一段时间内的日志

svn log -v -r {yyyymmdd}:{yyyymmdd} --xml > <svnLogFile >

例子:

svn log -v -r {20160227}:HEAD --xml > test.log

svn log -v -r {20160127}: {20160227} --xml > test.log

?

?2.用code maat分析总结svn log

maat -l <svnLogFile> -c svn -a revisions > <code_freqs.csv>

可以用下面的命令打印测试下

maat -l ?<svnLogFile>-c svn -a summary??

例子:

maat -l test.log -c svn -a summary??

maat -l test.log -c svn -a revisions > test_freqs.csv

?

注意:

需要打开结果文件把前面的三行删掉(打印的命令行)

另外svn log 打印出来的结果是在svn trunk的相对路径,如果工作目录不是svn trunk的根路径,需要修改文件里面代码的路径

/Test_proj/trunk/test/src/features/Log/log.cpp,94

/Test_proj/trunk/test/src/features/LogMgr/logMgr.cpp,94

/Test_proj/trunk/test/src/features/test/test.cc,75

?

替换成下面这样 (当前工作目录为device),因为cloc 得出的文件路径是工作路径的相对路径,要保持两者一致才可以

Log/log.cpp,94

LogMgr/logMgr.cpp,94

test/test.cc,75

?3. 用cloc 分析文件大小

????cloc-1.64.exe? ./ --unix--by-file --csv --quiet --report-file=<code_lines.csv>?

?????

????例子:

????cloc-1.64.exe? ./ --unix--by-file --csv --quiet --report-file=test_lines.csv?

?

?4. 把前面结果merge生成json 文件

python csv_as_enclosure_json.py --structure <code_lines.csv>--weights <code_freqs.csv > ?> ?<jsonFile>

?

备注:

可以先用merge试一下结果是否正确: 

Python merge_comp_freqs.py??<code_freqs.csv ><code_lines.csv>

?

例子:

python merge_comp_freqs.py??test_freqs.csv? test_lines.csv

python csv_as_enclosure_json.py --structure test_lines.csv --weightstest_freqs.csv > test.json

?

5.热点可视化

在sample/hibernate?目录中:

把hib_hotspot_proto.json内容替换成上一步生成的json文件

运行下面命令

然后浏览器打开下面链接,即可看到结果

http://localhost:8888/hibzoomable.html

?

备注:

?

也可以自己建立自己的项目目录,具体格式可参考 hibernate?里面的hibzoomable.html

?

?

效果:

?

Hibernate开源项目全景图(支持鼠标缩放):

精准测试新玩法の基于犯罪心理学挖掘代码风险

?

代码热区区分

?

下面图为上面全景图的局部放大

?

精准测试新玩法の基于犯罪心理学挖掘代码风险

在上图中(hibernate项目热区),颜色越红,表示代码区域被改动次数越多,也即越有风险,圆圈的大小表示代码文件的大小(行数), 

?

除了代码热区还能够挖掘出来其他的东东么?- 我们一起来进一步思考


在上文中展示的代码热区只包含两个维度: 代码大小,代码改动次数.

?

在每个产品或者项目阶段,我们可以加入自己的维度来定义或者进一步过滤代码热区来得到自己想要的结果.

?

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读