我不是理论派,那就从实践中成长吧
微博:http://www.weibo.com/willsfanw
摸着石头过河——从黑盒到灰盒003篇(对最小单元函数做灰盒测试)
上一篇 /
下一篇 2011-09-21 01:07:44
由于灰盒
测试不需要像
白盒测试一样写代码,故针对最小单元函数的灰盒测试,可以理解成“使用黑盒的手段来驱动,同时用白盒测试的方法来测试,再以白盒或者黑盒的方式来检查结果”;
这里有一个前提,就是需要保证本次提测的这个功能模块逻辑上没有大问题,这个流程可以走通,且待测试的函数可以被执行到,不然的话,本次灰盒测试根本就没有办法做。(这里也可以借助类似windbg等调试工具来辅助测试,后面的
文章再讲讲)
可以先选择一下将采用的白盒的测试方法(eg:逻辑覆盖,语句覆盖,条件覆盖,组合覆盖==),在开始做灰盒测试之前,拜读过一篇白盒测试的文章,里面提到过一个简单路径覆盖的方法,我觉得挺简单的,就直接借用了。
eg:拿一个简单的python demo函数来说明下分析方法,demo如下:
#----------------------------------------------------------------------
def Demo(testStr):
"""
This is a Demo
"""
testResult = None
if (testStr == ""):
return testResult
elif("a" in testStr):
testResult = 1
else:
testResult = 0
return testResult
=========================================================================
首先,对这个函数做一个简单的逻辑流程图(不见得一定要画出来),图如下:
有这么一个用于计算当前逻辑,至少需要多少个案例才可以覆盖的公式:
圈复杂度V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量
故:圈复杂度=8-7+2=3
也就是说,当前至少需要3个案例才可以完成简单路径覆盖
案例:
case no.1 : begin 1-> if 2-> return 7
case no.2 : begin 2-> if 2-> elif 3->xxxxx 4 -> else 5 -> xxxxx 6 -> return 7
case no.3: begin 3-> if 2-> elif 3->else 5 -> xxxxx 6 -> return 7
但是单单只对 最小单元函数做简单路径覆盖,是远远不够的,今天要睡觉了,下篇继续分享
收藏
举报
TAG: