软件系统质量评审工具,方法和参考资料(融合Java-Python-C#-React)

评审工具、方法、参考资料

软件系统的质量评审方法和现成的资料有很多种,以下是一些常用的方法和资料:

1. 静态代码分析:使用静态代码分析工具对代码进行分析,发现潜在的代码缺陷和安全漏洞。

》》》JAVA《《《

1)PMD/ FindBugs插件

简介:可以检查代码隐藏bug

参考资料:IDEA插件FindBugs的使用详解_java_脚本之家

2)CheckStyle:

简介:代码规范校验工具

参考资料:IDEA中配置alibaba代码规范校验工具checkstyle详细教程_alibaba checkstyle_江畔独步的博客-CSDN博客

 

》》》C#《《《

1)Klocwork(c/c++/c#/java):

简介:软件质量缺陷检测、安全漏洞扫描、编码规则扫描、规则定制、支持DevOps、团队部署和报告、认证和鉴定

参考资料:C/C++/C#/Java静态分析工具Klocwork

Klocwork-最佳的现代化代码质量静态分析工具-创提信息科技(上海)有限公司

2)stylecop:

简介:代码规范校验工具(微软也有提供一款类似的:FxCop)

参考资料:https://www.cnblogs.com/xiaopohou/archive/2011/09/28/2194938.html

 

》》》Python《《《

1)Pyint:

简介:找出错误和代码规范问题

参考资料:Python·代码自检工具Pylint_python代码检查工具_东方隐侠-千里的博客-CSDN博客

2)DeepSource:

简介:DeepSource针对各种通用编程语言(例如Python、Javascript、Golang等),提供了静态代码分析。在实际使用中,DeepSource会生成一个能够被嵌入在存储库中的配置文件,以便对代码进行持续分析。由于提供了自定义的功能,因此我们可以使用DeepSource来轻松地开展,针对Python代码的静态分析。

3)Codacy:

简介:Codacy可以为各种通用编程语言(如Python)提供代码审查,提交有关代码覆盖率、重复率和复杂性等方面的报告。同时,它可以帮助开发人员在保持代码完整性的基础上,开展“纯净”的代码审查。

4)SonarQube:

简介:SonarQube以执行自动检查的方式,提供了对于代码质量的持续分析。作为一种静态代码分析工具,它可以发现Python中的代码错误、反模式、以及安全漏洞。当然,SonarQube也很容易与CI/CD管道相匹配,进行有效的代码质量管理。

SonarQube自带了两个子工具,其中Sonar Scanner负责执行分析,SonarQube Server则负责对结果进行管理和保存。

5)Veracode:

简介:Veracode是另一款流行的Python代码审查工具。它不仅提供了针对常见漏洞和安全暴露的扫描,而且能够通过静态分析,来识别并报告反模式等问题。此外,Veracode还可以提供包括交互式分析和动态分析在内的其他企业级产品。

6)Checkmarx:

简介:Checkmarx是一款应用安全性测试和静态代码分析的工具。它提供了静态应用测试、运行时(runtime)、交互式测试、依赖项扫描等功能,可轻松地通过扫描源代码,来消除各种漏洞。

7)Coverity:

简介:作为一个静态分析工具,Coverity旨在查找和修复各种通用编程语言(如Python、Javascript、Ruby、Java等)中的缺陷。波音和洛克希德·马丁等明星公司都会使用Coverity,来进行软件代码的测试和扫描。

8)CodeScene:

简介:CodeScene不仅是一款静态代码分析工具,而且能够提供行为分析,以方便开发人员根据代码库的演化,以识别不同的模式。用户既可以通过Git服务提供商(如Github或Bitbucket)去调用CodeScene,也可以在本地直接使用。

 

》》》React《《《

1)ESLint:

简介:ESLint 是一个可扩展,每条规则独立,被设计为完全可配置的lint工具。①可以用来检测代码,避免低级错误;②可以用来规范代码的开发风格,统一代码习惯。

参考资料:react 使用 eslint 的三种代码检查方案总结,多了解点--让代码更完美.... - 开发者博客

 

2. 单元测试:编写单元测试用例并执行,以验证代码的正确性和稳定性。

》》》JAVA《《《

1)Junit:

简介:它可以帮助为Java代码编写单元测试

2)TestNG:

简介:类似于JUnit 和NUnit, 功能都差不多, 只是功能更加强大,使用也更方便。

 

》》》C#《《《

1)MsTest:

简介:MSTest是一款由微软公司开发的单元测试框架,它能够很好地被应用在Visual Studio中,并且集成在了Visual Studio单元测试框架中,操作简单,上手容易。MsTest中核心的概念有Test Class(测试类)、Test Method测试方法、断言和初始化及清理方法。

2)NUnit:

简介:NUnit 是专门针对于.NET 的自动化单元测试框架,是 XUnit 家族的一个成员,最初是由Java的单元测是框架JUnit 而来,作者最终用C#对其进行重新编写,NUnit完全由C# 编写,使其更加符合C#习惯,并充分利用了.NET中反射、客户属性等特性。因此,该工具具有丰富的单元测试历史的同时,也具有适当的C#风格。

3)XUnit:

简介:XUnit .NET是一个开源的的单元测试工具,由NUnit v2的原始发明者编写,支持C#,F# ,VB.NET版以及其他.NET语言,由.NET基金会支持,它采用了一种非常独特、现代和灵活的单元测试方法。

参考资料:C#单元测试工具 - 码农教程

》》》Python《《《

1)unittest:

简介:这是标准库也是最常见的Python单元测试框架,它基于Java的JUnit框架,最初由Steve Purcell编写(以前称为PyUnit)。unittest基本上提供了Java中的Junit框架的功能。它提供了一个名为TestCase的基类,它有一组广泛的方法来验证函数调用和语句的输出。该模块是为编写单元测试而创建的,但是只要测试使用用户接口,验收测试也可以用它来编写。例如,一些测试框架提供帮助,在unittest之上驱动工具,如Selenium。

参考资料:python单元测试工具_python语言单元测试的工具_Ternence_Hsu的博客-CSDN博客

 

》》》React《《《

1)Jest:

简介:React 组件的单元测试本质是也是单元测试。因此它也符合我们之前介绍过的单元测试的全部特点。唯一不同的地方在于 React 组件的单元测试中我们需要找到合适的方法对执行结果进行断言。换言之,我们要根据 React 的特点来设置代码是否正确执行的判断条件。

参考资料:软件测试技术之利用 Jest 为 React 组件编写单元测试

 

3. 集成测试:将各个模块集成到一起进行测试,以验证系统的交互和功能。常用的集成测试框架有Selenium、Appium等。

》》》JAVA《《《

1)Selenium:

简介:Selenium 可能是最流行的 Java UI 测试工具

2)Appium:

简介:Appium是一种自动化测试工具,旨在为原生,混合和移动Web应用程序提供跨平台测试能力。Appium允许测试人员使用他们最喜欢的编程语言(包括Java,Python,Ruby,PHP,JavaScript等)编写测试脚本,同时也允许他们在iOS和Android平台上使用相同的API来编写测试脚本,从而实现跨平台测试的目标。

Appium还支持使用不同的测试框架(包括JUnit,TestNG,RSpec,Mocha等)进行测试,并支持集成到持续集成工具(例如Jenkins,Travis CI等)中,以实现自动化测试的目标。

总之,Appium是一种功能强大,易于使用且开放的自动化测试工具,适用于各种移动应用程序测试场景。

参考链接:Java 十大单元测试和自动化集成测试工具 - 豆丁网

 

》》》C#《《《

1)Selenium:

简介:结合C#的NUnit

参考链接:集成C#测试框架和Selenium对于Web系统实现自动化测试_c#集成测试工具_Klbetter的博客-CSDN博客

2)使用 Autofac 和 Moq进行集成测试

参考链接:c# - 使用 Autofac 和 Moq 进行集成测试 - IT工具网

 

》》》Python《《《

1)Selenium:

简介:Selenium 是最常用的自动化测试框架之一,具有良好的社区支持。

与 Playwright 不同,它不提供 API 测试功能,所以它不是测试后端逻辑的框架。但它提供了 Chromium 和非基于 Chromium 的浏览器驱动程序来评估和验证 UI。

该框架具有更多的编程语言支持,并且在一般 Web 自动化中更加通用。它还接受用于并行编排测试用例的云网格功能。因此,它是跨浏览器和跨平台测试的绝佳选择。

Selenium 具有一系列专用选择器,可让你作为普通用户与 UI 进行交互。如果你需要一些 UI 动作断言,你可以从 unittest 类继承它。Selenium 还具有适用于 Chrome 和 Firefox 的 IDE 扩展。这提供了记录和播放测试。但与 Playwright 的 codegen 不同,它不会生成测试代码。

2)Jenkins:

简介:Jenkins是目前最为流行的CI/CD工具之一,它可以支持多种语言和技术栈,如Java、Python、JavaScript等。本文将介绍如何使用Jenkins和Python实现自动化测试持续集成。

参考链接:Jenkins+Python自动化测试持续集成详细教程(全网独家)_jenkins python自动化测试_软件测试老莫的博客-CSDN博客

3)DrissionPage:

简介:DrissionPage,即 driver 和 session 组合而成的 page。是个基于 python 的 Web 自动化操作集成工具。它用 POM 模式封装了页面和元素常用的方法,自带一套简洁直观优雅的元素定位语法,实现了 selenium 和 requests 之间的无缝切换,可兼顾 selenium 的便利性和 requests 的高效率,更棒的是,它的使用方式非常简洁和人性化,代码量少,对新手友好。

DrissionPage的优点:

① 无 webdriver 特征,不会被网站识别

② 无需为不同版本的浏览器下载不同的驱动

③ 运行速度更快

④ 可以跨 iframe 查找元素,无需切入切出

⑤ 把 iframe 看作普通元素,获取后可直接在其中查找元素,逻辑更清晰

⑥ 可以同时操作浏览器中的多个标签页,即使标签页为非激活状态,无需切换

⑦ 可以直接读取浏览器缓存来保存图片,无需用 GUI 点击另存

⑧ 可以对整个网页截图,包括视口外的部分(90以上版本浏览器支持)

⑨ 可处理非open状态的 shadow-root

参考链接:【愚公系列】2023年02月 Python工具集合-DrissionPage自动化测试集成工具-腾讯云开发者社区-腾讯云

 

》》》React《《《

1)selenium自动化服务器

2)Nightwatch:

简介:非常漂亮的节点自动测试框架

参考链接:全栈React第26天:繁忙集成测试--技术员007 ଘ(੭ˊᵕˋ)੭

 

4. 性能测试:通过模拟多种负载情况,测试系统的性能和响应时间。

5. 安全测试:测试系统的安全性和防御能力,发现潜在的安全漏洞和风险。

测试目标:吞吐量、响应时间、错误率、QPS、TPS

》》》JAVA《《《

1)ab:

简介:简单易上手,测试web服务时非常实用

2)JMeter:

简介:图形画面编写测试用例;JMeter 不仅可以实现简单的并发性能测试,还可以实现复杂的宏基准测试。我们可以通过录制脚本的方式,在 JMeter 实现整个业务流程的测试。JMeter 也支持通过 csv 文件导入参数变量,实现用多样化的参数测试系统性能。

3)LoadRunner:

简介:收费版-专业

对比分析:

1dda1157b4104c919c171401c7f930ae.png

参考链接:Java性能优化四、性能测试工具

 

》》》C#《《《

1)BenchmarkDotNet

参考链接:C# 标准性能测试_51CTO博客_c# 测试

 

》》》Python《《《

1)locust

参考链接:Python实现性能测试(locust)_python性能测试_qq_492448446的博客-CSDN博客

 

》》》React《《《

1)Profiler:

简介:Profiler 是 React 中的一个组件,由 B. Vaughn 开发,它可以测量 React 应用渲染的频率和渲染所花费的时间资源。Profiler 提供一个函数属性 onRender,当组件 mount 或者 update 的时候,这个函数会接受到一些时间指标。用这些时间指标你就可以发现效率低下的代码了。

2)React Developer tools:

简介:React Developer tools 是 React 官方团队发布的一个浏览器插件,功能十分强大。我要介绍的是 Highlight Update 这个功能。这个工具用来检测组件重复渲染非常有效。他可以用不同的颜色来标识组件的边框,颜色越黄表示这个组件重复渲染的次数越多。

参考链接:https://www.cnblogs.com/axl234/p/16003246.html

参考链接:React code review 日常十问_Knight_Key的博客-CSDN博客

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knight-Key

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值