软件工程第二次作业总结
1.题目要求:
题目(1):最大连续子数组和(最大子段和)
背景
问题: 给定n个整数(可能为负数)组成的序列a[1], a[2], a[3], …, a[n], 求该序列如a[i] + a[i + 1] + … + a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{ 0,a[i] + a[i + 1] + … + a[j] }, 1 <= i <= j <= n
例如,当(a[1], a[2], a[3], a[4], a[5], a[6]) = (-2, 11, -4, 13, -5, -2)时,最大子段和为20。
2.请从语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖五个覆盖标准中(条件组合覆盖难度较大,鼓励尝试,但请谨慎选择),任选一个标准设计测试用例;
3.请利用自动测试工具对程序进行测试;
首先,对所选题目的代码进行设计部分,采用了简单的函数调用,设计了最大连续子数组求和的函数,功能实现较为普通,只是根据键盘输入的序列长度与序列元素而进行操作,通过for循环以及简单的条件判断即可完成。其次,在对根据题目要求设计出的代码进行测试用例设计的过程中,选择了条件覆盖作为覆盖标准。条件覆盖要求每个判定的每个条件应取到各种可能的值,这有助于确保代码中的条件逻辑得到有效的测试覆盖。通过这样的测试用例设计,我们可以确保对于不同情况下的输入,代码能够正确地计算出最大连续子数组的和,并且覆盖了代码中的各种条件逻辑分支。总的来说,通过合理的测试用例设计,可以有效地检验代码的正确性,并帮助发现潜在的错误或漏洞,提高代码的质量和可靠性。在完成此次任务后,对我的软件工程能力有一定的提升,加深了我对各种覆盖标准的理解,受益匪浅。

浙公网安备 33010602011771号