软件工程第二次作业

博客信息 沈阳航空航天大学计算机学院2020软件工程作业
作业要求 https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/10583
课程目标 熟悉一个“高质量”软件的开发过程
作业目标 单元测试练习

1. 阅读材料

  • 请阅读邹欣老师的这篇博文和构建之法第1~3章内容,尤其是第2章效能分析和第3章代码规范部分

  • 回顾和复习课堂讲授的单元测试部分内容

2. 题目要求

题目(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。 -- 引用自《百度百科

3.源代码

最大子段和源代码

4. 程序运行结果

  • 测试用例:(-2,11,-4,13,-5,-2)

  • 测试用例:(1,-3,6,10,2,4)

  • 测试用例:(-6,7,-2,-4,10,-1)

  • 测试用例:(3,-4,5,-10,7,-8)

5. 判定条件覆盖测试

软件工程第二次作业_第1张图片

 

 

 

6.单元测试

经查阅网络资料,pycharm的单元测试需要编写一个单元测试的py文件,测试代码如下所示:

 1 import unittest
 2 
 3 from minlist import minlist
 4 
 5 class MyTestCase(unittest.TestCase):
 6     # 用于测试minlist.py
 7     def test_minlist1(self):
 8         mini_str = minlist()
 9         if self.assertEqual(mini_str,20):
10             print("true")
11     def test_minlist2(self):
12         mini_str = minlist()
13         self.assertEqual(mini_str,6)
14     def test_minlist3(self):
15         mini_str = minlist()
16         self.assertEqual(mini_str,11)
17     def test_minlist4(self):
18         mini_str = minlist()
19         self.assertEqual(mini_str,7)
20 
21 unittest.main()
 预期的结果分别为20,6,11,7,测试结果如果是一个小数点即代表达到预期结果正确,如果测试结果为F则代表未达到预期结果错误,单元测试结果如下:
软件工程第二次作业_第2张图片

 

 

7. 工作记录

 

工作记录表
项目 记录结果
日期 2020.04.05
开始时间 13:30
结束时间 14:57
算法行数 14
测试行数 20
错误数量 1
错误1 算法函数调用错误
错误1修改时间 30min

 

 

你可能感兴趣的:(软件工程第二次作业)