在本次软件工程作业中,我深入探讨了最大子数组和问题,通过精心设计的测试用例,采用语句覆盖策略确保了代码的每个分支至少被执行一次。以下是我实施的测试用例概览与所采用的自动化测试工具结果的完整描述。
测试用例设计与覆盖策略
-
全正数数组:该测试用例旨在验证算法能正确处理所有元素均为正数的情况。此时,
currentSum
持续累加,不会重置为0,maxSum
随之更新。这个测试用例主要覆盖了算法的正常累加路径。 -
全负数数组:此用例检验算法对全负数数组的处理能力。在这种场景下,
currentSum
可能因累加负数而小于0,此时会重置为0,而maxSum
保持为0。这确保了算法能正确处理全负数情况。 -
正负交替数组:通过正负数交替出现的数组,测试用例旨在验证算法处理复杂情况的能力。
currentSum
可能因累加负数而减小,甚至小于0,此时会重置为0,maxSum
在遇到正数累加时更新。 -
包含零的数组:该用例考察算法对0值的处理。遇到0时,
currentSum
不变,但可能因累加负数而重置。maxSum
根据情况更新。 -
单个正数:此用例测试算法对只含单个正数数组的处理,验证循环单次执行的场景。
currentSum
等于该正数,maxSum
据此更新。 -
单个负数:用于测试算法对只含单个负数的数组处理能力。
currentSum
加上负数后可能小于0,此时会重置为0,maxSum
保持为0。 -
全零数组:此用例旨在检验算法对全零数组的处理。在这种情况下,
currentSum
始终为0,maxSum
也保持为0。 -
当前和始终大于最大和:该测试用例设计用来验证
currentSum
持续增加且不会重置为0的情况,maxSum
可能在循环的每一步都更新。
自动化测试与结果
使用MinUnit自动化测试框架执行上述测试用例,确保了每个用例都能准确执行,覆盖了算法的各个分支。测试结果显示“ALL TESTS PASSED”,表明maximalSubsequenceSum
函数在这八种基本情况下均符合预期行为。
这次作业加深了我对最大子数组和问题的理解,让我体会到了语句覆盖在软件测试中的重要性,以及自动化测试在确保代码质量方面的作用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)