测开分享会第五期(代码静态分析与安全审计-下)
跟着芒果一起好好学习,天天向上~
在上周五我们举办了测开分享会第六期的分享,现在就由芒果为大家整理这次分享会的知识。本次整理内容包含我们的V咖韩葆老师的分享内容,部分提问及回复,还有一部分小伙伴的讨论内容。想要提问或者观看完整问题解答的小伙伴,请积极参与到我们分享会中来,我们的分享会每两周就有一次哟~
由于语音分享时间超过30分钟,所以只能分为两部分,这里是下集。
分享人:韩葆
韩葆(Bob Han),Synopsys Software Integrity Group软件质量与安全产品线区域业务负责人/高级安全方案架构师。曾在Sun中国研究院为OpenSolaris操作系统搭建测试平台,专注软件质量与安全测试领域,深入研究开源治理、白盒测试、静态分析、网络协议Fuzzing、渗透测试等技术。经历了研发测试行业和软件安全行业在中国从无到有,从小到大的整个过程。2013年作为中国区首席工程师加入Coverity(2014年被Synopsys收购),成功的将静态分析技术引入中国,在2014-2017年四次作为中国质量竞争力大会演讲嘉宾介绍研发测试技术,并多次被软件安全领域高峰论坛如Qcon, OWASP,ItClub等邀请为嘉宾分享行业动态,致力于软件团队的研发测试与软件安全平台搭建,改善软件质量,提高软件安全性。
分享主题:从SonarQube到Coverity:典型研发团队的代码质量与安全精益之路
代码静态分析与安全审计技术,能够协助研发团队在早期阶段找到质量缺陷与安全漏洞,大幅度的节省人力时间成本,提高人效。绝大多数的团队都以SonarQube开始推进,但是Sonar检测规则浅、误报率高、集成度低等问题让使用者头疼不已。成熟度的开发团队开始寻求更为成熟的方案和技术-MetaCompilation静态代码分析技术(Coverity)。本议题介绍Sonar与Coverity的异同,互补、共存、替换的方案,也包含大型软件企业(互联网、硬件、软件)的真正代码质量与安全保障实施方案案例。
部分PPT如下:
部分提问及讨论如下:
木头人:
大咖,咨询一个问题,我们组正在推动Sonar的规范,第一阶段 是既存规则梳理也就是规则裁剪,基本完成。准备发起第二阶段,新增规则,添加方法。但是soanr的这方面教程很难找,有什么好的论坛或者学习渠道么?
韩葆:
实话说,没有,都是自己摸的,因为Sonar支持力度很差。
木头人:
在 csdn上看到也有人分享过如何自定义Sonar规则,只是很少。有啥好渠道么?
韩葆:
Sonar的规则整体来说就是很难去自定义就是这个,这是他天生的一个缺陷,就是很难去去弄的,我不知道你要去做什么样的一个规则,你是想去找真正的bug吗?如果是找真的bug送到我可以很明确的告诉你很难,因为他们有数据流分析的概念。如果你只是要去做一些代码规范检测,如果是使用语言是Java的话,我推荐你去用阿里的那个静态的代码,java编程规范的规约。
木头人:
不是的,只是代码规范。 比如驼峰命名这样的, 或者好的一些规则集 。
testops云层:
静态能做的事情很多
石山种草:
一般多大规模的项目应用静态分析比较划算呢,感觉项目不大的时候,写程序注意些就问题不大了。
testops云层:
误报率是关键,就和语音识别一样。
木头人:
目前有的只有findmbug,我看那您分享的那个Sonar问题页中, 就连命名规则都有的。
韩葆:
驼峰很简单啊,你用checkstyle就可以了,把它集成进Sonar或者Coverity就好了,很容易。可以参考http://www.cnblogs.com/woshimrf/p/using-checkstyle.html这篇文章。
木头人:
因为已经基于Sonar做了 jekins的集成 也就是工作流,想先用用。
韩葆:
@石山种草 项目人员数超过50个人就应该用代码静态分析了,我给你算笔经济账,50个研发一个月在75-100万左右的成本,就该走到静态代码分析角度了。Sonar作为初始阶段的普及和补充,随时都可以使用,就是很难推广成为标准KPI而已,往往是个Optional可选的,但是静态分析和安全审计在华为阿里这些企业里面都是KPI的,比如高等级缺陷不允许出现
木头人:
Coverity想要了解 是有商务可以接触的么。
韩葆:
你们有试用过么?这个后续咱们私下沟通吧
木头人:
Coverity可以自定义规则么?
韩葆:
支持的,包括代码规范和数据流分析。
石山种草:
@韩葆 谢谢,目前还没做过那么大的项目,不过能想象,如果这么多人的协作开发的话,项目风险管理一开始就得介入。
韩葆:
越早越好,问题出现的越晚,解决问题越难
TestOps 云层:
价值是无价的
韩葆:
所以说CICD是很关键的因素。比如夜间自动构建,自动进行代码分析,自动分发,自动集成,自动走到云测平台测试。这些流程要是人工做能累死,用自动化工具可以节省成本。
Cynthia:
Sonar是不是开源的?来晚了前面的没怎么听。
韩葆:
Sonar是开源的
Cynthia:
谢谢
韩葆:
@Cynthia 可以等会后总结
石山种草:
@韩葆 逸松?想了解下汽车行业的一些自动化构建和测试的情况。
韩葆:
汽车行业自动化测试的一个情况就是呃,我因为接触的比较多,像比亚迪、上汽、北汽、车回家、几点汽车啊,还有一些就是杂七杂八的自动驾驶这些,这很关键的一个问题,是不是嵌入式的环境?嵌入式环境是很难做自动化构建的,就是往往是说要人工测试,然后去去执行测试的一个过程,但是也可以半命令行式了,然后把它给自动化起来就是半自动化起来。
汽车行业很关键的一个编程的规范或者行业的规范就是MISRA。MISRA是一个误报率的非常高,但是有规避过去的一个编程的规范。大家知道不知道那个丰田包装那个事件?后来就是美国的这个企业就是去看的时候发现,丰田的代码就是一团乱码,他就是没有遵循任何的代码编程规范。后来就是强制性的要求就是车规。像我们百度的无人车,像一下其他的一些车企,然后都是要遵循这样的一个汽车编程规范的,这是一个行业性的规范。
再下来就是安全的内容,当然就是其实我今天没有讲硬件的安全,汽车的硬件安全也是很关键的一个问题。就是你从来不去去接收这种蓝牙的输入、wifi的输入。那真的是你做安全防护了吗,真的足够健壮吗,如果不足够健壮怎么办。这是网络协议的,这样的一个安全。就是相当于说你的汽车好好的在马路上走着,然后突然停止工作了就非常恐怖~这个也是属于安全的一个内容。
TestOps 云层:
静态分析是未来CI必须走的第一步
木头人:
耗费开发时间的,落地难度都很大
TestOps 云层:
因为只有付费的才是精品,开源的都是属于大家爱好玩玩的
韩葆:
@TestOps 云层确实是这么回事
TestOps 云层:
回头看看QTP做的真好
Coco:
静态分析的概念很早听说过,我之前的公司有设置规范,小项目也有过人工审核,现在的公司没有这种理念,代码质量差。
TestOps 云层:
很多时候还没到规模意识到潜在质量问题在后期的代价
Coco:
领导不重视,领导没有这些理念,下面写代码的更不会去推行
brook:
韩老师,coverity要怎么集成到devops比较好?
韩葆:
@brook?你们腾讯找启良
【互联网测开社群线上分享会】是为大家提供的免费交流活动,定期均会请到大咖来和大家探讨测试技术。
分享要求:对测试类技术有一定深入理解,并且愿意与大家风向
分享形式:微信群语音分享及互动
分享报名关注我们的公众号
如果大家对于这次分享会的内容有什么特别的感受、疑问,甚至是关于测试的任何疑问都可以注册登录我们的社区http://viptest.net/发帖留言。注册、发文、提问都有金币相送,金币可以兑换Viptest各位大佬们的书籍和视频哟~
我们的大咖分享会每两周就会有一次,下一期的由范斌老师带来软件相关人员快速熟悉性能测试的秘决,欢迎大家积极参与进来哟~
精益技术 赋能过程