单元测试
1.选择题目
题目(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。
-- 引用自《百度百科》
程序已提交至Coding,完整程序请点击这里
2.单元测试
(1)流程图
(2)单元测试
测试方法
语句覆盖:语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。
判定覆盖:判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即:程序中的每个分支至少执行一次。每个判断的取真、取假至少执行一次。
条件覆盖:条件覆盖要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。
判定/条件覆盖:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。
条件组合覆盖:要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。
我选择的是条件覆盖,测试数据为(-1,-2,-3,-4,-5)(1,2,3,4,5) (-1,2,-2,4)
测试结果
3.总结
我的上一份作业是用eclipse做的单元测试,这次想尝试用一下VS2017,下面是我测试的过程:
(1)右键解决方案->添加->新建项目,点击本机单元测试项目
(2)在unittest1.cpp中编写测试函数
将要测试的函数复制到这里
编写测试函数
(3)测试
点击测试->运行->所有测试
之后查看结果就可以了