说说代码质量、代码安全和软件测试那些事
作者 |灰狐
来源|?灰狐
近期工作需求,梳理代码质量、代码安全和软件测试,思考让它们更好地融合日常研发和DevOps管道。
今天,我将简要谈谈代码质量、代码安全和软件测试的话题。
关于代码质量,我会使用Sonar之类的工具将其纳入代码质量和代码规范管理,这对于自研产品和外包项目的质量控制非常重要。
快速体验Sonar,可以像这样克隆Open Testng Suite,然后运行mvn命令
这是官方的Sonar项目。让我们一起去了解和感受它。
代码除外质量 此外,代码安全也越来越受到重视。你可以想一想,如果代码不安全,软件系统怎么可能安全。
现在开源项目越来越多,如何保证使用和集成的开源软件是安全的,没有后门和植入的恶意软件。
静态分析和软件安全测试可以作为一个突破口,因为有大量的开源软件可供分析和评估。并且可以参与开源项目进行静态分析和软件测试,贡献自己的力量,增加自己的影响力。
代码标准、安全编程,以及如何编写安全健壮的代码,都值得我们去了解。
代码扫描、机器学习,只要未来的程序员编写代码,代码机器人就可以立即感知错误和安全问题。未来,开发好代码应该比开发坏代码更容易。
此外,技术人员可以从测试人员进入这个行业。在看到了很多丑陋漂亮的代码之后,你的审美会逐渐形成并不断提高,这可能有助于你将来成为一名优秀的程序员。
有很多代码安全工作要做,一些关键检查包括:
* API 不正确使用
* 安全编码最佳实践
< p>* 常见编码错误* 缓冲区溢出
* 构建系统安全问题(Maven、Gradle、Bazel)
* 类型和类级别不匹配< /p>
* 代码可维护性问题(无单元测试,难以重构)
* 并发数据访问冲突
* 控制流问题
< p>*跨站请求伪造 (CSRF)* 跨站脚本 (XSS)
* 死锁
* 异常和错误处理问题
< p>* 不安全的数据处理* 边界问题、溢出
* 内存问题:脏内存、内存损坏、非法内存访问、指针、空指针引用等
* 路径操作
* 系统性能低效,如何改进和改进
* 系统出现各种莫名其妙的错误和挂起,考虑引入分布式调用链
p>* 错误的配置设置(尤其是Spring和Java应用有很多配置信息需要维护)
* SQL注入
可以做的事情很多..
接下来要好好利用静态分析,因为它极其重要。
静态程序分析是在程序没有执行时进行的分析。通过在编写代码时快速查找和修复安全和质量问题。它也与静态分析、静态应用程序安全测试(SAST)有关?等等。
想一想,如果你能在编写代码时及时发现代码中严重的软件质量缺陷和安全漏洞。将自动安全测试无缝集成到 CI/CD Pipeline 并支持现有的开发工具和工作流将是一项非常重要且很酷的工作。并管理安全策略合规性问题(如:OWASP Top 10、CWE/SANS Top 25和PCI DSS),支持多语言、多框架、模板、多平台、各种编译器和各种主流IDE。
代码安全测试后,往往以安全审计报告的形式呈现。
这是一份安全审计报告,供您参考。
这是分布式应用程序运行时,Dapr已经接受了CNCF认可的网络安全公司Cure53的安全审计。测试的重点是:
* Dapr 运行时代码库评估
* Dapr 组件代码库评估
* Dapr CLI 代码库评估
< p>* 权限提升* 流量欺骗
* 密钥管理
* RBAC
* 验证基本假设:mTLS、函数域、API 认证
* 编排增强(Kubernetes)
* DoS 攻击
* 渗透测试
此报告也可用 一些指导我们日常安全审计工作的想法、流程和关注点。
一些静态分析资源,大家可以关注一下。
超棒的静态分析
此外,跟进领先的制造商,不断更新知识结构和实践技能。
说完代码质量和代码安全,再来说说软件测试。
传统测试必须加入这样的代码质量管理,不仅仅是功能黑盒测试,还有白盒测试到程序和逻辑中,这也可以带来团队代码规范的逐步形成和长期实施系统。
黑盒测试(功能测试):黑盒测试人员不知道程序的内部情况,不需要具备应用代码、内部结构和编程语言的专业知识,所以没有硬性要求要有编程知识和编程能力。
白盒测试(逻辑测试):白盒测试人员需要了解被测程序的内部结构、算法等信息。这是从程序员的角度对程序的测试。根据测试级别的复杂程度,白盒测试需要程序员具备更高水平的知识和能力。
上一篇:超准老年痴呆测试树上有一个女性的背影,能一
下一篇:没有了