第四周小组作业-wordcountpro

Posted 罗子璇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四周小组作业-wordcountpro相关的知识,希望对你有一定的参考价值。

一.小组Github 地址

 https://github.com/ChenSilence/wcPro

二.PSP表格

 

PSP2.1PSP阶段预估耗时(分钟)实际耗时(分钟)
Planning 计划 30 60
Estimate 估计任务需要多少时间 30 60
Development 开发 180 240
Analysis 需求分析 20 30
Design Spec 生成设计文档 20 30
Design Review 设计复审 20 30
Coding Standard 代码规范 30 10
Design 具体设计 30 50
Coding 具体编码 30 40
Code Review 代码复审 30 40
Test 测试 50 10
Reporting 报告 90 240
Test Report 测试报告 30 120
Size Measurement 计算工作量 20 60
Postmortem 总结 20 80
  合计 360 560

 三.模块编写

  本次小组作业我所负责的模块是输入控制,基本上与上一次作业的输入控制差不多,只是多了一个只能读txt文本文件的判断,因此我的就考虑了比较多的判断分支情况。我所编写的只有一个Begin类,功能即是分析main函数中的args数组参数,判断参数正确之后,将参数传给下一个模块,代码如下:

 

package javatest;

import java.util.Scanner;
import java.lang.String;
public class Begin {


    public static void main(String[] args)  {
         //解析args数组中的参数
             int i=0;
             if (args.length == 0) {                           //提示未输入参数
               System.out.println("请输入参数");
               return;  
               }else if (args.length==1){
                    String name =args[0];                //args数组中的最后一个参数为读取文件
                    boolean doo=args[0].contains(".");
                    if(doo){
                  String[] mode=name.split("\\\\.");     //将文件名在"."处分裂开并存入mod数组中,判断文件格式
                  if (mode[1].equals("txt")){
                   System.out.printf("everything is right!");
                    
                    new CountNumber().count(name);
               
              }else{
                  System.out.printf("文件格式不对,请重新输入!");
                  
                      }
                    }else {
                        System.out.printf("请输入正确文件名!");
                       
                       } 
               }else{
                   System.out.printf("请输入正确文件名");
                   
                   
               }

       }

}

 

 

 

四.测试模块设计
  因为我的输入控制模块中只有一个main函数,不存在其他的方法,因此设计测试时,我改了一部分我的相应代码,为了能在Junit框架中使用assertEquals函数判断是否运行正确,改了之后的代码如下:

package word;

import java.util.Scanner;
import java.lang.String;
public class Begin {

     static String[] str = new String [8];
    public static void main(String[] args)  {
         //解析args数组中的参数
             int i=0;
             if (args.length == 0) {                           //提示未输入参数
               //System.out.println("请输入参数");
               str[i]=("请输入参数");
               return;  
               }else if (args.length==1){
                    String name =args[0];                //args数组中的最后一个参数为读取文件
                    boolean doo=args[0].contains(".");
                    if(doo){
                  String[] mode=name.split("\\\\.");     //将文件名在"."处分裂开并存入mod数组中,判断文件格式
                  if (mode[1].equals("txt")){
                   System.out.printf("everything is right!");
                     str[i]=("everything is right!");
                     //new CountNumber().count(name);
                
              }else{
                  //System.out.printf("文件格式不对,请重新输入!");
                  str[i]=("文件格式不对,请重新输入!");
                      }
                    }else {
                        //System.out.printf("请输入正确文件名!");
                       str[i]=("请输入正确文件名!");
                       } 
               }else{
                  // System.out.printf("请输入正确文件名");
                   str[i]=("请输入正确文件名");
                   
               }

       }
     public static String[] getOutput() {
         return str; 
    }
}

  根据黑盒白盒测试设计的测试表格如下:

 

Test   Case ID 测试用例编号 Test Item 测试项(即功能模块或函数) Test Case Title   测试用例标题 Test   Criticality重要级别 Pre-condition 预置条件 Input 输入 Procedure 操作步骤 Output 预期结果 Result
    实际结果
Status
    是否通过
Remark 备注(在此描述使用的测试方法)
1 输入控制 testread1 Medium text.txt 运行Junit函数 everything   is right! everything   is right! OK 黑盒测试
2 输入控制 testread2 Medium text.tt 运行Junit函数 文件格式不对,请重新输入! 文件格式不对,请重新输入! OK 白盒测试
3 输入控制 testread3 Medium texttxt 运行Junit函数 请输入正确文件名! 请输入正确文件名! OK 白盒测试
4 输入控制 testread4 Medium text.cpp 运行Junit函数 文件格式不对,请重新输入! 文件格式不对,请重新输入! OK 黑盒测试
5 输入控制 testread5 Medium test.txt   text2.txt 运行Junit函数 请输入正确文件名 请输入正确文件名 OK 白盒测试
6 输入控制 testread6 Medium 空输入 运行Junit函数 请输入参数 请输入参数 OK 白盒测试
7 输入控制 testread7 Medium abc.c.txt 运行Junit函数 文件格式不对,请重新输入! 文件格式不对,请重新输入! OK 白盒测试
8 输入控制 testread8 Medium asdhaiudhiwahidwahiawuhdawiuhdw.txt 运行Junit函数 everything   is right! everything   is right! OK 黑盒测试
9 输入控制 testread9 Medium text.doc 运行Junit函数 文件格式不对,请重新输入! 文件格式不对,请重新输入! OK 黑盒测试
10 输入控制 testread10 Medium txt.txt 运行Junit函数 everything   is right! everything   is right! OK 白盒测试
11 输入控制 testread11 Medium ....c 运行Junit函数 文件格式不对,请重新输入! 文件格式不对,请重新输入! OK 白盒测试
12 输入控制 testread12 Medium 空格符 运行Junit函数 请输入正确文件名! 请输入正确文件名! OK 黑盒测试
13 输入控制 testread13 Medium text.java 运行Junit函数 文件格式不对,请重新输入! 文件格式不对,请重新输入! OK 黑盒测试
14 输入控制 testread14 Medium text.sql 运行Junit函数 文件格式不对,请重新输入! 文件格式不对,请重新输入! OK 黑盒测试
15 输入控制 testread15 Medium text.word 运行Junit函数 文件格式不对,请重新输入! 文件格式不对,请重新输入! OK 黑盒测试
16 输入控制 testread16 Medium text.png 运行Junit函数 文件格式不对,请重新输入! 文件格式不对,请重新输入! OK 黑盒测试
17 输入控制 testread17 Medium text.py 运行Junit函数 文件格式不对,请重新输入! 文件格式不对,请重新输入! OK 黑盒测试
18 输入控制 testread18 Medium text.jpg 运行Junit函数 文件格式不对,请重新输入! 文件格式不对,请重新输入! OK 黑盒测试
19 输入控制 testread19 Medium text.gif 运行Junit函数 文件格式不对,请重新输入! 文件格式不对,请重新输入! OK 黑盒测试
20 输入控制 testread20 Medium text.exe 运行Junit函数 文件格式不对,请重新输入! 文件格式不对,请重新输入! OK 黑盒测试

 

相应的测试脚本运行结果如下:

 

五.扩展任务

1.交叉互评

  我们小组所用开发规范参考了阿里巴巴的JAVA风格指南手册。我评审的是组员17001代码,他的代码符合缩进、断行风格整洁,命名简单明了,逻辑清晰易读,较好地遵守了设计规范。这里我就不在放出他的代码了,可在文首的小组github中查找。

2.静态测试

  本次的静态测试是采用eclipse的checkstyle来进行扫描的,对我的代码扫描之后主要发现以下三个问题:

  1)代码缩进问题较多

  2)注释较少

  3)“{”前差空格,“}”后差空格

  在改进这些问题的过程中也慢慢提高了我对代码规范的理解程度,以后也能提高我的代码整洁度。参考链接:

https://blog.csdn.net/maritimesun/article/details/7668718

六.高级任务

  在最后检测我的代码性能过程中,由于我的代码本身就不是特别复杂,因此优化过程中也没有较多地方可供优化,我减少了一部分多余的分支判断,也提高了一定的运行速度。改后的代码也可在小组github中查看。

七.小组贡献分

  在本次作业中,我的工作量较少,因此小组贡献分评价为0.2。

 

以上是关于第四周小组作业-wordcountpro的主要内容,如果未能解决你的问题,请参考以下文章

第四周小组作业wcPro

第四周任务:wordCountPro

WordCountPro,完结撒花

第四周小组作业

第四周小组作业

wordcount第四周小组作业