zoukankan      html  css  js  c++  java
  • 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("
    	输入错误!
    ");  
                
            }
    
            else if(m==1)                    //月投
                    {    
                        system("cls");
                        printf("
    	请输入每月投入金额:");
                        scanf("%lf",&p);
                        printf("	请输入年利率:");    
                        scanf("%lf",&i);
                        printf("	请输入周数(年):");
                        scanf("%d",&n);
                        f=0;
                        f=p*(1+i/12)*(-1+pow(1+i/12,n*12))/(i/12);
                        printf("
    	年金终值为:%0.2lf
    
    ",f);
                    }
                    
            else if(m==2)                   //年投
                    {
                        system("cls");
                        printf("
    	请输入每年投入金额:");
                        scanf("%lf",&p);
                        printf("	请输入年利率:");    
                        scanf("%lf",&i);
                        printf("	请输入周数(年):");
                        scanf("%d",&n);
                        f=0;
                        f=p*(1+i)*(-1+pow(1+i,n))/i;
                        printf("
    	年金终值为:%0.2lf
    
    ",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

  • 相关阅读:
    特征的处理
    Pandas读取文件
    标准化数据-StandardScaler
    hibernate 继承映射
    hibernate 多对多关联映射
    hibernate 一对一关联映射
    hibernate 一对多 单双向关联
    hibernate配置文件
    spring整合struts2
    AWS云教育账号创建以及搭建数据库
  • 原文地址:https://www.cnblogs.com/cjh123/p/5331314.html
Copyright © 2011-2022 走看看