软件工程第二次作业

作业信息

沈阳航空航天大学计算机学院2024软件工程作业

课程目标

熟悉一个“高质量”软件的开发过程

作业目标

单元测试练习

请在作业最后部分填写如下表格记录本次工作详细信息

项目

记录结果

日期

2024/4/7

开始时间

14:00

结束时间

15;30

编码行数

81

错误数量

0

                                 

1.请从语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖五个覆盖标准中(条件组合覆盖难度较大,鼓励尝试,但请谨慎选择),任选一个标准设计测试用例

判定覆盖:设计用例,使得程序中的每一个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。

本程序采用分治算法有三种情况会出现:

1.a[1:n/2]a[1:n]的最大子段和相同.即最大字段在前半部分;

2.a[n/2+1, n]a[1:n]的最大子段和相同,即最大子段在后半部分;

3.a[1:n]的最大子段和为越过中点n/2,这种情况下a[n/2]a[n/2+1]在最优子序列中,在[i,n/2]找到最大值S1,[n/2+1,j]中找到最大值S1,所求最优值为S1+S2

根据此特性设计测试用例必须满足覆盖所有的判定条件,测试用例如下:

1.-3-2-10】子段和的最大值为序列和为0

2.12345】子段和的最大值为序列和

2.-2-1012】子段和的最大值出现在右子列中;

3.3568-6-5-10】子段和的最大值出现在左子列中;

4.-211-413-5-2】子段和的最大值越过中点取在了中间;

2.请利用自动测试工具对程序进行测试

测试用例1

TEST(MaxSubarrayTest, BasicTest0) {

    int input1[] = { -3,-2,-1,0};

    EXPECT_EQ(MAXsub(input1, 0,3 ), 0);

}

测试用例2

TEST(MaxSubarrayTest, BasicTest1) {

    int input1[] = { 1, 2, 3, 4, 5 };

    EXPECT_EQ(MAXsub(input1, 0, 4), 15);

}

测试用例3

TEST(MaxSubarrayTest, BasicTest2) {

    int input1[] = { -2,-1,0,1,2 };

    EXPECT_EQ(MAXsub(input1, 0, 4),3);

}

测试用例4

TEST(MaxSubarrayTest, BasicTest3) {

    int input1[] = { 3,5,6,8,-6,-5,10 };

    EXPECT_EQ(MAXsub(input1, 0, 6),22 );

}

测试用例5

TEST(MaxSubarrayTest, BasicTest4) {

    int input1[] = { -2,11,-4,13,-5,-2};

    EXPECT_EQ(MAXsub(input1, 0, 5), 20);

}

3.请将程序运行结果和自动测试分析结果截图粘贴到文档中

Github地址:https://github.com/MingyuanDeng/homework2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mingyuan Deng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值