前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >5分钟入门精准测试-静态调用链分析TraceSonar初体验

5分钟入门精准测试-静态调用链分析TraceSonar初体验

作者头像
Antony
发布2022-09-23 13:53:36
1.3K0
发布2022-09-23 13:53:36
举报

简介:

代码静态分析工具,背后的技术基础是JAVA ASM。项目地址:https://github.com/sorra/TraceSonar

项目最后提交于2年前,贡献者寥寥,能不能用笔者还是报一些怀疑的。

使用方法- 开箱即用

项目提供了一个 test.sh的案例,可以让用户直接体验使用效果

代码语言:javascript
复制
mvn assembly:assembly && java -Xmx2048m -jar target/tracesonar-0.1-SNAPSHOT.jar -f target/tracesonar-0.1-SNAPSHOT.jar -q "sorra.tracesonar.core.GraphStore#*"

执行该命令,TraceSonar 将扫描分析sorra.tracesonar.core.GraphStore这个类的所有方法的调用关系,并将结果写入traceback.html。用户可以读取该报告并了解这个类的调用情况。

例如,我们来看一下这个类中的getCallerCollector方法

在IDEA中,可以获取到如下的调用关系

可以看到,该方法分别在MethodInsnCollector#visitInvokeDynamicInsn以及

Searcher#searchCallers中有三处调用。

来看一下traceback.html报告中getCallerCollector方法的调用链分析结果

可以看到,该方法的确是有3处外部调用,与IDEA中的分析结果一致。

此外,也可以看到,这个工具可以一直追踪调用链直到main方法。

根据这个项目的readme.md,

报告中的染色规则是:

蓝色:调用链起始节点

绿色:调用链结束节点

灰色:可能的调用

这样,如果一个类或者方法被重构了,通过这个工具就可以非常方便地分析出工程中的哪些地方需要开发和测试人员关注了。

全部扫描

在运行了demo案例后,笔者简单找了一个项目进行全量扫描。在项目的根目录中,运行以下的命令,

java -Xmx2048m -jar tracesonar-0.1-SNAPSHOT.jar -f target/super-jacoco.jar -q "*#*"

从执行日志上看,扫描分析的速度还是非常快的,

只用了1秒钟不到,就把一个开源项目分析好了。

怎么样,5分钟入门精准测试,想试试了吗?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试那些事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档