zoukankan      html  css  js  c++  java
  • 第四次作业2

    结对人:徐劭斌

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

    首先是对三个功能的测试。对于整体的功能,因为可以使用控制台与程序进行输入输出的交互,故没有使用TDD测试工具进行,具体的测试用例如下

    功能1   测试用例

    编号 测试用例 预期结果
    1 用户输入正确结果 提示:“答对啦,你真是个天才!”并给出下一题
    2 用户输入错误结果 提示:“再想想吧,答案似乎是12喔!”并给出下一题
    3 用户共答对3题 提示:“你一共答对3道题,共20道题”

    功能2 

      功能二的输入与功能一相同,只是添加了括号的功能,测试用例没有变化。

    编号 测试用例 预期结果
    4 用户输入正确结果 提示:“答对啦,你真是个天才!”并给出下一题
    5 用户输入错误结果 提示:“再想想吧,答案似乎是12喔!”并给出下一题
    6 用户共答对3题 提示:“你一共答对3道题,共20道题”

    功能3  测试用例

    编号 测试用例 预期结果
    7 输入 f4 -c -200 输出“题目数量必须是 正整数。”
    8 输入 f4 -c 3.5 输出“题目数量必须是 正整数。”
    9 输入 f4 -c 3 输出三道题目,并保存到txt中

    接下来是对三个功能都会使用的重要函数进行测试。本次是一个四则运算的程序,按照我们编程的思路,会将计算过程中出现异常(如除数为零或除不尽等)的题目舍弃掉重新出题,所以出题的正确性是由计算的正确性来保证的。本次主要测试了计算相关函数

    函数  public static double Compute(double leftNum, double rightNum, char op) 输入是在逆波兰后弹出的两个数和运算符,输出为运算结果。这里将会考虑异常情况,即除数为0,除不尽等,处理的方式是让返回值为0,并用一个变量控制系统重新出题。

    测试用例

                

    编号 测试用例 预期结果
    10 num1=1,num2=3,op='/' 0
    11 num1=4,num2=0,op='/' 0
    12 num1=2,num2=5,op='/' 0.4

    函数  public static double Calucate(string expression)   输入是随机生成的字符串即题目,输出返回值为最终计算结果,这个函数用来做计算,其中具体的计算是在逆波兰后调用Compute进行的两个数的计算,所以对于除法的处理这里不再考虑。

    编号 测试用例 预期结果
    13 “3+1” 4
    14 “4/5” 0.8
    15 “1+(2-3)/2” 0.5

    16 "1*2/(2+8)" 0.2

     要求2 在博客报告测试用例全部fail 到 全部pass 的过程,报告事实 (fail到修改代码或者测试用例,到pass) 以及收获。 除了最初的框架,测试用例中存在一次性pass没有经过fail的,也报告一次性通过,给出如此优秀地实现了这部分功能的代码。(40分)

      功能一

    编号 测试用例 预期结果 测试结果
    1 用户输入正确结果 提示:“答对啦,你真是个天才!”并给出下一题 通过
    2 用户输入错误结果 提示:“再想想吧,答案似乎是12喔!”并给出下一题 通过
    3 用户共答对3题 提示:“你一共答对3道题,共20道题” 通过

      功能二

    编号 测试用例 预期结果 测试结果
    4 用户输入正确结果 提示:“答对啦,你真是个天才!”并给出下一题 通过
    5 用户输入错误结果 提示:“再想想吧,答案似乎是12喔!”并给出下一题 通过
    6 用户共答对3题 提示:“你一共答对3道题,共20道题”

    通过

      功能三

    编号 测试用例 预期结果 测试结果
    7 输入 f4 -c -200 输出“题目数量必须是 正整数。” 通过  
    8 输入 f4 -c 3.5 输出“题目数量必须是 正整数。” 通过
    9 输入 f4 -c 3 输出三道题目,并保存到txt中 通过

      函数  public static double Compute(double leftNum, double rightNum, char op) 

      

     经过测试,测试结果全部通过,上面给出了一个测试用例的截图

    编号 测试用例 预期结果 测试结果
    10 num1=1,num2=3,op='/' 0 通过
    11 num1=4,num2=0,op='/' 0 通过
    12 num1=2,num2=5,op='/' 0.4

    通过

    函数  public static double Calucate(string expression) 

      

    经测试,测试用例全部通过。

      

    编号 测试用例 预期结果 测试结果
    13 “3+1” 4 通过
    14 “4/5” 0.8 通过
    15 “1+(2-3)/2” 0.5

    通过
    16 "1*2/(2+8)" 0.2 通过

    相关程序代码如下:

      

     1     //计算两两之间操作后的数值
     2         public static double Compute(double leftNum, double rightNum, char op)
     3         {
     4 
     5             switch (op)
     6             {
     7                 case '+': return leftNum + rightNum;
     8                 case '-': return leftNum - rightNum;
     9                 case '*': return leftNum * rightNum;
    10                 case '/':
    11 
    12                     double m = leftNum / rightNum;
    13                     string s = m.ToString();
    14                     if (s.Length > 9)
    15                     {
    16                         go = 1;
    17                     }
    18 
    19                     return leftNum / rightNum;
    20                 case '%': return leftNum % rightNum;
    21                 case '^': return Math.Pow(leftNum, rightNum);
    22                 default: return 0;
    23             }
    24 
    25         }
     1  public static double Calucate(string expression)
     2         {
     3             try
     4             {
     5                 var rpn = MidOrderToPostOrder(expression);
     6                 var operandStack = new Stack<double>();
     7                 double left, right;
     8                 object cur;
     9                 while (rpn.Count > 0)
    10                 {
    11                     cur = rpn.Dequeue();
    12                     if (cur is char)
    13                     {
    14                         right = operandStack.Pop();
    15                         left = operandStack.Pop();
    16                         operandStack.Push(Compute(left, right, (char)cur));
    17                     }
    18                     else
    19                     {
    20                         operandStack.Push(double.Parse(cur.ToString()));
    21                     }
    22                 }
    23                 return operandStack.Pop();
    24             }
    25             catch
    26             {
    27                 throw new Exception("表达式格式不正确!");
    28             }
    29         }

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

    https://git.coding.net/xushaobin/task_4.git

  • 相关阅读:
    Jmeter安装与环境部署
    BVT & BAT (版本验证测试和版本验收测试)
    测试计划(Test Plan)
    小米8se从miui12降级刷机手记
    网络传输---HttpURLConnection
    mybatis 中 foreach collection的三种用法
    XStream--java对象与xml形式文件相互转换
    idea问题总结记录
    ssh框架配置过程
    ssm框架配置过程
  • 原文地址:https://www.cnblogs.com/linym762/p/7650093.html
Copyright © 2011-2022 走看看