zoukankan      html  css  js  c++  java
  • 第三次软件工程作业

    考虑不熟悉习单元测试,所以选择了更直接的第二题

    1.作业题目及要求

    下表为某商场每日营业额与应收税率的对照表,请编写一小程序根据该商场每日营业额计算其实际应缴纳税费。

    |营业额X (¥)|1000≤X<5000|5000 ≤X<10000|X≥10000|
    | -------- | ---------: | :--------: |
    |税率|5%|8%|10%|

    *(1) 请从上述两个题目中根据个人实力任选一题,要求写出可运行的完整代码提交至GitHub或者Coding.net系统中,并将代码地址附到博客内,题目(1)可以参考这篇博文
    *(2) 请从语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖五个覆盖标准中(条件组合覆盖难度较大,鼓励尝试,但请谨慎选择),任选一个标准设计测试用例
    *(3) 请利用自动测试工具对程序进行测试
    *(4) 请将程序运行结果和自动测试分析结果截图附到博客中

    2.程序流程图

    3.程序代码

    class Calculate
    {
    public:
    	double Tax(double sale);
    private:
    
    };
    
    double Calculate::Tax(double sale)
    {
    	if (sale >= 1000)
    	{
    		if (sale >= 5000)
    		{
    			if (sale >= 10000)
    			{
    				return sale * 0.1;
    			}
    			else
    			{
    				return sale * 0.08;
    			}
    		}
    		else
    		{
    			return sale * 0.05;
    		}
    	}
    	else
    	{
    		return sale * 0;
    	}
    }
    
    

    3.测试代码

    测试数据
    S=900 T=0 ABCEL
    S=2000 T=100 ABDGJL
    S=6000 T=480 ABDFHKL
    S=11000 T=1100 ABDFIL
    同时满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖

    
    namespace UnitTest1
    {		
    	TEST_CLASS(UnitTest1)
    	{
    	public:
    		
    		TEST_METHOD(TestMethod1)
    		{
    			Calculate a;
    			double F = 0;
    			double T;
    			T = a.Tax(900);
    			Assert::AreEqual(F,T);
    		}
    		TEST_METHOD(TestMethod2)
    		{
    			Calculate a;
    			double F = 100;
    			double T;
    			T = a.Tax(2000);
    			Assert::AreEqual(F, T);
    		}
    		TEST_METHOD(TestMethod3)
    		{
    			Calculate a;
    			double F = 480;
    			double T;
    			T = a.Tax(6000);
    			Assert::AreEqual(F, T);
    		}
    		TEST_METHOD(TestMethod4)
    		{
    			Calculate a;
    			double F = 1100;
    			double T;
    			T = a.Tax(11000);
    			Assert::AreEqual(F, T);
    		}
    	};
    }
    
    

    4.测试结果

    测试通过

    5. coding

    6.总结

    通过自己编写代码,编写测试样例,再一次全面了了解了单元测试,对于测试的使用有了深刻的理解。在做作业的同是复习了类,熟悉了使用vs2017,使得接下来的工作更加便于开展。

  • 相关阅读:
    Git Cannot rebase: You have unstaged changes.
    importError: DLL load failed when import matplotlib.pyplot as plt
    install tushare in python 3.6
    pd.qcut, pd.cut, df.groupby()等在分组和聚合方面的应用
    从池子里的beta看秋香, 个性迥异
    个股和股票池的beta系数的估算
    检验两个随机序列的beta系数
    spyder里的"查找文件里的特定字符串"非常方便
    地图上道路编号中的G S X Y
    场内的代码表, 感觉水很深
  • 原文地址:https://www.cnblogs.com/fanner7/p/8686029.html
Copyright © 2011-2022 走看看