• 20200924-3 单元测试,结对


    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11243

    仓库地址:https://e.coding.net/ayuyu/software-engineering-coursework/se-homework-20200924.git

    结对伙伴:花名(朱航序)

    语言:Java

    测试框架:Junit

    开发环境:IntelliJ IDEA 2020.2.1


    要求1 对每个功能,先给出测试用例,然后再编码功能。请注意把测试用例视为功能需求完成的检验指标。 (40分)

    截图:

    功能一和功能二测试用例:

    ID 测试用例 预期结果
    1 输入 2+1-4*6 -21
    2 输入 1+2*4-6 3
    3 输入(1+2)*4-6 6
    4 输入2*(2-5)+8 2

    功能三测试用例

    ID 测试用例 预期结果
    1 命令行参数 -c 20 输出四则运算及其结果,生成f4.txt
    2 命令行参数 -c 0 输出 题目数量必须是 正整数
    3 命令行参数 -c -1 输出 题目数量必须是 正整数
    4 命令行参数 -c 2.1 输出 题目数量必须是 正整数

    要求2 在博客报告测试用例全部fail 到 全部pass 的过程,报告事实 (fail到修改代码或者测试用例,到pass) 以及收获。 除了最初的框架,测试用例中存在一次性pass没有经过fail的,也报告一次性通过,给出如此优秀地实现了这部分功能的代码。由2位同学中的一位发布博客提交到作业,指明自己的结对伙伴;另一位在作业中引用这一博客,指明自己的结对伙伴。(40分)

    bug1:除数可能为0,程序抛出异常

    解决方案:生成随机数时,不生成0

    /**
         * 根据输入的范围获取随机数
         *
         * @param max
         * @return number
         */
    
        public static int getNumber(int max) {
            int number = 0;
            number = (int) (Math.random() * max + 1);
            return number;
        }
    

    bug2:命令行参数输入 "-c -1", 不输出“题目数量必须是 正整数”,而是结束运行。

    解决方案:使用正则表达式后,再对命令行参数进行判断

    Pattern pattern = Pattern.compile("^[-\+]?[\d]*$");
    if (pattern.matcher(args[1]).matches()) {
        int num = Integer.parseInt(args[1]);
        if (num <= 0) {
            System.out.println("题目数量必须是 正整数");
            return;
        }
        try {
            PrintWriter printWriter = new PrintWriter(new File("f4.txt"));
            for (int i = 0; i < num; i++) {
                bTree = new BinaryTree(3);
                bTree.createBTree();
                String result = bTree.CalAndVal();
                System.out.printf("%-15s %s
    ", bTree.toString() + "=", result);
                printWriter.printf("%-15s %s
    ", bTree.toString() + "=", result);
            }
            printWriter.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    } else {
        System.out.println("题目数量必须是 正整数。");
    }
    

    bug3:使用功能一和功能二时,程序输出四则运算,不输入答案,直接回车,程序抛出异常。

    解决方案:对输入的字符串开头字符多几次判断

    String input = sc.nextLine();
    if (!input.startsWith("?") || input.length() < 2) {
        System.out.println("在想想吧,答案似乎是" + result + "喔!");
        continue;
    }
    input = input.substring(1);
    

    要求3 做好准备,在接下的一周你可能无法通过别人的测试用例。 (0分)

    要求4 使用coding.net做版本控制。checkin 前要求清理 临时文件、可执行程序,通常执行 build-clean可以达到效果。(5分)

  • 相关阅读:
    集群架构搭建
    THUWC2019 游记
    【集训队互测2015】未来程序·改
    [NOIP2014普及组T1]珠心算测验
    [CF912D]Fishes
    [POJ2409]Let it Bead
    golang 统计系统测试覆盖率
    tcpdump常用方法
    数学闯关引发的思考
    linux lsof常用方法
  • 原文地址:https://www.cnblogs.com/ayuyu/p/13771200.html
Copyright © 2020-2023  润新知