Qtest测试之道 静态代码扫描工具火线 (续)

360Qtest团队 · November 09, 2018 · 1069 hits

欢迎使用火线

前阵子在社区给大家分享了我们公司内部使用的静态扫描工具火线,没想到关注度挺高,不少同学问我什么时候开源出去,现在好消息来了,经过同事的一天努力,我们对外的官网终于上线了,并且我们开放了一个试用版给大家下载试用,满足大家的动手欲望,顺便跟大家分享一下我们目前在做的和后续准备做的事情。

官网

火线官网

关于试用

关于试用版,由于某些原因,给大家使用的是混淆后的版本,大家可以先了解一下这个工具是怎样运行的,大概能发现的类型是啥样的。有心的同学可以打开里面的包结构,看一下大概的组成部分。

关于扩展

火线在我们的努力下,实现了几个显著的优点:
跨平台
同时支持任意操作系统,目前JDK适配支持1.7、1.8(由于PMD的原因,暂时不支持1.6的环境)。
跨语言
一些同学问能不能支持其他语言,比如OC或者PHP等等,火线由于人力和时间的限制,目前只支持安卓相关的检查,如果想检测其他语言的,完全可以自己动手去做,可以支持

C, C++, C#, PHP, Ruby, Fortran, JavaScript, PLSQL, Apache Velocity, Ruby, Scala, Objective C, Matlab, Python, Go这些语言的检测。

跨引擎
由于火线跟底层扫描引擎完全解耦的,所以不管是PMD,还是Findbugs都可以集成进来,我们现在还在做一些尝试来集成Findbugs的某些特殊功能,目前遇到了一些技术瓶颈,相信很快就可以开放出来给大家使用。

如果已经在使用findbugs工具的同学,又想使用我们的火线,方法很简单。有兴趣的同学应该看到了,虽然我们上层架构做了混淆,但是底层是基于pmd的两个包进行扩展的,如图所示:

那么想扩展规则的同学该怎么做呢?从PMD官网(pmd.github.io)下载最新的源代码,找到pmd-core和pmd-java进行扩展,然后把jar包丢进火线的目录就可以了,不过新的规则需要在我们的xml配置文件中添加,否则是不会去执行的,修改的位置如下图所示:

关于自定义规则

我们会不定期的在我们的公众号和testerhome同步更新一些文章,教大家如何编写自定义规则,这个需要具备一定的java编程基础的同学,非常欢迎大家加入讨论。

No Reply at the moment.
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up