第一大题
1.1
依据核心代码绘制程序流程图如下:

依据程序流程图可得控制流图如下:

计算环路复杂度:V(G) = 判断节点个数 + 1
= 3 + 1
= 4
独立路径为:
- 路径 1:
0-->1-->2-->9
- 路径 2:
0-->1-->3-->4-->9
- 路径 3:
0-->1-->3-->5、6-->7-->9
- 路径 4:
0-->1-->3-->5、6-->8-->9
1.2
设定测试输入数据的顺序为(金额,账户状态,交易频次,是否高风险区域),按语句覆盖要求,每条独立路径的测试用例如下:
- 路径 1: 数据 (500, False, 3, True),预期:True
- 路径 2: 数据 (15000, True, 2, False),预期:True
- 路径 3: 数据 (21000, True, 5, False),预期:True
- 路径 4: 数据 (21000, True, 3, False),预期:False
第二大题
2.1
决策表规则:
2.2
决策表测试用例:
第三大题
3.1
修改后代码:
# sort.py
def iterative_calculation(initial_num, operation_type):
result = 0
current_num = initial_num
while current_num > 0:
if operation_type == 0:
result += 2
elif operation_type == 1:
result += 10
else:
result += 20
current_num -= 1 # 修正:此行应在循环内
return result
3.2
修改后代码:
from ddt import _____, _____, _____
应填入 ddt, data, unpack
from sort import _____
应填入 iterative_calculation
(0, 0, _____) 应填入 0
(5, 1, _____) 应填入 50
(5, 2, _____) 应填入 100
(-1, 5, _____) 应填入 0
(10, 1, _____) 应填入 100
result = iterative_calculation(_____, _____)
应填入 input_num, mode
self._____(result, expected, msg=f"实际结果:{result}")
应填入 assertEqual
agricultural_points = iterative_calculation(_____, _____)
应填入 15, 2
self.assertEqual(agricultural_points, _____, "应支持农产品兑换")
应填入 300
if __name__ == '__main__':
_____ 应填入 unittest.main()
第四大题
4.1
社会影响: 挂号系统崩溃导致异地患者就医受阻,破坏“公平可及”;退款超时引发医患矛盾,导致信任危机;隐私泄露引发诈骗风险,触及法律红线。
测试意义: 充分的功能/性能测试保障系统可用性;合规/时效性测试确保政策落地,维护患者经济权益;安全性测试防止隐私泄露,保障公共数据安全。
责任缺失点:
- 需求分析阶段:未定义异地医保高并发场景,遗漏性能测试需求。
- 测试设计阶段:无超时边界测试(如退款>48h),缺失时效性测试用例。
- 测试执行阶段:未实施渗透测试,未检查就诊记录访问控制。
- 过程管理:缺少端到端的流程追踪,如退款流程。
4.2
核心业务测试方案:
- 全流程测试: 使用自动化工具(如 Selenium)模拟三类患者执行挂号、退号全流程,验证与省级/国家医保平台对接的稳定性和兼容性。
- 资金安全时效测试: 运用边界值分析法(47/48/49 小时)和异常注入,强制触发退款延迟场景,监控资金返还路径的合规与可追溯性。
- 安全防护测试: 实施渗透测试,模拟伪造医保凭证、SQL 注入等攻击,检测就诊记录泄露风险及身份认证漏洞。
流程优化建议:
- 针对政策变更:构建动态策略规则库,实现自动化业务逻辑回归测试,确保规则变更后快速验证。
- 针对接口调整:引入契约测试(如 Pact),在开发早期验证服务间的交互逻辑,提前暴露兼容性问题,减少后期集成风险。