• 第三次软件工程作业


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

    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,使得接下来的工作更加便于开展。

  • 相关阅读:
    马尔科夫过程的CKS方程的推导
    科研的一些工具和想法
    读研究生后的一些想法
    读过的一些好书以后可做参考
    latex学习笔记
    机器人工程师学习要求
    《MySQL实战45讲》(8-15)笔记
    《MySQL实战45讲》(1-7)笔记
    java11运行javaFX项目
    ClickHouse入门笔记
  • 原文地址:https://www.cnblogs.com/fanner7/p/8686029.html
Copyright © 2020-2023  润新知