泛联新安亮相质量竞争力大会 -《独立自主国产化的代码静态分析技术与军工级自动化单元测试技术解析》
2021-09-159月9日-9月15日,国内软件行业最具影响力峰会之一的TID质量竞争力大会在北京召开。大会邀请了来自华为、百度、腾讯、阿里巴巴、北京大学、中科院等知名企业的150位行业精英做了演讲交流。泛联新安市场部副总经理韩葆先生同样受邀并发表了主题为《独立自主国产化的代码静态分析技术与军工级自动化单元测试技术解析》的演讲与技术分享。
#01 为什么要实现软件测试基础工具 国产化与自主可控?
统计信息表明,国内软件研发团队的代码质量与国外软件研发团队的代码质量相比,仍存在不小的差距,但关键领域(如航空航天/军工/金融/操作系统)等行业如果软件质量太差,会带来严重的风险。
另一方面:软件安全正在面临越来越大的挑战,全球范围内由于敏感信息数据泄露、开源代码漏洞、源代码安全漏洞导致的攻击层出不穷,造成了严重损失。亟需多种手段对源代码中的安全漏洞进行深度分析。
与此同时,国外的测试软件机密等级不断提高,对国内某些客户禁止出口,导致多个大型企业/院校/研究院所无法正常使用。
在此背景下,工信部出台了《关于加快培育发展制造业优质企业的指导意见》,意见明确提出优质企业自主创新能力提高的要求。支持参与制造业创新中心、国家工程技术研究中心等创新平台建设,承担国家重大科技项目、重大技术装备创新发展工程。引导参与信息技术应用创新重大工程,推广经验成果。推动产业数字化发展,大力推动自主可控工业软件推广应用,提高企业软件化水平。依托优质企业组建创新联合体或技术创新战略联盟,开展协同创新,加大基础零部件、基础电子元器件、基础软件、基础材料、基础工艺、高端仪器设备、集成电路、网络安全等领域关键核心技术、产品、装备攻关和示范应用。推动国家重大科研基础设施和大型科研仪器向优质企业开放,建设生产应用示范平台和产业技术基础公共服务平台。同步新出台的《关键信息基础设施安全保护条例》也对关键信息基础设施网络安全的关注提高到了一个新的高度。
就当前的情况和国内软件开发团队代码质量与安全的需求,湖南泛联新安信息科技有限公司在大会上深入介绍了国产自主可控的CodeSense源代码缺陷深度分析解决方案与iUnit智能单元测试软件,获得了参会人员的重点关注。
#02 CodeSense源代码缺陷 深度分析解决方案
CodeSense Pro是新一代的软件源代码缺陷分析平台。经过清华大学与国防科技大学的专家团队对代码静态分析技术的深度理论研究,结合软件工程实践研发而成。CodeSense Pro使用了控制流分析、数据流分析、上下文敏感分析、对象敏感分析、跨程序分析和跨文件分析等多种国内外先进技术,能够精准的检测软件安全漏洞与质量缺陷,支持多种编程语言,具有强大的检测规则扩展能力,支持多种开发环境与国产化平台。
CodeSense Pro软件源代码缺陷深度分析平台的技术优势:
· 自主可控:CodeSense 通过了银河麒麟飞腾 OS 系统兼容性认证。核心开发团队来自清华大学、国防科大等研究机构,作为国内最早投入软件安全、编译技术、形式化方法的研究团队,在该领域拥有10年以上研究经验。产品核心代码均为自研,拥有自主知识产权,自主可控性好,能更好的保护用户代码资产安全。
· 完全自主可控:CodeSense 通过了银河麒麟飞腾 OS 系统兼容性认证。核心代码均为自研,拥有自主知识产权。
· 扎实的理论基础。团队近5年累计发表学术论文百余篇,包含大陆首篇CAV论文,两次获得COMPSAC会议唯一最佳论文;
· 行业高度认可:NASAC2018代码漏洞检测工具一等奖,NASAC2018整数缺陷自动修复工具优秀奖,NASAC2018 API分析工具三等奖,工信部首届“鼎信杯”应用创新软件;
· 开源社区信任:对17个重要开源项目开展了分析(包含 Linux,OpenSSL 等重要项目),共检测到75个实际缺陷,其中61个被开发者确认或修复。
· 丰富的理论研究与实战经验:团队近5年累计发表学术论文百余篇,包括中国计算机学会(CCF)分类A级的:POPL、CAV、LICS、ICSE、FSE、TSE、TOSEM、AI、TPDS、TC等,团队核心成员以第一作者发表了大陆首篇CAV论文,两次获得COMPSAC会议唯一最佳论文,在工业领域的应用论文发表在TIE、TEC等高影响因子期刊(IF分别为7.0、8.1),与国外静态分析领域知名学者保持活跃交流,为工具研发提供理论支持;多次获得NASAC2018代码漏洞检测工具一等奖,NASAC2018整数缺陷自动修复工具优秀奖,NASAC2018 API分析工具三等奖,工信部首届“鼎信杯”应用创新软件等奖项;对开源社区的贡献:对17个重要开源项目开展了分析(包括 Linux,OpenSSL 等重要项目),共检测到75个实际缺陷,其中61个被开发者确认或修复。
· 主流环境系统支持:Windows、Linux、银河麒麟;支持高级语言种类包括:C/C++、C#、Java、PHP、Python、JavaScript、LUA、XML;支持主流开发框架:SpringMVC、SpringBoot、SSM、Struts2、ThinkPHP、Flask;支持主流构建:CMake、Maven;支持主流SCM:GitLab、GitHub、SVN;支持主流构建系统:Jenkins、GitLab-CI;支持主流Bug跟踪系统:禅道;支持RESTFUL API,可由第三方系统集成,容易嵌入DevOps;支持缺陷知识库扩展、支持项目级的访问权限控制。
· 强大的缺陷和漏洞检测能力:支持国内外主流标准:CWE 7PK覆盖率80%+:Java分类200+,涵盖CWE 130+;C分类60+,涵盖CWE 60+;其他语言分类300+,涵盖CWE 200+;OWASP TOP 10覆盖率100%;支持GJB-8114、GJB-5369编码规范。
· 全局执行数据流图显示:CodeSense提供缺陷类型的全局数据流图,在一个图上展示同一类型缺陷的全部数据流图,方便开发人员找到修复该类型缺陷的最关键函数/代码块。
· 深入且精准的缺陷分析:传统静态分析技术大都基于语法树(AST),便于检测代码中的“规范”类缺陷,但对于深度缺陷检测不足。CodeSense 中采用了基于值流图的技术方案,兼顾了分析效率与精度,可检测出跨越多重函数、多个文件的隐蔽代码缺陷,有效提升了检出率。
#03 iUnit智能单元测试平台
iUnit是一款针对C/C++语言的,具有自主知识产权的单元测试平台,它能够对源代码进行路径分析,采用先进的符号执行技术自动生成单元用例并模拟执行,大幅度提高开发和测试人员的效率,缩短软件开发周期。iUnit无误报的深度缺陷检测能显著提升软件质量,并能针对GJB 5000A/CMMI提供一站式解决方案。
iUnit智能单元测试平台的关键技术指标:
· 智能单元测试:iUnit是一个全自动单元测试平台,基于动态符合执行和约束求解技术,能分析代码路径,自动生成覆盖所有代码逻辑路径的测试用例,并自动执行。
超高覆盖率单元测试用例自动生成:iUnit针对覆盖准则生成用例,支持语句覆盖率,分支覆盖率,条件覆盖率和MC/DC覆盖率,测试用例覆盖率接近100%;支持不同等级的覆盖率类型,也支持不同的产业标准如ISO 26262,DO-178B/C等标准。
· 全系列软硬件平台支持:iUnit基于B/S架构设计,全面支持DSP、MCU、CPU嵌入式硬件平台,麒麟、翼辉、Vxworks、Linux等国内外软件开发环境,适配CCS、Tornado、Keil、Visual Studio等工程环境。一个工具即可满足各类型软硬件平台上的测试需求。
· 可视化单元测试用例创建与修改:通过对代码的解析,获取函数的形参表,全局变量,桩函数信息,iUnit提供直白的表格式单元测试用例创建与修改方式。对每个测试用例,iUnit都能够提供精准的程序执行路径图形化展示。
· 自动化报告定制生成:iUnit提供定制报告服务,也提供满足GJB5000A标准的GJB438B标准的报告模板,一键导出。
· 回归测试:回归测试一个好处就是可以确保源码变更后不会引入新的错误。iUnit提供一键式的自动化回归测试。
· 自主可控:iUnit支持国产化操作系统,全面完成对银河系列操作系统的适配。
此次大会同时也汇集了国内产品质量测试领域的众多专家学者,围绕泛联新安产品研发及生产过程展开了多形式、多角度、高规格的跨界交流和碰撞融合。