码迷,mamicode.com
首页 > 其他好文 > 详细

RIGHT-BICEP单元测试——“二柱子四则运算升级版”

时间:2016-03-13 12:56:12      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

                              RIGHT-BICEP单元测试

                                                    ——“二柱子四则运算升级版”

”单元测试“这对于我们来说是一个全新的专业含义,在上了软件工程这门课,并当堂编写了简单的"求一组数中的最大值"函数的单元测试之后,我们对它有了全新的认识。

单元测试:即为,

老师让我们回去之后将“二柱子四则运算升级版”的程序进行单元测试(二柱子程序的源码我已经上传,这里不再重复,只列举单元测试的部分和分析),如下:

PS.这里附上老师上课讲的关于RIGHT-BICEP测试的方法:

6个值得测试的具体部位,他们能够提高我们的测试技巧:
Right-结果是否正确?
B-是否所有的边界条件都是正确的?
I-能查一下反向关联吗?
C-能用其他手段交叉检查一下结果吗?
E-你是否可以强制错误条件发生?
P-是否满足性能要求?

一、测试计划

-测试结果是否正确?
-测试是否能够产生指定范围的随机数?
-测试能否选择是否保存到文件里?
-测试能否选择有无真分数?
—测试能否选择只进行加减运算还是四则运算?
-测试能否选择加减有无负号?
—测试能否选择除法有无余数?
 
二、测试结果是否正确?
 

三、测试是否能够产生指定范围的随机数?

     上一次编写二柱子的程序也用到了随机生成随机数的知识点,我已经声明是在CSDN上看到大神们的讨论。用的是下面的源码:

 1 #include<iostream>
 2 #include <time.h>
 3 using namespace std;
 4 #define random(x) (rand()%x)
 5 
 6 void main()
 7 {
 8     srand((int)time(0));
 9     one = rand() % (r2-r1+ 1) + 1;
10     two = rand() % (r2 - r1 + 1) + 1;
11     cout<<one<<" "<<two<<endl;
12 }

     用这种方法貌似只能产生正整数。但是,鉴于这次程序的要求中涉及到用户设置“是否有负数”,所以我有两个思路。一是还用上次的方法,设置swich语句来控制是否手动添加

负号。二是换一中能生成含有负数的随机数。于是我又去人家的博客上围观了一下(原谅我真的记不住生成随机数的方法了╥﹏╥...),经过我的测试,下面的方法可以产生任意区间内的整数(含负数),源码如下:

 1 //编程时的测试程序
 2 
 3 #include<iostream>
 4 #include <time.h>
 5 using namespace std;
 6 #define random(x) (rand()%x)
 7 
 8 void main()
 9 {
10     
11     int one, two;
12     int r, r1, r2;
13     cout << "分别输入下限和上限:" << endl;
14     cin >> r1;
15     cin >> r2;
16     r = r2 - r1;
17     srand((int)time(0));
18     /*one = r1 + r2 * rand() / (RAND_MAX + 1);
19     two = r1 + r2 * rand() / (RAND_MAX + 1);
20     three = r1 + r2 * rand() / (RAND_MAX + 1);
21     four = r1 + r2 * rand() / (RAND_MAX + 1);*/
22 
23     one = r1 + rand() % r;
24     two = r1 + rand() % r;
25 
26     cout << one<<" ," << two << endl;
27 }

 

测试数据和截图如下:分别测试-30~50;0~30;-30~0之间的整数,测试结果正确!!

技术分享 技术分享技术分享技术分享技术分享技术分享

 四、测试能否选择是否保存到文件里?

老师题目的要求是“可定制打印方式”,我看到有的同学理解是按照不同的输出风格输出,比如一行输出5个或者10个算式,这个可定制。但是我理解的是要用户选择是否要输出到文件里,因此我查阅了C++的输入输出流代码,如下:

 1 #include<fstream>
 2 #include<iostream>
 3 #include<cmath>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     ofstream outfile("Prime.txt", ios::out);
 9     if (!outfile)
10     {
11         cout << "open error!" << endl;
12         exit(1);
13     }
14     outfile <<"1 2 3 4 5 6 " << endl;
15     outfile.close();
16     return 0;
17 }

我们会看到文件成功的建立,并将数据存入到文件里。

技术分享技术分享

但是……(。?_?。)?我不得不说,我在制定思路的时候是想着,先让用户选择是否要打印到文件中,然后在后来的每次输出都用if语句来控制,如果只是屏幕输出就用cout<<输出;如果是保存到文件中就用outfile<<输出……但是……鉴于我的输出量实在是太大了,第一轮代码的编写我只是写了屏幕输出额cout,然后昨天由于作业赶着交就没有修改输出部分的代码,不过我使用了一个函数建立了文件,有时间我一定会再加上的……

技术分享

技术分享技术分享

五、测试能否选择有无真分数?
 
六、测试能否选择只进行加减运算还是四则运算?
 
七、测试能否选择加减有无负号?
 
八、测试能否选择除法有无余数?
 

 

RIGHT-BICEP单元测试——“二柱子四则运算升级版”

标签:

原文地址:http://www.cnblogs.com/2016helen/p/5268515.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!