/*自定义导航栏*/

【软件工程】软件测试之黑盒测试

黑盒测试是测试中重要的一个环节,但是过多书籍都是长篇大论,看起来很糟糕。今天对于黑盒,我决定借助一个例子详细解析下黑盒的奥秘。一起来吧!!!

首先,我们要明白几个概念:

1》有效等价类:对程序规格说明来说合理,有意义的输入数据。可用此类检查规格说明中定义的功能和性能。

2》无效等价类:与有效等价类相反的定义。

 


 

一  等效类

下面以实例分析:

1个函数包含3个变量,month,day,year。函数的输出为输入日期的后一天日期。例如:输入为2013-3-13 ,则函数输出应为2013-3-14.找出该函数的有效等价类。

 

问题分析:

1,要输入数据(月份,天数,年数)

2,预测排序所有可能的输入数据(合法数据,字符,越界日期,小数日期等)

3,判断可能输出的数据(正常输出,月份变化,年份变化,天数变化,错误提示等)

4,表格列出所有可能性进行汇总,归档。


定义数据:

输入:input           

月份:month               1--12月:  m1--m12

天数:day                    1--31月:  d1--d31

年份:year                 是否闰年: leap/!leap 

 

无效等价:invalid         

无效月份month:  !m#

无效天数day : ! d#

无效年份year : !y#

 

输出:output

错误:o1

天数加1 :o2

月数加1 :o3

天数为1 :o4 

年数加1 :o5

月数为1 :o6 


 

所有可能操作:

【输入】input:
month(1-12):m1{1,3,5,7,8,10},m2{4,6,9,11},m3{2},m4{12}
day(1-31):d1{1-27},d2{28},d3{29},d4{30},d5{31}
year():y1{leap year},y2{!leap year}


【无效等价】invalid:
month:!m1{<1},!m2{>12},!m3{has char},!m4{specal char}
day:!d1{<1},!d2{>31},!d3{has char},!d4{specal char}
year:!y1{has char},!y2{specal char}

【输出】output:
o1:errior
o2:day=day+1
o3:month=month+1
o4:day=1
o5:year=year+1
o6:month=1


列表显示:

对应所有可能操作排列组合结果

数据统计和归纳分析


二等边值测试

问题分析:

1,要输入边界测试值:最大值,最小值,中间值,偏大值,偏小值(若需要验证健壮性,加入最大偏大值和最小偏大值)

2,需要测试对象n(month,day,year三个),测试条目5n条

3,列表设计测试计划表


 

定义数据:

最大值:max           

最小值:min              

中间值:mid                 

偏大值:max-1

偏小值:min+1


 

如图:

  

 


列表:

              

总结:

通过以上分析,对黑盒操作并非那么深奥。是有规律和将可能发生错误操作归纳。当然任何程序错误必不可免,尽量避免严重后果的操作,在测试阶段尤为重要。等价性测试遍历所有可能性,比较严谨。但是条目巨多,工作量大。现实测试建议使用等边界测试,这样数据量比较集中,测试工作量相对小。黑盒测试对于大型代码比较方便。这个一个螺旋式的测试形式。

posted @ 2013-03-14 13:49  伏草惟存  阅读(2420)  评论(0编辑  收藏  举报