第一次个人编程作业

这个作业属于哪个课程 软件工程
这个作业要求在哪里 个人项目
这个作业的目标 学习使用PSP记录个人项目的流程和用时,学习单元测试知识

一、GitHub链接

GitHub

二、PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 20 20
Estimate 估计这个任务需要多少时间 905 965
Development 开发 120 100
Analysis 需求分析 (包括学习新技术) 100 105
Design Spec 生成设计文档 30 20
Design Review 设计复审 65 80
Coding Standard 代码规范 (为目前的开发制定合适的规范) 100 100
Design 具体设计 60 60
Coding 具体编码 105 85
Code Review 代码复审 40 30
Test 测试(自我测试,修改代码,提交修改) 90 90
Reporting 报告 120 125
Test Report 测试报告 100 90
Size Measurement 计算工作量 15 10
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 40 50
合计 905 965

三、项目环境

  • hamcrest-core-1.3
  • junit-4.12
  • IntelliJ IDEA Community Edition 2023.1.2

四、计算模块接口的设计与实现过程

4.1 实现步骤

  1. 先获取文件路径,然后读取相应的文件内容
  2. 字符串转换
  3. 计算重复字数
  4. 计算重复率
  5. 将计算得到的结果写入文件,若无则创建新文件写入

4.2 项目结构

五、计算模块接口部分的性能

5.1 遥测-概览

5.2 实时内存-所有对象

六、单元测试

部分代码:

package Test;
import org.junit.Test;
import src.papercheck.Main;
public class TestMain {
    /**
     * 测试源文件路径为null的情况
     */
    @Test
    public void testForOriginalArticleNull(){
//        Assert.assertThrows()
        Main.main(new String[]{null,"D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig_0.8_add.txt","D:\\1.txt"});
    }
    /**
     * 测试对比文件路径为null的情况
     */
    @Test
    public void testForPlagiarismArticleNull(){
        Main.main(new String[]{"D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig.txt",null,"D:\\1.txt"});
    }
    /**
     * 测试结果输出文件路径为null的情况
     */
    @Test
    public void testForResultNull(){
        Main.main(new String[]{"D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig.txt","D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig_0.8_add.txt",null});
    }
    /**
     * 测试路径不存在的情况
     */
    @Test
    public void testForNotExistFile(){
        Main.main(new String[]{"D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\origno.txt","D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig_0.8_add.txt","D:\\1.txt"});
    }
    /**
     * 测试输入对比的文件内容为空的情况
     */
    @Test
    public void testForEmpty(){
        Main.main(new String[]{"D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig.txt","D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig_empty.txt","D:\\1.txt"});
    }
    /**
     * 测试对比orig_0.8_add.txt
     */
    @Test
    public void testForAdd(){
        Main.main(new String[]{"D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig.txt","D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig_0.8_add.txt","D:\\1.txt"});
    }
    /**
     * 测试对比orig_0.8_del.txt
     */
    @Test
    public void testForDel(){
        Main.main(new String[]{"D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig.txt","D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig_0.8_del.txt","D:\\1.txt"});
    }
    /**
     * 测试对比orig_0.8_dis_1.txt.txt
     */
    @Test
    public void testForDis1(){
        Main.main(new String[]{"D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig_0.8_dis_1.txt","D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig_0.8_dis_1.txt","D:\\1.txt"});
    }
    /**
     * 测试对比orig_0.8_dis_10.txt
     */
    @Test
    public void testForAdd10(){
        Main.main(new String[]{"D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig_0.8_dis_1.txt","D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig_0.8_dis_10.txt","D:\\1.txt"});
    }
    /**
     * 测试对比orig_0.8_dis_15.txt
     */
    @Test
    public void testForDis15(){
        Main.main(new String[]{"D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig_0.8_dis_1.txt","D:\\Work\\大二\\软件工程\\homework2\\homework\\Test\\resources\\orig_0.8_dis_15.txt","D:\\1.txt"});
    }
}

测试结果:

覆盖率结果:

七、异常处理

7.1 代码

package src.papercheck.component;
public class EnterNullException extends Exception {
    public EnterNullException(){
    }
    public EnterNullException(String message){
        super(message);
    }
}

7.2 处理前输出结果


7.3 处理后输出结果



输出结果存储路径

D:\Work\大二\软件工程\homework2\homework\out\production\homework\Test\resources

posted @ 2023-09-16 19:06  Episode8  阅读(41)  评论(0)    收藏  举报