CN107844422A - 一种在linux下自动统计Js语言编码缺陷率的方法 - Google Patents

一种在linux下自动统计Js语言编码缺陷率的方法 Download PDF

Info

Publication number
CN107844422A
CN107844422A CN201711069642.7A CN201711069642A CN107844422A CN 107844422 A CN107844422 A CN 107844422A CN 201711069642 A CN201711069642 A CN 201711069642A CN 107844422 A CN107844422 A CN 107844422A
Authority
CN
China
Prior art keywords
defects
line number
methods described
ratio
programming count
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201711069642.7A
Other languages
English (en)
Inventor
闫俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201711069642.7A priority Critical patent/CN107844422A/zh
Publication of CN107844422A publication Critical patent/CN107844422A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种在linux下自动统计Js语言编码缺陷率的方法,所述方法通过ESLint统计出Js语言编码的缺陷行数,并使用正则表达式得到要走查的项目里的所有JS代码行数,通过缺陷行/总行数得到缺陷率。本发明通过使用命令而不是使用第三方付费工具统计项目的Js代码总行数,自动计算出缺陷行数和缺陷率,并能够自动修改部分不符合编码规范的代码,节约成本和时间,有效控制代码的质量。

Description

一种在linux下自动统计Js语言编码缺陷率的方法
技术领域
本发明涉及自动化代码走查技术领域,具体涉及一种在linux下自动统计Js语言编码缺陷率的方法。
背景技术
代码检查是一种静态的分析,常用于寻找有问题的模式或者代码,并且不依赖于具体的编码风格。对大多数编程语言来说都会有代码检查,一般来说编译程序会内置检查工具。
静态代码走查是开发过程中非常重要的一步,程序化的过程人是看不到的。即使最后运行没有大问题,但可能存在一些问题,例如缩进不一致、调用无参构造函数时没有圆括号、没有声明等。
JavaScript 是一个动态的弱类型语言,在开发中比较容易出错。因为没有编译程序,为了寻找 JavaScript 代码错误通常需要在执行过程中不断调适。
一般的缺陷率统计方法都是购买第三方工具统计Js语言的代码总行数,之后利用走查工具走查有缺陷的代码行数,最后通过缺陷行/总行数得出缺陷率。
ESLint 是一个开源的 JavaScript 代码检查工具。可扩展,每条规则都是独立的,不内置编码风格的工具。
现在一般的代码走查是通过使用Eslint统计处缺陷行数,再通过第三方付费工具统计出项目中Js代码的所有行数,通过缺陷行/总行数 的到缺陷率。
发明内容
本发明要解决的技术问题是:针对上述问题,本发明提供一种在linux下自动统计Js语言编码缺陷率的方法。
本发明所采用的技术方案为:
一种在linux下自动统计Js语言编码缺陷率的方法,所述方法通过ESLint统计出Js语言编码的缺陷行数,并使用正则表达式得到要走查的项目里的所有JS代码行数,通过缺陷行/总行数得到缺陷率。
所述方法通过使用awk命令得到要走查的项目里面的缺陷行数。
所述方法通过修改Eslint配置文件生成自己的编码规则,并使用fix命令按照自己的编码规则修改不符合编码规范的代码。
所述方法实现流程包括内容如下:
修改Eslint配置文件生成自己的编码规则;
使用正则表达式得到要走查的项目里的所有JS代码行数;
根据生成的编码规则,使用awk命令得到要走查的项目里面的缺陷行数;
自动生成缺陷率;
使用fix命令自动修改不符合编码规范的代码。
所述方法通过调用命令 $(find project dir -name "*.js" |xargs cat|wc -l)得到Js所有行。
所述方法通过调用eslint命令$(eslint project dir | grep 'problems' |awk '{print $2}')得到缺陷行。
所述方法通过脚本实现自动统计,只需用运行相应的脚本就直接得出缺陷率,中间的安装、走查过程都是自动进行的,脚本能够自动计算出缺陷行和总行数缺陷率,以及能够按照指定的规则修改部分的代码。
本发明的有益效果为:
本发明通过使用命令而不是使用第三方付费工具统计项目的Js代码总行数,自动计算出缺陷行数和缺陷率,并能够自动修改部分不符合编码规范的代码,节约成本和时间,有效控制代码的质量。
具体实施方式
根据具体实施方式对本发明进一步说明:
实施例1
一种在linux下自动统计Js语言编码缺陷率的方法,所述方法通过ESLint统计出Js语言编码的缺陷行数,并使用正则表达式得到要走查的项目里的所有JS代码行数,通过缺陷行/总行数得到缺陷率。
所述方法通过修改Eslint配置文件生成自己的编码规则,并使用awk命令得到要走查的项目里面的缺陷行数。
所述方法通过fix命令自动修改不符合编码规范的代码。
实施例2
所述方法实现流程如下:
1)使用命令wget从官网自动下载Eslint到指定目录;
2)进行解压安装,成功安装Eslint后配置生成基本的规则;
3)修改Eslint配置文件生成自己的编码规则;
4)使用正则表达式得到要走查的项目里的所有JS代码行数;
5)根据生成的编码规则,使用awk命令得到要走查的项目里面的缺陷行数;
6)自动生成缺陷率;
7)使用fix命令自动修改不符合编码规范的代码。
实施例3
所述方法通过调用命令 $(find project dir -name "*.js" |xargs cat|wc -l)得到Js所有行。
所述方法通过调用eslint命令$(eslint project dir | grep 'problems' |awk '{print $2}')得到缺陷行。
实施例4:
所述方法通过脚本实现自动统计,脚本内容如下:
#!bin/bash
totalnum=$(find /home/Code/CSDS-web/WebContent –name "*.js" |xargs cat\wc–l)
faultnum=$(eslint Code/CSDS-web/WebContent/ | grep 'problems' | awk '{print $2}')
echo faultunm $faultnum
echo totalnum $totalnum
per=$(echo "scale=4;${faultnum}/${totalnum}"|bc)
echo per $per
只需用运行相应的脚本就直接得出缺陷率,中间的安装、走查过程都是自动进行的,脚本能够自动计算出缺陷行和总行数缺陷率,以及能够按照指定的规则修改部分的代码。
实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (7)

1.一种在linux下自动统计Js语言编码缺陷率的方法,其特征在于,所述方法通过ESLint统计出Js语言编码的缺陷行数,并使用正则表达式得到要走查的项目里的所有JS代码行数,通过缺陷行/总行数得到缺陷率。
2.根据权利要求1所述的一种在linux下自动统计Js语言编码缺陷率的方法,其特征在于,所述方法通过使用awk命令得到要走查的项目里面的缺陷行数。
3.根据权利要求2所述的一种在linux下自动统计Js语言编码缺陷率的方法,其特征在于,所述方法通过修改Eslint配置文件生成自己的编码规则,并使用fix命令按照自己的编码规则修改不符合编码规范的代码。
4.根据权利要求3所述的一种在linux下自动统计Js语言编码缺陷率的方法,其特征在于,所述方法实现流程包括内容如下:
修改Eslint配置文件生成自己的编码规则;
使用正则表达式得到要走查的项目里的所有JS代码行数;
根据生成的编码规则,使用awk命令得到要走查的项目里面的缺陷行数;
自动生成缺陷率;
使用fix命令自动修改不符合编码规范的代码。
5.根据权利要求1-4任一所述的一种在linux下自动统计Js语言编码缺陷率的方法,其特征在于,所述方法通过调用命令 $(find project dir -name "*.js" |xargs cat|wc -l)得到Js所有行。
6.根据权利要求5所述的一种在linux下自动统计Js语言编码缺陷率的方法,其特征在于,所述方法通过调用eslint命令 $(eslint project dir | grep 'problems' | awk '{print $2}')得到缺陷行。
7.根据权利要求6所述的一种在linux下自动统计Js语言编码缺陷率的方法,其特征在于,所述方法通过脚本实现自动统计。
CN201711069642.7A 2017-11-03 2017-11-03 一种在linux下自动统计Js语言编码缺陷率的方法 Pending CN107844422A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711069642.7A CN107844422A (zh) 2017-11-03 2017-11-03 一种在linux下自动统计Js语言编码缺陷率的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711069642.7A CN107844422A (zh) 2017-11-03 2017-11-03 一种在linux下自动统计Js语言编码缺陷率的方法

Publications (1)

Publication Number Publication Date
CN107844422A true CN107844422A (zh) 2018-03-27

Family

ID=61682230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711069642.7A Pending CN107844422A (zh) 2017-11-03 2017-11-03 一种在linux下自动统计Js语言编码缺陷率的方法

Country Status (1)

Country Link
CN (1) CN107844422A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086217A (zh) * 2018-11-01 2018-12-25 郑州云海信息技术有限公司 一种统计c语言编码缺陷率的实现方法,设备及存储介质
CN109240925A (zh) * 2018-09-06 2019-01-18 郑州云海信息技术有限公司 一种Java语言编码缺陷率走查方法
CN109460238A (zh) * 2018-11-01 2019-03-12 郑州云海信息技术有限公司 一种统计编码缺陷的处理方法,研发终端及存储介质
CN112286532A (zh) * 2020-10-31 2021-01-29 中环曼普科技(南京)有限公司 一种基于ESLint和Prettier实现前端代码格式化的方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055980A (zh) * 2016-05-30 2016-10-26 南京邮电大学 一种基于规则的JavaScript安全性检测方法
CN106598844A (zh) * 2016-11-17 2017-04-26 努比亚技术有限公司 移动终端及基于移动终端代码缺陷率的计算方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055980A (zh) * 2016-05-30 2016-10-26 南京邮电大学 一种基于规则的JavaScript安全性检测方法
CN106598844A (zh) * 2016-11-17 2017-04-26 努比亚技术有限公司 移动终端及基于移动终端代码缺陷率的计算方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ZCJ风飞: "利用正则表达式统计代码数量--简易版", 《HTTPS://BLOG.CSDN.NET/CHANSONZUO/ARTICLE/DETAILS/52738267》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109240925A (zh) * 2018-09-06 2019-01-18 郑州云海信息技术有限公司 一种Java语言编码缺陷率走查方法
CN109086217A (zh) * 2018-11-01 2018-12-25 郑州云海信息技术有限公司 一种统计c语言编码缺陷率的实现方法,设备及存储介质
CN109460238A (zh) * 2018-11-01 2019-03-12 郑州云海信息技术有限公司 一种统计编码缺陷的处理方法,研发终端及存储介质
CN112286532A (zh) * 2020-10-31 2021-01-29 中环曼普科技(南京)有限公司 一种基于ESLint和Prettier实现前端代码格式化的方法及系统

Similar Documents

Publication Publication Date Title
CN107844422A (zh) 一种在linux下自动统计Js语言编码缺陷率的方法
US10346282B2 (en) Multi-data analysis based proactive defect detection and resolution
KR101051600B1 (ko) 아밥 소스코드의 코드 검사를 수행하는 코드검사 수행시스템
US9940581B2 (en) Ontology-aided business rule extraction using machine learning
US6092187A (en) Instruction prediction based on filtering
CN110928718A (zh) 一种基于关联分析的异常处理方法、系统、终端及介质
CN105656699B (zh) 内容分发网络的告警管理方法及系统
US20090241096A1 (en) Dynamic Software Tracing
US10055329B2 (en) Detection of antipatterns through statistical analysis
CN102073588A (zh) 一种基于代码静态分析的多线程死锁检测方法及系统
CN108804326A (zh) 一种软件代码自动检测方法
AU711818B2 (en) Fraud monitoring in a telecommunications network
CN106021220B (zh) 表格检测方法及装置
CN112559569A (zh) 一种复合条件的告警规则处理方法
CN106126721A (zh) 一种实时计算平台的数据处理方法和装置
JP2017068293A (ja) テストdbデータ生成方法及び装置
CN102214141A (zh) 基于实时堆栈的程序切片方法
CN107291749A (zh) 一种数据指标关联关系的确定方法及装置
CN106648799A (zh) 一种基于Ambari快速为第三方组件添加微件的方法
CN105739993B (zh) 一种架构静态成熟度度量方法
CN114996107A (zh) 一种日志文件更新方法、装置、设备、介质及产品
CN115292448A (zh) 语言转义方法、装置、设备及存储介质
CN115576831A (zh) 一种测试案例推荐方法、装置、设备及存储介质
CN110659200A (zh) 航空机载软件的源码和目标码对比分析方法及系统
CN110781647B (zh) 一种基于Flink实现数据格式校验的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180327