第四周小组作业

第四周小组作业:WordCount优化

(1)本次作业Github地址

  https://github.com/fanhao300/Test-QualityGroupWprk

(2)PSP表格

PSP2.1

PSP阶段

预估耗时

(分钟)

实际耗时

(分钟)

Planning

计划

 30

 30

· Estimate

· 估计这个任务需要多少时间

 30

 30

Development

开发

 350

 290

· Analysis

· 需求分析 (包括学习新技术)

 40

 40

· Design Spec

· 生成设计文档

 30

 20

· Design Review

· 设计复审 (和同事审核设计文档)

 30

 20

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

 30

 30

· Design

· 具体设计

 30

 30

· Coding

· 具体编码

 40

 40

· Code Review

· 代码复审

 30

 30

· Test

· 测试(自我测试,修改代码,提交修改)

 60

 60

Reporting

报告

 120

 100

· Test Report

· 测试报告

 90

 80

· Size Measurement

· 计算工作量

 20

 20

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

 20

 20

 

合计

 60*15.33

 60*13.5

(3)接口实现

  我做的是和架构相关的其他模块(Main函数),将所有其他模块连接到一起。代码如下:

import java.io.File;
import java.io.IOException;
import java.util.*;

public class Main {
    private static WCcount wcount=new WCcount();
    public static void main(String[] args) throws IOException {
        Inputcheck test = new Inputcheck();
        // 检查输入
        File file = test.check(args[0]);
        // 无效输入报错返回
        if (file==null){
            System.out.print("This file is invalid!");
            return;
        }
            
        
        // 统计并排序
        wcount.clear();
        wcount.wordCount(file);
        wcount.sortMap();
        ArrayList<Item> it=wcount.getItemList();

        // 打印
        Print pr=new Print();
        pr.setItemList(it);
        pr.output();
    }
}

  工作方式如下:

    1. 调用Test.check(),检查是否为有效输入。无效则报错并退出,有效则执行第二步。

    2. 对输入文件统计并排序,并将结果输出到当前文件夹。

 

(4)测试用例设计

  1. 白盒测试

    如图,共有两条路径:

    

路径 测试用例  预期输出结果  实际输出结果
A->B->C->E pp.c
This file is invalid!
This file is invalid!
A->B->D->E test2.txt                   

 

    

 

 

  2. 黑盒测试

    按照输入,大致可以划分为两个大类:

大类 小类  测试用例
无效的文件输入 文件不存在 pp.jpg
文件存在但不匹配 pp.c
特殊文件名 *
有效的文件输入 文件存在且匹配且输入正常 test2.txt

 

 

 

 

 

(5)单元测试

  未想出Main函数该如何进行单元测试。

 

(6)小组贡献

       组长:樊昊 0.28

    组员:李帅 0.24

               李威佟 0.24

               彭士远 0.24

扩展任务

(1)规范选择

  选择《阿里巴巴Java开发手册》的1.1命名风格部分,对组员代码进行分析。

 

(2)组员代码分析

  选择组员17129输入控制相关的代码进行分析:

import java.io.*;


/**
 * 
 * @author 彭士远  
 * 
 */
public class Inputcheck {
    private static final String HOUZHUI = ".txt";
    private static final int MATCHLENGTH = 4;
    public File check(String filename) {
        File filePath = new File(filename);
        if(filePath.exists()) {
            if(!(filename.substring((filename.length() - MATCHLENGTH), filename.length()).equals(HOUZHUI))) {
                filePath = null;
            }
        }else {
            filePath = null;
        }
        return filePath;
    }
}

   根据1.1.2:代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。

    代码中的变量:HOUZHUI 不符合该命名规范。

  根据1.1.3:类名使用UpperCamelCase风格,但DO/BO/DTO/VO/AO/PO等情形除外。

    代码中的类:Inputcheck不符合该命名规范。建议改为InputCheck。

  根据1.1.4:方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式。

    代码中的变量:MATCHLENGTH不符合该命名规范。建议改为matchLength。

 

(3)静态代码检查工具

  alibaba静态代码检查工具,下载地址:https://p3c.alibaba.com/plugin/eclipse/update

 

(4)检查结果

  对自己的代码进行静态检查,结果如下:

  

  存在问题:没有添加创建者信息。

  解决方法:添加如下代码:   

/**
 * 
 * @author liweitong
 *
 */

 

 (5)小组存在问题

  部分组员的命名风格不一致,个别组员的命名比较随意。

 

posted @ 2018-04-08 19:54  量梓泡末  阅读(163)  评论(0)    收藏  举报