静态代码扫描方案

扫描

建议使用360火线进行扫描,主要原因如下:

火线的报告很友好,查看方便。
火线是360对外的一个项目,虽然规则是针对他们app定制的,但是也适用于其他的app。
它规则中同时包含了安全规则。
自定义规则也不复杂,可以自定义自己的规则。

在有app源码时,建议用android lint扫一遍:

Android lint毕竟是Google官方的。
lint可以发现一些内存泄露及Android方面的问题。

结果处理

对于360火线的扫描结果,按如下方式处理:

提交一个静态代码扫描的bug,然后将报告作为附件上传,写明:解决Block、严重级别的问题。对于不能解决的问题,要注明原因。(常规处理)
自己需要大概有个标准,哪些是必须修改的(比如流未关闭、空指针异常)。哪些是可以暂缓的。(建议类型的问题)。
当然可以自己对问题进行过滤,通过阅读代码,找出必须解决的问题,但这会加大测试的工作量。不建议这么搞。

对于lint的扫描结果,按如下方式处理:

重点排查error的项,但也并不是所有error的都得解决。原则上:内存泄露、流未关闭之类的需要解决掉。
需要花时间进行筛选。

总结

需要明白一点,代码的质量是应该开发自己去保证的,我们做静态代码扫描只是为了能检验下开发是否做了静态扫描。至于筛选问题的工作量之后都抛给开发去完成。这样才能慢慢让他们养成关注自己代码质量的习惯。
静态代码扫描未来可以思考的方向:

每次开发提交代码,或者打在jenkins上打集成包时,能触发。(在功能测试之前就可以搞)。
可以将静态代码扫描加入到apk的发布流程中。
自定义针对公司产品的规则。(需要开发支持和参与)。

猜你喜欢

转载自blog.csdn.net/github_35707894/article/details/79801810