视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
实验二_白盒测试.doc
2025-09-26 10:41:45 责编:小OO
文档
实验二:白盒测试

一、实验目的

    保证一个模块中的所有路径至少被执行一次;

    对所有的逻辑值均需要测试真、假两个分支;

    在上下边界及可操作范围内运行所有循环;

    检查内部数据结构以确保其有效性。

二、实验内容

要求:

被测测试程序功能:PriorDate函数;

程序定义:

为了获得前一个日期, PriorDate函数执行如下操作:

(默认年数大于等于0)

如果输入日期day变量值大于1,则把day变量的值减1;

如果输入日期是2~12月份中某月的第一天,则把day变量的值置为前一个月的最后一天,month变量的值减1;

如果输入日期是1月的第一天,则day变量的值置为31,month变量的值置为12,year变量的值减1。

关于最后一天的判断:

􀂆如果是有31天的月份(1,3,5,7,8,10,12),day变量值为31;

􀂆如果是有30天的月份(4,6,9,11),day变量值为30;

􀂆如果是有29天的月份(闰年的2月),day变量值为29;

􀂆如果是有28天的月份(非闰年的2月),day变量值为28。 

测试环境:Windows 7、Eclipse;

三、实验要求

根据代码调通程序并进行白盒测试,即用语句覆盖、分支覆盖、条件覆盖、分支/条件覆盖、条件组合覆盖及基本路径测试方法,写出测试用例,执行测试,给出测试报告,实验报告。

四、实验测试用例与测试结果

程序的流程图如下图:

1.语句覆盖

   语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。

测试数据执行路径结果
month=13,day=32,year=-10

 OACEGZ

日的范围为:1...31

月的范围为: 1...12

年应该大于0

month=12,day=12,year=2012

OBDFHLY前一天为:12  11  2012

month=12,day=1,year=2012

OBDFHMY前一天为:11  30  2012

month=11,day=12,year=2012

 OBDFINY前一天为:11  11  2012

month=11,day=1,year=2012

 OBDFIPY前一天为:10  31  2012

month=3,day=12,year=2000

 OBDFJQY前一天为:3  11  2000

month=3,day=1,year=2012

 OBDFJRY前一天为:2  28  2012

month=1,day=12,year=2012

 OBDFKSY前一天为:1  11  2012

month=1,day=1,year=2012

 OBDFKTWY前一天为:12  31  2009

month=1,day=1,year=0

OBDFKTXY上一年也应大于0

2.分支覆盖

  执行足够的测试用例,使得程序中的每一个分支至少都通过一次

  

测试数据执行路径结果
month=13,day=32,year=-10

 OACEGZ

日的范围为:1...31

月的范围为: 1...12

年应该大于0

month=12,day=12,year=2012

OBDFHLY前一天为:12  11  2012

month=12,day=1,year=2012

OBDFHMY前一天为:11  30  2012

month=11,day=12,year=2012

 OBDFINY前一天为:11  11  2012

month=11,day=1,year=2012

 OBDFIPY前一天为:10  31  2012

month=3,day=12,year=2000

 OBDFJQY前一天为:3  11  2000

month=3,day=1,year=2000

 OBDFJRY前一天为:2  29  2000

month=3,day=1,year=2012

 OBDFJRY前一天为:2  28  2012

month=1,day=12,year=2012

 OBDFKSY前一天为:1  11  2012

month=1,day=1,year=2012

OBDFKTWY前一天为:12  31  2009

month=1,day=1,year=0

OBDFKTXY上一年也应大于0

3.条件覆盖

测试数据执行路径结果
month=13,day=32,year=-10

 OACEGZ

日的范围为:1...31

月的范围为: 1...12

年应该大于0

month=0,day=0,year=1800

OACEGZ日的范围为:1...31

月的范围为: 1...12

年应该大于0

month=12,day=12,year=2012

OBDFHLY前一天为:12  11  2012

month=12,day=1,year=2012

OBDFHMY前一天为:11  30  2012

month=11,day=12,year=2012

 OBDFINY前一天为:11  11  2012

month=11,day=1,year=2012

 OBDFIPY前一天为:10  31  2012

month=3,day=12,year=2000

 OBDFJQY前一天为:3  11  2000

month=3,day=1,year=2000

 OBDFJRY前一天为:2  29  2000

month=3,day=1,year=2012

 OBDFJRY前一天为:2  28  2012

month=1,day=12,year=2012

 OBDFKSY前一天为:1  11  2012

month=1,day=1,year=2012

 OBDFKTWY前一天为:12  31  2009

month=1,day=1,year=0

OBDFKTXY上一年也应大于0

执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。 

4.分支/条件覆盖

  执行足够的测试用例,使得分支中每个条件取到各种可能的值,并使每个分支取到各种可能的结果。

测试数据执行路径结果
month=13,day=32,year=-10

 OACEGZ

日的范围为:1...31

月的范围为: 1...12

年应该大于0

month=0,day=0,year=1800

OACEGZ日的范围为:1...31

月的范围为: 1...12

年应该大于0

month=12,day=12,year=2012

OBDFHLY前一天为:12  11  2012

month=12,day=1,year=2012

OBDFHMY前一天为:11  30  2012

month=11,day=12,year=2012

 OBDFINY前一天为:11  11  2012

month=11,day=1,year=2012

 OBDFIPY前一天为:10  31  2012

month=3,day=12,year=2000

 OBDFJQY前一天为:3  11  2000

month=3,day=1,year=2004

OBDFJRUY前一天为:2  29  2004

month=3,day=1,year=2000

OBDFJRUY前一天为:2  29  2000

month=3,day=1,year=2012

 OBDFJRY前一天为:2  28  2012

month=1,day=12,year=2012

 OBDFKSY前一天为:1  11  2012

month=1,day=1,year=2012

OBDFKTWY前一天为:12  31  2009

month=1,day=1,year=1812

OBDFKTXY上一年也应大于0

5.条件组合覆盖

执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。

测试数据执行路径结果
month=13,day=32,year=-10

 OACEGZ

日的范围为:1...31

月的范围为: 1...12

年应该大于0

month=0,day=0,year=1800

 OACEGZ

日的范围为:1...31

月的范围为: 1...12

年应该大于0

month=0,day=1,year=1800

OBCEGZ月的范围为: 1...12

年应该大于0

month=0,day=0,year=2000

OACFGZ日的范围为:1...31

月的范围为: 1...12

month=0,day=1,year=2000

OBCFGZ月的范围为: 1...12

month=1,day=0,year=1800

OADFKTXZ日的范围为:1...31

年应该大于0

month=1,day=1,year=1800

OBDEKTXZ年应该大于0

month=1,day=0,year=2000

OADFKTXZ日的范围为:1...31

month=1,day=1,year=2000

OBDFKTXY前一天为:12  31  1999

month=12,day=12,year=2012

OBDFHLY前一天为:12  11  2012

month=12,day=1,year=2012

OBDFHMY前一天为:11  30  2012

month=11,day=12,year=2012

 OBDFINY前一天为:11  11  2012

month=11,day=1,year=2012

 OBDFIPY前一天为:10  31  2012

month=3,day=12,year=2000

 OBDFJQY前一天为:3  11  2000

month=3,day=1,year=2004

OBDFJRUY前一天为:2  29  2004

month=3,day=1,year=2000

OBDFJRUY前一天为:2  29  2000

month=3,day=1,year=2008

OBDFJRUY前一天为:2  29  2008

month=3,day=1,year=2001

OBDFJRUY前一天为:2  28  2001

month=3,day=1,year=2012

 OBDFJRY前一天为:2  28  2012

month=1,day=12,year=2012

 OBDFKSY前一天为:1  11  2012

month=1,day=1,year=2012

OBDFKTWY前一天为:12  31  2009

month=1,day=1,year=0

OBDFKTXY上一年也应大于0

6.基本路径测试方法

  设计足够的测试用例,覆盖程序中所有可能的路径,其中控制流图如下图:

 图形矩阵如下: 

12345678910111213141516171819202122232425262728293031
11
211
31
41
511
61
71
811
91
101
1111111
121
1311
1411
1511
16111
171
181
191
201
211
2211
231
2411
251
261
271
281
291
301
31
测试数据执行路径

(图形矩阵对应路径)

结果
month=13,day=32,year=-10

 OACEGZ

日的范围为:1...31

月的范围为: 1...12

年应该大于0

month=0,day=0,year=1800

 OACEGZ

日的范围为:1...31

月的范围为: 1...12

年应该大于0

month=0,day=1,year=1800

OBCEGZ月的范围为: 1...12

年应该大于0

month=0,day=0,year=2000

OACFGZ日的范围为:1...31

月的范围为: 1...12

month=0,day=1,year=2000

OBCFGZ月的范围为: 1...12

month=1,day=0,year=1800

OADFKTXZ日的范围为:1...31

年应该大于0

month=1,day=1,year=1800

OBDEKTXZ年应该大于0

month=1,day=0,year=2000

OADFKTXZ日的范围为:1...31

month=1,day=1,year=2000

OBDFKTXY前一天为:12  31  1999

month=12,day=12,year=2012

OBDFHLY前一天为:12  11  2012

month=12,day=1,year=2012

OBDFHMY前一天为:11  30  2012

month=11,day=12,year=2012

 OBDFINY前一天为:11  11  2012

month=11,day=1,year=2012

 OBDFIPY前一天为:10  31  2012

month=3,day=12,year=2000

 OBDFJQY前一天为:3  11  2000

month=3,day=1,year=2004

OBDFJRUY前一天为:2  29  2004

month=3,day=1,year=2000

OBDFJRUY前一天为:2  29  2000

month=3,day=1,year=2008

OBDFJRUY前一天为:2  29  2008

month=3,day=1,year=2001

OBDFJRUY前一天为:2  28  2001

month=3,day=1,year=2012

 OBDFJRY前一天为:2  28  2012

month=1,day=12,year=2012

 OBDFKSY前一天为:1  11  2012

month=1,day=1,year=2012

OBDFKTWY前一天为:12  31  2009

下载本文
显示全文
专题