第4周作业:WordCount优化

Github地址:

https://github.com/SkateCloud/wcPro

1:分析整理需求,完成PSP表格

PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟)
>Planning 计划 5 6
Estimate 估计任务耗时 5 6
>Development 开发 40 50
Analysis 需求分析(包括学习新技术) 5 5
Design 具体设计 5 5
Coding 具体编码 10 20
Test 测试(自我测试,修改代码,提交修改) 20 20
> Reporting 报告 35 40
Test Report 测试报告 20 25
Size Measurement 计算工作量 10 5
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 5 10
合计 80 96

2:代码设计思路

负责输入模块。
该模块主要可以分为两部分,一部分为对main函数中args参数的判断处理,另一部分为读取文件中的内容。
对于第一部分,大致思路是三条路:为空,输入正确,输入错误。
       在输入错误中应当细分几个分支,比如是输入文件格式后缀错误还是输入内容不是一个文件名。
       输入正确还要判断文件是否存在。
对于第二部分,运用java.nio.file中的File和Path包,通过readAllBytes()方法来获取文件内容,然后转码为UTF-8格式,否则会乱码。

以下为所有源代码:(可以跳过,后面有具体一点的说明)

import  java.io.*;
import java.nio.file.*;
public class Main {

private static String readFile(String path) {
    try {
        byte[] encoded = Files.readAllBytes(Paths.get(path));
        return new String(encoded, "UTF-8");
    } catch (IOException ex) {
        throw new RuntimeException(ex);
    }
}

public static void main(String args[]) {
    String filename = " ";
    if (args.length == 0){
        System.out.print("输入为空!请输入文件名!");
    }
    else if (args.length >= 1) {
        filename = args[args.length - 1];
        if(filename.contains(".txt")){
            if (filename == ".txt"){
                System.out.print(filename+"\n");
                System.out.print("请输入具体文件名,例如a.txt");
            }
            else{
                char c[] = filename.toCharArray();
                char t1 = c[filename.length() - 1];
                char x  = c[filename.length() - 2];
                char t2 = c[filename.length() - 3];
                char dian = c[filename.length() - 4];
                if(t1 == ‘t‘& x ==‘x‘ & t2 ==‘t‘ & dian ==‘.‘ ){
                    File file = new File(filename);
                    if(file.exists()){
                        System.out.print(filename+"\n");
                        System.out.print("输入正确!");
                        readFile(filename);
                    }
                    else{
                        System.out.print(filename+"\n");
                        System.out.print("文件不存在");
                    }
                }
                else{
                    System.out.print(filename+"\n");
                    System.out.print("文件格式输入错误!");
                }
            }
        }
        else{
            System.out.print(filename+"\n");
            System.out.print("输入文件格式错误。应为 .txt 文件");
        }
    }
}

分支1:当用户输入为空时

分支2:当用户输入不为空时:

分支2-1:输入文件名包含 .txt 时

分支2-1-1:只输入.txt

分支2-1-2:.txt 在输入末尾时 

分支2-1-2-1:输入文件名存在 

分支2-1-2-2:输入文件名不存在 

分支2-1-3:.txt 不在输入末尾时 

分支2-2:输入文件名不包含 .txt 时 

3:测试设计过程

 具体测试用例设计见下表:
  

 测试应当尽可能覆盖所有分支,对于重要级别高的待测模块应多设置几个测试用例来模拟模块运行时的各种情况,确保模块运行的稳定性。
 在上述表格中,有些测试用例其实不是必需,实际运行几乎不会存在这种状况,比如最后一个用例。

4:测试运行和评价

 测试结果运行良好,模块质量也基本较高,但是有些分支其实会影响效率,在优化时可以去掉。

 测试用例1、2、3:

 测试用例4:

测试用例5:

测试用例6:

测试用例7:

测试用例8:

测试用例9:

测试用例10:

 测试用例11:

 测试用例12:

 测试用例13:

 测试用例14:

 测试用例15:

 测试用例16:

 测试用例17/18/19:

 测试用例20:

5:小组贡献率: 0.3

原文地址:https://www.cnblogs.com/Nianx328/p/8742767.html

时间: 2024-08-30 11:58:08

第4周作业:WordCount优化的相关文章

软件测试第二周作业 wordcount

软件测试第二周作业 wordcount Github地址 https://github.com/mxz96102/word_count PSP2.1表格 PSP2.1 PSP 阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划 25 30 · Estimate · 估计这个任务需要多少时间 150 252 Development 开发     · Analysis · 需求分析 (包括学习新技术) 20 20 · Design Spec · 生成设计文档 0 0 · Desig

软件质量与测试第二周作业 WordCount

第二周作业 WordCount 一.Github 地址 https://github.com/llag9810/Software-Quality-and-Testing-Wordcount 二.PSP2.1 表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划 60 25 · Estimate · 估计这个任务需要多少时间 30 15 Development 开发 600 810 · Analysis · 需求分析 (包括学习新技术) 60 60 · D

软件质量与测试第4周小组作业:WordCount优化

软件质量与测试第4周小组作业:WordCount优化 一.GitHub地址 https://github.com/fusidic/WC 二.PSP表格 PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 20 · Estimate · 估计这个任务需要多少时间 30 20 Development 开发 470 550 · Analysis · 需求分析 (包括学习新技术) 30 20 · Design Spec · 生成设计文档 20 20 · Desig

第4周小组作业 WordCount优化

github地址:https://github.com/husterC/WordCountGroupwork PSP表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划  20  20 · Estimate · 估计这个任务需要多少时间  15  10 Development 开发  60  40 · Analysis · 需求分析 (包括学习新技术)  60  90 · Design Spec · 生成设计文档  -  - · Design Revie

第二周作业 WordCount

https://github.com/HuangDongPeng/WordCount.git 1.1  PSP PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划 30 30 · Estimate · 估计这个任务需要多少时间 5h 12h Development 开发 2h 4h · Analysis · 需求分析 (包括学习新技术) 30min 30min · Design Spec · 生成设计文档 - - · Design Review · 设计复审

第二周作业wordcount

github项目链接https://github.com/liqia/WordCount 1.项目简介 对程序设计语言源文件统计字符数.单词数.行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件. 可执行程序命名为:wc.exe,该程序处理用户需求的模式为: wc.exe [parameter] [input_file_name] 存储统计结果的文件默认为result.txt,放在与wc.exe相同的目录下. 2.项目psp表格 PSP2.1表格 PSP2.1

软件测试第四周作业 WordCount优化

Github地址 https://github.com/husterC/WordCountGroupwork PSP表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划     · Estimate · 估计这个任务需要多少时间 540  780 Development 开发     · Analysis · 需求分析 (包括学习新技术)  60  120 · Design Spec · 生成设计文档  30  10 · Design Review ·

第4周小组作业:WordCount优化

第4周小组作业:WordCount优化 一.基本任务:代码编写+单元测试 小组github 地址 https://github.com/iwannastay/WcPro PSP表格 PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 60 Estimate 估计任务需要多少时间 30 60 Development 开发 180 240 Analysis 需求分析 20 30 Design Spec 生成设计文档 20 30 Design Review 设计

解题报告——-2018级2016第二学期第三周作业

解题报告——2018级2016第二学期第三周作业 A:[NOIP2002P]过河卒 题目: 描述 如图,A 点有一个过河卒,需要走到目标 B   点.卒行走规则:可以向下.或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点.例 如上图 C  点上的马可以控制 9 个点(图中的P1,P2 … P8 和 C).卒不能通过对方马的控制点. 棋盘用坐标表示,A 点(0,0).B 点(n,m)(n,m 为不超过 20  的整数,并由键盘输入)

20179214 2017-2018-2 《密码与安全新技术》第五周作业

20179214 2017-2018-2 <密码与安全新技术>第五周作业 课程:<密码与安全新技术> 班级: 201792 姓名: 刘胜楠 学号:20179214 上课教师:谢四江 上课日期:2018年3月29日 必修/选修: 选修 学习内容总结 ICO众筹 所有成功的数字货币以及区块链(本文区块链指"区块链公有链")项目无一不是社区项目.常见的ICO里,数字货币和区块链项目向早期爱好者出售项目代币.项目团队通过ICO获取技术开发和市场拓展资金:而项目爱好者通过