实验报告
2014 – 2015 学年第 2 学期 任课老师: 淘宝店号530213 课程名称 实验题目 实验目的、要求 软件测试 实验三、单元测试 班级 实验时间 座号 姓名 实验日期: 2015.4.2 提交日期: 2015.4.2 实验目的及要求: 1掌握单元测试 实验设计内容 单元测试 1
2
实验结果记录以及与预期结果比较以及分析 1.编译执行 2.静态测试 提示: 请填写账单优惠计算的具体折扣优惠规则:(修改后的程序) 1、 当消费数额在0~800(不包含0,包含800)之间时,不打折; 2、 当消费数额在800~1800(不包含800,包含1800)之间时,打9折; 3、 当消费数额在1800~4800(不包含1800,包含4800)之间时,打8折; 4、 当消费数额大于4800(不包含4800)时,打7折; 5、 当消费数额小于0(包含0)时,提示消费数额无效; 备注:补充注释在最后修改后的程序中显示 第三,思考是否存在代码错误?若存在应如何修改? 有错误;原程序中“10”与“2”之间存在错误,修改做法是在“2”的判断中添加了“&&amount>0”。(详细的在最后修改后的程序中有) 3.动态测试 (备注:根据修改后的程序设计)
3
提示: 表3-1 动态黑盒测试用例表 等价类 有效等价类 数据 0~800(不包含0,包含800)之间 800~1800(不包含800,包含1800)之间 1800~4800(不包含1800,包含4800)之间 大于4800(不包含4800) 无效等价类 ID 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 输入 600 1000 3000 5000 -100 1 799 800 801 1799 1800 1801 4799 4800 4801 0 预期输出 600 900 2400 3500 提示消费数额无效 1 799 800 720.9 1619.1 1620 1440.8 3839.2 3840 3360.7 提示消费数额无效 小于0(包含0) 执行结果 600 900 2400 3500 提示消费数额无效 1 799 800 720.9 1619,1 1620 1440.8 3839.2 3840 3360.7 提示消费数额无效 备注 以下为边界值测试 (1)FuncRevenueAccount函数的控制流图(见图3-1) 编号 1 2 3 4 5 4
2 3 4 5 6 7 8 13 9 10 11 end 图3-1 FuncRevenueAccount函数的控制流图 12 (2)FuncRevenueAccount函数的环形复杂度为 5 (3)FuncRevenueAccount函数的独立路径 Path 1:2-4-6-8-10-11-12-end Path 2:2-4-6-8-9-13-end Path 3:2-4-6-7-13-end Path 4:2-4-5-13-end Path 5:2-3-13-end (4)FuncRevenueAccount函数的基本路径集的测试用例(见表3-2) ID 输入 预期输出 提示消费数额无效 3500 1400 900 600 执行结果 3500 1400 900 600 备注 Path 2 Path 3 Path 4 Path 5 RN-001 -100 RN-002 5000 RN-003 2000 RN-004 1000 RN-005 600
5
提示消费数额无效 Path 1 4.编写测试驱动程序 提示: 6
7
5.执行测试用例并分析结果 8
修改后的FuncRevenueAccount函数及主函数为: #include\"stdio.h\" //定义函数用于选择打折系数rate,并返回相应的打折后实际数额 double FuncRevenueAccount(double amount) { double rate=1.0; //初始化打折比例为1.0 if(amount<=800&&amount>0) //当消费数额在0~800(不包含0,包含800)之间时,不 rate=1.0; 打折,即令rate=1.0 else if(amount>800&&amount<=1800) //当消费数额在800~1800(不包含800,包含1800)之间时,打9折,即令rate=0.9 9
} rate=0.9; else if(amount>1800&&amount<=4800) //当消费数额在1800~4800(不包含1800,包含4800)之间 { } return amount*rate; //返回打折后的实际数额 return -1.0; rate=0.8; rate=0.7; 时,打8折,即令rate=0.8 else if(amount>4800) //当消费数额大于4800(不包含4800)时,打7折,即令rate=0.7 else if(amount,0) //当消费数额小于0(包含0)时,返回-1.0 void main() { } double amountBefore=0.0; //初始化打折前的消费数额为0.0 printf(\"请输入账单的消费数额(该数额应大于零):\\n\"); scanf(\"%lf\ //输入打折前的消费数额 printf(\"输入账单值为%lf,\double amountAfter=0.0; //初始化打折后的消费数额为0.0 amountAfter=FuncRevenueAccount(amountBefore); //调用FuncRevenueAccount(double amount)函/* 判断打折后的消费是否为有效数额, 若为有效数额则输出“优惠计算后的账单值”; 若为无效数额则输出“账单消费数额无效”的提示 */ if(amountAfter<=0) else printf(\"优惠计算后的账单值为%lf\\n\printf(\"\\n账单消费数额无效\\n\"); 数确定打折后的实际数额 总结以及心得体会 记住淘宝店530213 教师评阅意见 10
教师: 2015 年 4 月 2 日 填写内容时,可把表格扩大。实验的源程序代码(要有注释)附在表后。
11
因篇幅问题不能全部显示,请点此查看更多更全内容