【深圳大学软件工程】实验六 模块测试

本文介绍了如何通过理解单元测试原理,使用程序流图设计测试用例,并针对Java程序中的函数`intcal(Personperson,intsalary)`进行实验。实验包括绘制程序流图,计算环形复杂度,设计测试用例,运行测试并分析结果,以及在必要时进行程序修复。最终得出程序正确的结论。
摘要由CSDN通过智能技术生成

实验目的

1. 理解单元测试的原理及工作内容;

2. 掌握使用程序流图设计测试用例;

3. 掌握测试用例设计方法及应用。

实验内容

(一)实验内容

请阅读附件的Java程序,根据下列要求完成实验内容(参考第5ppt

1. 绘制程序流图:分析函数int cal(Person person, int salary),绘制程序流图;

2. 提取独立路径集合:计算程序流图的环形复杂度,并提取独立路径集合;

3. 设计测试用例:根据每条独立路径,设计其测试用例(见表1);

4. 分析测试结果:运行每个测试用例,并分析其测试结果(见表1);

5. 程序修复(选做):如发现测试失败,请修复程序,并重新测试使得修复后的程序通过测试用例。

(二)要求:

1. 请按要求完成上述实验内容,在实验报告中要详细描述实验的各个步骤,图文并茂。

2. 请大家按照指定的软件工程实验报告模板,高质量的完成实验报告内容。

3. 请独立完成实验,并按时提交报告。

实验分析及过程

1. 以下是函数 cal 的主要步骤:

安全性检查:

检查输入参数 person 是否为 null,如果是,抛出 NullPointerException。

检查输入参数 salary 是否小于 0,如果是,抛出 IllegalArgumentException。

计算应纳税所得额:

初始化 res 为 salary - 5000,即月度收入减去免征额。

专项附加扣除:

子女教育:每个子女每月扣除 1000 元。

继续教育:根据是否在学以及是否获得相关证书,分别扣除 400 元或 3600 元。

住房贷款:如果有住房贷款,扣除 1000 元。

住房租金:根据不同情况扣除不同金额的租金。

赡养老人扣除:

每个月扣除 2000 元除以兄弟姐妹个数加一。

计算个人所得税:

根据阶梯税率计算个人所得税,将结果保存在 tax 中。

如果应纳税所得额小于 0,则个人所得税为 0。

返回结果:

将 tax 强制转换为整数并返回。

绘制成程序流图所下图所示。

2. 提取独立路径集合:计算程序流图的环形复杂度,并提取独立路径集合;

环形复杂度可定量度量程序的逻辑复杂性。

流图中的区域数等于环形复杂度,即13。

流图G的环形复杂度V(G)=E – N + 2,其中E是流图中边的条数,N是流图中的节点数。则V(G)=49-38+2=13

流图G的环形复杂度V(G)= P + 1,其中P流图中判定节点的数目。

即V(G)= P + 1=12+1=13。

独立路径集合过多,下方只列出五种。

(1) 1-3-5-6-8-9-12-13-14-16-17-18-33-34

(2) 1-3-5-6-7-8-10-11-12-35-37-14-15-16-17-19-21-23-24-33-34

(3) 1-3-5-6-8-9-12-13-14-15-16-17—19-21-23-25-27-28-33-34

(4) 1-2

(5) 1-3

3. 设计测试用例:根据每条独立路径,设计其测试用例;

4.设计测试代码,如下所示。

5.运行代码,结果如下,符合预期。

实验结论

经分析知程序正确,此次测试完成。

(by 归忆)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归忆_AC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值