码迷,mamicode.com
首页 > 其他好文 > 详细

软件工程第三次作业

时间:2018-03-31 22:21:09      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:inf   引用   com   组合   老师   分享   i+1   流程图   blog   

一、题目选择

最大连续子数组和(最大子段和)

问题: 给定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。引用自《百度百科》

二、代码

代码是在组长的帮助下完成的(自己实在是对JAVA一无所知)

package com.edu.sau;

public class max 
{
    public int maxArray(int count,int[] array)
    {
        int[] b = new int[count];
        int max;
        b[0]=array[0];
        max=b[0];
        for(int i=1;i<count; i++)
        {
            if(b[i-1]>0)
                b[i]=b[i-1]+array[i];
            else
                b[i]=array[i];
            if(b[i]>max)
                max=b[i];
        }
        if(max<0)
            max=0;
        return max;
    }
}

详细程序代码

三、覆盖标准的选择及设计测试用例

1.五种逻辑覆盖测试方法

1)语句覆盖:设计足够多的测试用例,使得被测试程序中的每条可执行语句至少被执行一次。

2)判定覆盖:设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支至少被执行一次。

3)条件覆盖:设计足够多的测试用例,使得被测试程序中的每个判断语句中的每个逻辑条件的可能值至少被满足一次。

4)判定-条件覆盖:设计足够多的测试用例,使得被测试程序中的每个判断本身的判定结果(真假)至少满足一次,同时,每个逻辑条件的可能值也至少被满足一次。

5)条件组合覆盖:设计足够多的测试用例,使得被测试程序中的每个判断的所有可能条件取值的组合至少被满足一次。

2.程序流程图

在此我仅做了主要两次条件分支的流程图
技术分享图片

3.设计测试用例

我选择的是条件组合覆盖,共可能出现四种可能

1) b[i-1]>0,b[i]>max {1,3,5,7,9,11}
2) b[i-1]<0,b[i]>max {-1,-3,-5,-7,-9,-11}
3) b[i-1]>0,b[i]<max {1,-1,1,-1,1,-1}
4) b[i-1]<0,b[i]<max {-1,2,-3,4,-5,6}

四、利用自动单元测试工具进行测试

技术分享图片

技术分享图片

五、程序运行结果

其中第一个为老师所给测试用例

技术分享图片

软件工程第三次作业

标签:inf   引用   com   组合   老师   分享   i+1   流程图   blog   

原文地址:https://www.cnblogs.com/lyc1108/p/8684318.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!