CheckStyle-软件测试

2019-04-08 21:36

静态代码检测工具CheckStyle

CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要但是枯燥的任务中解脱出来。

CheckStyle检验的主要内容 包括: Javadoc注释 命名约定 标题 Import语句 体积大小 空白 修饰符 块 代码问题 类设计

混合检查(包活一些有用的比如非必须的System.out和printstackTrace)

从上面可以看出,CheckStyle提供了大部分功能都是对于代码规范的检查,而没有提供象PMD和Jalopy那么多的增强代码质量和修改代码的功能。但是,对于团队开发,尤其是强调代码规范的公司来说,它的功能已经足够强大。Checkstyle插件可以集成到Eclipse IDE中去,能确保Java代码遵循标准代码样式。

一、Checkstyle的安装

按照实验指导书完成。

二、checkstyle的使用 1.检查单个文件

被检查的代码:

import java.util.Scanner; public class Weather { public static void main(String[] args) { final int NUMBER_OF_DAYS = 10; final int NUMBER_OF_HOURS = 24;

double[][][]

data

=

double[NUMBER_OF_DAYS][NUMBER_OF_HOURS][2]; Scanner input = new Scanner(System.in); // Read input using input redirection from a file

for (int k = 0; k < NUMBER_OF_DAYS * NUMBER_OF_HOURS; k++) { int day = input.nextInt(); int hour = input.nextInt();

double temperature = input.nextDouble();

new

}

double humidity = input.nextDouble(); data[day - 1][hour - 1][0] = temperature; data[day - 1][hour - 1][1] = humidity; }

// Find the average daily temperature and humidity for (int i = 0; i < NUMBER_OF_DAYS; i++) {

double dailyTemperatureTotal = 0, dailyHumidityTotal = 0; for (int j = 0; j < NUMBER_OF_HOURS; j++) { dailyTemperatureTotal += data[i][j][0]; dailyHumidityTotal += data[i][j][1]; }

// Display result

System.out.println(\ \ + dailyTemperatureTotal / NUMBER_OF_HOURS); System.out.println(\ \ + dailyHumidityTotal / NUMBER_OF_HOURS); } }

检查结果:

可以看到在有代码不规范的那一行都有放大镜的图标。

2.检查一个项目

选中工程选择checkstyle->check code with checkstyle,检查错误即可。

练习

要求将输入的代码Weather类修改成为符合CheckStyle某种规则的编码风格。请在实验报告中说明CheckStyle检验前的代码和检验后的代码区别,并分别列出修改的每条代码是基于哪条规则做出的修改。

修改后的代码(每行错误的类型在这行代码上方的注释中): package checksytletest;

import java.util.Scanner; /**

* @author sure * */

public class Weather //缺少 Javadoc 。'class def modifier' 缩进了4个缩进符,应为0个。 { //'class def lcurly' 缩进了4个缩进符,应为0个。 /**

* @param args 字符串数组 */

public static void main(String[] args)//缺少 Javadoc 。 {

//必须匹配表达式: '^[a-z][a-zA-Z0-9]*$'

final int nUMBEROFDAYS = 10;

//'method def' 子元素缩进了19个缩进符,应为8个 //必须匹配表达式: '^[a-z][a-zA-Z0-9]*$' 。

final int nUMBEROFHOURS = 24;

//'method def' 子元素缩进了19个缩进符,应为8个

double[][][] data = new double[nUMBEROFDAYS][nUMBEROFHOURS][2]; //- Resource leak: 'input' is never closed


CheckStyle-软件测试.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014东财《社会保障概论B》在线作业一部分答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: