软件工程第二次作业
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程第二次作业相关的知识,希望对你有一定的参考价值。
最大子数组和的实现与测试
-
题目要求
给定源数组求该数组中和最大的子数组
-
算法思想
遍历源数组,每遍历一次用一个当前子数组和计数器(pseudoResult)将当前遍历过的数字加和,然后判断pseudoResult是否大于0,大于0的话就和最大子数组个计数器(result)比较,取两者较大值作为result的值,然后进行下一次循环;若pseudoResult小于等于0,pseudoResult的值置为0(意味着舍去之前计算的数组结果重新计算),然后进行下一次循环。
-
实现代码
https://coding.net/u/qianfeiqianlan/p/software_engineering_code/git
-
单元测试
安装vs2013 Unit Test Generator插件
在项目解决方案中添加单元测试项目
(SumMaximumSubArray为最大子数组求和,SumMaximumSubArrayTest为测试项目)
在测试项目中添加待测项目的引用
(添加后测试项目中的引用结构如图所示)
编写测试代码
1 using System; 2 using Microsoft.VisualStudio.TestTools.UnitTesting; 3 using SumMaximumSubArrayQuestion; 4 5 namespace SumMaximumSubArrayTest 6 { 7 [TestClass] 8 public class UnitTest1 9 { 10 [TestMethod] 11 public void SumMaximumSubArrayTest1() 12 { 13 int[] firstArray = { 1, -2, 3, -4, 5, 6, 0 }; 14 Assert.AreEqual(Program.SumMaximumSubArray(firstArray), 11); 15 } 16 17 [TestMethod] 18 public void SumMaximumSubArrayTest2() 19 { 20 int[] secondArray = { 1, 2, 3, 4, -1, -7, 9 }; 21 Assert.AreEqual(Program.SumMaximumSubArray(secondArray), 11); 22 } 23 24 [TestMethod] 25 public void SumMaximumSubArrayTest3() 26 { 27 int[] thirdArray = { 111, 20, 30, 44, -4, -7, 19 }; 28 Assert.AreEqual(Program.SumMaximumSubArray(thirdArray), 213); 29 30 } 31 32 [TestMethod] 33 public void SumMaximumSubArrayTest4() 34 { 35 int[] fourthArray = { -4, 4, -2, 9, 7, -4, 1, 0, -3, 4 }; 36 Assert.AreEqual(Program.SumMaximumSubArray(fourthArray), 18); 37 38 } 39 40 [TestMethod] 41 public void SumMaximumSubArrayTest5() 42 { 43 int[] fifthArray = { 1, 12, -3, 4, -1, -7, 9 }; 44 Assert.AreEqual(Program.SumMaximumSubArray(fifthArray), 15); 45 46 } 47 } 48 }
tips:要是发现在测试项目中无法访问主项目中的类,原因是vs自动创建的Program类是私有的,下图是我改过的
最后就是运行单元测试观察结果了
写了五组数据,测试结果当然如预期一样通过了。完结撒花。
-
附录:
测试数据
用例编号 | 用例描述 |
输入数据 |
预期输出数据 | 实际输出数据 | 通过/不通过 | 评价 |
1 |
1, -2, 3, -4, 5, 6, 0 |
11 | 11 |
true |
||
2 |
1, 2, 3, 4, -1, -7, 9 |
11 | 11 | true | ||
3 |
111, 20, 30, 44, -4, -7, 19 |
213 | 213 | true | ||
4 |
-4, 4, -2, 9, 7, -4, 1, 0, -3, 4 |
18 | 18 | true | ||
5 |
1, 12, -3, 4, -1, -7, 9 |
15 | 15 | true |
单元测试参考博客:
git使用教程参考博客:
http://blog.csdn.net/williamwang2013/article/details/8643714
以上是关于软件工程第二次作业的主要内容,如果未能解决你的问题,请参考以下文章