《5韩寒-iSQE 2023 开源项目中的软件测试和质量保证.pdf》由会员分享,可在线阅读,更多相关《5韩寒-iSQE 2023 开源项目中的软件测试和质量保证.pdf(17页珍藏版)》请在三个皮匠报告上搜索。
1、中国国际软件质量工程峰会中国国际软件质量工程峰会International Software Quality Engineering Forum开源项目中的软件测试和质量保证开源项目中的软件测试和质量保证红帽软件,高级软件质量工程师韩寒22021 iSQE 开源软件的介绍与其重要性开源软件使用的质量保证方法代码审查持续集成如何帮助提高开源项目质量集成开源代码的注意事项32021 iSQE 开源软开源软件件开源软件(英语:open source software,缩写:OSS)又称开放源代码软件,是一种源代码可以任意获取的计算机软件,这种软件的版权持有人在软件协议的规定之下保留一部分权利并允许用
2、户学习、修改以及以任何目的向任何人分发该软件-操作系统:Linux,Android-函数库:glibc,openssl,gnutls,gtk,qt,-服务:Nginx,Tomcat,Mysql-语言编译器/解释器:gcc,clang,python,ruby,rustc,openjdk-云平台:k8s,openstack-.开源软件示例42021 iSQE 开源软件的重要性开源软件的重要性开源软件已经成为基础设施的核心核心要素2019年,中国企业已经使用开源技术的企业占比为 87.4%,10.3%有计划使用开源技术11:开源生态白皮书(2020年),中国信息通信研究院2:2021开源安全与风险分
3、析报告,SYNOPSYS2020年,SYNOPSYS审计的1546个代码库中,98%包含开源代码2十四个五年规划和十四个五年规划和20352035年远景目标纲要年远景目标纲要中明确支持开源:支持数字技术开源社区等创新联合体发展,完善开源知识产权和法律体系,鼓励企业开放软件源代码、硬件设计和应用服务52021 iSQE 社区阶段开源软件开发流程开源软件开发流程代码合并请求代码提交发布功能/集成/Alpha/Beta测试程序构建社区发布下游补丁产品阶段代码审查持续集成单元测试构建测试模糊测试62021 iSQE 代码审查(代码审查(code code reviewreview)代码审查是开源协作的
4、头等大事。通常来讲开源软件中主要进行轻量代码审查,即审查新贡献的、待合并到主线的代码(MR,merge request)。代码审查平台1.邮件列表2.专用代码审查平台,如gerrit3.集成代码审查平台,如github、gitlab所有用户都可以进行代码审查。但一般只有项目维护者有权限合并MR到主线。代码审查的方法:1.自动审查:在持续集成中对MR分支进行审查。2.人工审查:开发者人工对MR进行审查。通常检查代码的逻辑、语义、兼容性、编码规范。原理:足够多的眼睛,就可让所有问题浮现-林纳斯定律72021 iSQE 代码审查示例代码审查示例-邮件列邮件列表表1:https:/ iSQE 代码审查
5、示例代码审查示例-GerritGerrit1:https:/gerrit.ovirt.org/q/status:open92021 iSQE 代码审查示例代码审查示例-GithubGithub1:https:/ iSQE 持续集成持续集成(CI)(CI)开发人员对代码的更改,将会定期自动进行构建和测试。开源社区常用的CI工具:GitHub ActionsTravis CIJenkinsGitLab CI社区所用CI通常运行在虚拟机虚拟机或者容器容器环境中。不能使用虚拟机、容器或不便实现自动化的测试用例,仍由人工进行测试验证。CI通常可以覆盖构建测试构建测试和单元测试单元测试。112021 iS
6、QE 持续集成持续集成-模糊测试模糊测试(fuzzingfuzzing)一种自动生成自动生成并输入随机随机、非法非法、恶意恶意数据的测试技术。通常fuzzing 用于发现代码中的严重问题严重问题,如程序崩溃、缓冲区溢出、内存泄漏等持续模糊测试平台:OSS-FUZZGitlab DevSecOps在漏洞披露期截至漏洞披露期截至前,持续模糊测试的失败结果,只通知模糊测试和开源项目核心开发人员。122021 iSQE 如何帮助提高开源项目如何帮助提高开源项目质量质量增加开源产品在企业内的部署和应用鼓励员工参与开源项目需求(邮件列表RFC邮件,bugzilla RFE bug,github/gitla
7、b issue)开发(贡献代码、代码审查)测试(单元测试/模糊测试/功能测试,报告bug)文档(书写wiki/知识库/手册,改进翻译)加入或赞助开源基金会132021 iSQE 集成开源代码的注意事集成开源代码的注意事项项111:如何全面提升企业开源治理能力,李纪华 IBM1.识别产品中依赖的开源组件和开源代码,统一协调监管2.参与开源社区建设,把控甚至影响开源社区发展方向3.确保开源组件中开源许可证使用的合规性a.常见的各类许可证b.我国法律保护开源许可证相关的知识产权(以往判例)4.跟踪所用开源组件的安全漏洞,及时修补a.NVD漏洞数据库b.国家信息安全漏洞库c.Redhat安全信息更新5
8、.使用长期维护版本(LTS)6.使用商业支持的开源软件142021 iSQE 小结小结开源社区主要通过代码审阅、持续集成等方式保证软件质量企业可通过应用开源软件、鼓励员工贡献开源项目、加入或赞助开源基金会等方式帮助改进开源软件质量在企业产品中集成开源组件,需留意开源组件许可证使用的合规性和开源组件的安全漏洞。必要时使用长期维护版本或者商业支持的开源软件。152021 iSQE 问题:各位是怎么减少开源代码质量对整体软件质量的风险的?162021 iSQE 国际软件质量工程-international Software Quality Engineering 需求工程测试过程改进软件测试体系质量联盟国际需求工程测试成熟度模型集成国际软件测试CSTQB 专家工作组国际业务分析国际用户体验自动化、安全性、AIThank you Thank you 中国国际软件质量工程峰会中国国际软件质量工程峰会International Software Quality Engineering Forum