第四次软测作业

wcPro

github项目地址:

https://github.com/ChAnYaNG97/wcPro

PSP表格:

PSP2.1PSP阶段预计耗时(分钟)实际耗时(分钟)
Planning计划3030
.Estimate.估计这个任务需要多长时间3030
Development开发285290
.Analysis.需求分析(包括学习新技术)2530
.Design Spec.生成设计文档3030
.Design Review.设计复审(和同事审核设计文档)4040
.Coding Standard.代码规范(为目前的开发制定合适的规范)3020
.Design.具体设计5060
.Coding.具体编码6050
.Code Review.代码复审2020
.Test.测试(自我修改,修改代码,提交修改)3040
Reporting报告120110
.Test Report.测试报告5050
.Size Measurement.计算工作量3020
.Postmortem & Process Improvement Plan.事后总结,并提出过程改进计划4040
合计435430

接口实现

此次实验我负责其他模块(main函数)。实现代码如下:


import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args)
    {
        long st = System.nanoTime();
        if(args.length < 1)
        {
            System.err.println("Please set the file name.");
        }
        IOController controller = new IOController(args[0]);
        WordCounter wc = new WordCounter();
        String line;
        while((line = controller.readLine()) != null)
        {
            wc.countWord(line);
        }
        System.out.println(wc.countList.entrySet());
        controller.writeFile(wc.countList);
        System.out.println((System.nanoTime()-st) / 1e9);
    }
}

工作过程如下:

  1. 判断是否输入文件
  2. 对文件词数进行统计
  3. 输出程序运行时间

测试用例设计

白盒测试

1341572-20180408225204161-416604900.png

一共有三条路径:
A->B->C->G: "Please set the file name."

A->B->D->E->G:result.txt

A->B->D->F->G:case.txt

黑盒测试
@Test
    public void testCountWord1()
    {
        wc.countWord("this is a test a a a ");
        expected.put("this",1);
        expected.put("is",1);
        expected.put("a",4);
        expected.put("test",1);
        assertEquals(expected, wc.countList);
    }

    //test2:无连字符,带常见字符和数字
    @Test
    public void testCountWord2()
    {
        wc.countWord("this]]'$'is'a123test");
        expected.put("this",1);
        expected.put("is",1);
        expected.put("a",1);
        expected.put("test",1);
        assertEquals(expected, wc.countList);
    }

    //test3:带连字符,无常见字符和数字
    @Test
    public void testCountWord3()
    {
        wc.countWord("this-is-a-test is is");
        expected.put("this-is-a-test",1);
        expected.put("is",2);
        assertEquals(expected, wc.countList);
    }

    //test4:带连字符且位于单词间,无常见字符和数字
    @Test
    public void testCountWord4()
    {
        wc.countWord("this is a test this-is-a-test");
        expected.put("this",1);
        expected.put("is",1);
        expected.put("a",1);
        expected.put("test",1);
        expected.put("this-is-a-test",1);
        assertEquals(expected, wc.countList);
    }

    //test5:带连字符且位于单词后,无常见字符和数字
    @Test
    public void testCountWord5()
    {
        wc.countWord("this-  is a-test");
        expected.put("this",1);
        expected.put("is",1);
        expected.put("a-test",1);
        assertEquals(expected, wc.countList);
    }

    //test6:带连字符且位于数字间,无常见字符
    @Test
    public void testCountWord6()
    {
        wc.countWord("this  is1-2 a-test");
        expected.put("this",1);
        expected.put("is",1);
        expected.put("a-test",1);
        assertEquals(expected, wc.countList);
    }

    //test7:带连字符,带常见字符和数字
    @Test
    public void testCountWord7()
    {
        wc.countWord("(see Box 3–2).8885d_c01_016");
        expected.put("see",1);
        expected.put("box",1);
        expected.put("d",1);
        expected.put("c",1);
        assertEquals(expected, wc.countList);
    }

    //test8:输入为空
    @Test
    public void testCountWord8()
    {
        wc.countWord("");
        assertEquals(expected, wc.countList);
    }

小组贡献

0.20

扩展任务

规范选择

选择《阿里巴巴Java开发手册》的规范对代码进行规范分析

检查结果

1341572-20180408225128159-1712152041.png
1341572-20180408225128367-2133785117.png

转载于:https://www.cnblogs.com/Shi-Xing/p/8748086.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值