0330 复利计算——单元测试

 先进行简单的测试:

界面输入测试:

当输入范围以外的数字时:       进不去,需要重新输入。

   

在后面的选择界面也有相对应的控制。

然后是计算的测试:

这个结果无从证明,但是看上去还是可以计算的,但是感觉利率应该一般是小于1的,所以控制有待改进。

这个是对于负数的输入,显示是可以输入,然而不符合常理,也是需要改进的。

 

这是关于复利计算与网上的对比,应该没差错,我的结果保留了两位小数。

                                

测试模块  测试输入 预期结果 运行结果 bug追踪
单利计算 求终值(现值,周期,利率) “1000,2,0.03”  1060  √  
 “-1000,-2,-0.03”  报错  ×  修改
复利计算  求终值(现值,周期,利率)  “1000,2,0.03”  1000.60  √  
 “-1000,-2,-0.03”  报错  ×  修改
 求现值(终值,周期,利率)  “2000,4,0.02”  1847.69  √  
 “-2000,-4,-0.02”  报错  ×  修改

 

 

 

 

 

 

 

 

 

 

     

 

      关于c语言单元测试在网上找了几个相关网站学习,感觉都很不错,但是非常非常复杂,很多都是自己不懂。

所以最终选择了Vctester,不过目前只学皮毛,日后需加深认识。

分享c语言单元测试的工具:  Cunit       http://blog.sina.com.cn/s/blog_6c07f2b60100xucf.html

                Vctester http://blog.csdn.net/vincetest/article/details/5364760

 

安装完vctester后先确定好准备就绪,然后在打开vctester后运行测试文件的Debug文件夹下的exe文件,它会自动连接文件。

             

新 int 的 itest=5为测试的全局变量,当vctester输出5,则说明文件连接成功,可以进行进一步测试。

 

测试源码:

if(m!=1 && m!=2)
        {  
            printf("\n\t输入错误!\n");  
            
        }

        else if(m==1)                    //月投
                {    
                    system("cls");
                    printf("\n\t请输入每月投入金额:");
                    scanf("%lf",&p);
                    printf("\t请输入年利率:");    
                    scanf("%lf",&i);
                    printf("\t请输入周数(年):");
                    scanf("%d",&n);
                    f=0;
                    f=p*(1+i/12)*(-1+pow(1+i/12,n*12))/(i/12);
                    printf("\n\t年金终值为:%0.2lf\n\n",f);
                }
                
        else if(m==2)                   //年投
                {
                    system("cls");
                    printf("\n\t请输入每年投入金额:");
                    scanf("%lf",&p);
                    printf("\t请输入年利率:");    
                    scanf("%lf",&i);
                    printf("\t请输入周数(年):");
                    scanf("%d",&n);
                    f=0;
                    f=p*(1+i)*(-1+pow(1+i,n))/i;
                    printf("\n\t年金终值为:%0.2lf\n\n",f);
                    
                }

 

 

下面是一些常用的控制语句cse语句表达:

     

运行结果图:  

测试后发现都可以进行成功输出“In true branch”。结构上没有差错。

然后是一些常用的函数定义的测试

然后打算运行一下,发现结果有点看不懂。

 

总结这次的c语言单元测试:

由于是第一次接触vctester很多东西还是看不懂,后来也查阅的很多资料,结果还是不能解决。。。

然后看了白盒测试方法的这篇博客很多还是不能理解  http://blog.csdn.net/wayne_chan/article/details/1271780(个人感觉涨了知识)。

因为之前在做复利计算时选择的是c语言,而在课堂上没怎么谈及c语言做单元测试,所以只能自己在网上需求办法,花费时间精力较多,但却没有换来很直接的成果。

这次不太完整的单元测试,虽然结果不是完美的,但是还是学到了很多,c语言现在有一些现成的软件比如 visual unit4.0 等无需写测试代码,不过我还是很愿意从基础学起,在以后的学习中多学习,尝试。

修改后github地址:
https://github.com/caijinghang666/first-code.git

posted @ 2016-03-30 19:31  J航  阅读(377)  评论(1编辑  收藏  举报