软件工程第二次作业

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

 

以上是关于软件工程第二次作业的主要内容,如果未能解决你的问题,请参考以下文章

软件工程第二次作业

软件工程第二次作业

第二次软件工程作业

软件工程第二次作业中第一个作业

软件测试第二次作业

软件工程第二次作业