IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 从自身经历出发,梳理出来的一套完整的软件测试体系,果断收藏 -> 正文阅读

[开发测试]从自身经历出发,梳理出来的一套完整的软件测试体系,果断收藏

前言

此次文章的连载,目的是笔者从自身经历出发,梳理出来的一套完整的测试体系,涵盖了功能测试、接口测试、单元测试、代码扫描、性能测试、稳定性测试、异常测试、前端测试、线上质量跟踪、线下质量改进、安全测试等各个测试环境。

希望可以通过自己的文章输出,让大家对测试工作有一个更整体性的认知,也方便大家构建自身的测试体系,在测试行业上越走越好~

代码扫描的起源

静态源代码扫描是近年来软件测试过程当中,被人提及较多的软件应用安全解决方案之一,也是大厂必备考题。

它是指在软件工程当中,程序员在写好源代码后,无需经过编译器编译,而直接使用一些扫描工具对其进行扫描,找出代码当中存在的一些语义缺陷、安全漏洞的解决方案。

静态扫描技术已经从90年代时候的,编码规则匹配这种由编译技术拓展过来的分析技术向程序模拟,全路径执行的方向发展。

由此,这种模拟执行相对的执行路径比动态执行更多,能够发现很多动态测试难以发现的缺陷,在源代码环节就减少bug,更快地提高测试的效率。

关于代码扫描工具,比较主流的有SonarQube、FindBugs、Alibaba Java Coding Guidelines、CheckStyle。

今天我们主要从SonarQube做一个切入,细细了解。

SonarQube大致分为idea插件版本和带有非常友好功能强大GUI的SonarQube代码质量平台,完全能满足我们的需求。

并且Sonar提供了面向gitlab、jekins、maven的无缝对接支持,是当下最活跃热门的代码质量扫描工具。

SonarQube的优势

个人使用之后认为,sonarQube的优势如下(相比于阿里编码规约这种市面上常见类似软件):

更加优秀的图形化界面基本上通过界面就可以对自己项目的代码状况一目了然。

可以查询出其它软件难以定位到的问题。

比如:

·可能导致空指针异常的问题 (对象在进行使用前没有加空的判断);

·可能导致内存泄漏的问题,在try catch块里面,直接使用e.printStackTrace()将堆栈信息打印到内存;

·可能导致的漏洞,成员变量使用public定义。

还有诸如流等未关闭或者是非正常关闭,都能够检测出来,功能非常强大。

支持Java、C#、C/C++、PL/SQL、Cobol、 JavaScrip、Groovy等等二十几种编程语言的代码质量管理与检测。

Sonar(SonarQube)是一个开源平台,用于管理源代码的质量,开源意味着可信赖,安全可靠,不需要担心代码泄露的风险。

SonarQube的检测维度

复杂度维度检测

如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。

重复性代码检测

重复显然程序中包含大量复制粘贴的代码是质量低下的,Sonar可以展示 源码中重复严重的地方。

代码规范

不遵循代码标准,都可以检测出来。

自定义规则编写

Sonar可以通过PMD、CheckStyle、Findbugs等等代码规则检测工具规范代码编写。

代码注释检查

注释不足或者过多没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降。

而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。

单元测试结果展示

缺乏单元测试Sonar可以很方便地统计并展示单元测试覆盖率。

循环嵌套代码检测

糟糕的设计通过Sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则。

通过Sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况,检测藕合。

SonarQube架构

SonarQube服务器

主要包括web服务器,基于ElasticSearch的搜索服务器,计算引擎服务器。

其中,web服务器是供开发人员浏览查看代码分析结果、进行相应的配置等。

计算引擎服务器主要是处理代码分析报表并将其存储在数据库。

SonarQube数据库

存储配置信息和代码分析报表。

多个Soanr插件

包括分析各种语言的插件。

多个Sonar Scanner

主要运行在开发人员的代码端,可以单独部署,也可以集成在Maven、Gradle等。

SonarQube实战

下载

根据对应的操作系统下载安装包。

下载地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

解压

解压安装包,如果是windows环节的话,配置环境变量到path,见图:

验证

验证是否成功,如下提示则表示成功:

以上安装完毕,接下来我们通过扫描器结合SonarQube来完成对代码的质量扫描。

创建口令

在Sonar系统内创建token口令,建项目名称,下一步用到:

这里的token在第一次登陆SonarQube系统时会提示你录入,见下图,也可以跳过,登陆系统后可以在如上图位置进行设置。

检查

cd到你需要进行代码检查的项目目录,执行如下命令(Windows服务器):

***>sonar-scanner.bat -Dsonar.projectKey=mvndemo -Dsonar.sources=.

-Dsonar.host.url=http:// 192.168.192.144:7000

-Dsonar.login=85d561f16a442dd3593b069d704fca1826b75a6a

-Dsonar.java.binaries=./WebRoot/WEB-INF/classes

没有异常则表示成功,如下图:

SonarQube报告解析

登录http://192.168.192.144:9000,加载项目扫描情况:

点击项目名称,查看报告总览:

开发人员主要关注【问题】标签页。

主要关注bug和漏洞,其中bug是必须要修复的,漏洞是要经过评估,查看是否需要修改。

异味是轻微问题,不影响代码,如创建一个变量,但从未使用过。

严重程度:严重程度是开发人员用来标记问题等级,排序为阻断、严重、主要、次要、提示。

处理方式:处理方式是开发人员用来标记问题的产生。

如当评估一个问题需要修改,开发人员要确认此个问题,修改后点击解决。

如果认为这个问题是代码规则不符,不需要修改,则点击误判或不修复。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 13:07:37  更:2021-10-27 13:07:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:25:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码