第四周作业

WordCount 实现与测试

一、github地址

https://github.com/cosensible/WordCountPlus

二、PSP表格

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

三、接口实现

我主要负责的是对文件读取的接口,该接口的功能是按行读取文件,并简单处理为字符串数组,最终返回这个字符串数组

代码如下:

public static String[] read(final String filePath) {
        File file = new File(filePath);
        // 当文件不存在或者不可读时
        if ((!isFileExists(file)) || (!file.canRead())) {
            System.out.println("file [" + filePath + "] is not exist or cannot read!!!");
            return null;
        }

        List<String> lines = new LinkedList<String>();
        BufferedReader br = null;
        FileReader fb = null;
        try {
            fb = new FileReader(file);
            br = new BufferedReader(fb);

            String str = null;
            int index = 0;
            while ((str = br.readLine()) != null) {
                lines.add(str);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            closeQuietly(br);
            closeQuietly(fb);
        }

        return lines.toArray(new String[lines.size()]);
    }
  • 在main函数中,已经过滤掉了非txt文件,所以执行本接口的所有文件名,均为txt。
  • 判断文件是否存在,以及能否读取,不能则返回null。
  • 若为正确且存在的txt文件,则按行读取文件内容,并以字符串数组形式返回。

四、测试设计

程序流程图如下:

  • 判断是否可读且存在
  • 不可读或不存在返回null
  • 可读且存在返回处理后的字符串数组

image

白盒测试:有两条路径

image

路径测试用例预期输出实际输出
A->B->C->EnotExist.txtfile [notExist.txt] is not exist or cannot read!!!file [notExist.txt] is not exist or cannot read!!!
A->B->D->Fd.txt{"asdsj dsfd","adsf dsfd"}{"asdsj dsfd","adsf dsfd"}

黑盒测试

  • 可划分为三个等价类
等价类描述输入输出
1文件不存在或不可读notExist.txtnull
2文件存在可读,为空a.txt{}
3文件存在可读,不为空d.txt{"asdsj dsfd","adsf dsfd"}

五、单元测试

image

测试及模块评价

  • 测试用例覆盖全面,白盒测试覆盖了所有路径,黑盒测试也测试了所有情况,测试完善。
  • 测试模块功能明确,代码简介易懂,注释详尽,测试中未发现较大缺陷。

六、静态测试

  • 使用了《阿里巴巴Java开发手册》中第三部分,代码格式
  • 由于代码量不多,分析了所有代码。(下面是问题展现)

缺点:

  1. if 与 else的模块中缺少了大括号

优点:

  1. 左小括号和字符之间不出现空格
  2. if/for/while/switch/do 等保留字与括号之间都必须加空格。
  3. 任何二目、三目运算符的左右两边都需要加一个空格。
  4. 采用 4 个空格缩进,禁止使用 tab 字符。
  5. 注释的双斜线与注释内容之间有且仅有一个空格。
  6. 单行字符数限制不超过 120 个,超出需要换行,

image

存在问题:

  1. if与else不加大括号
  2. 通过类实例访问静态变量
  3. 数组定义格式错误

转载于:https://www.cnblogs.com/tangcz/p/8747322.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值