白盒测试-路径分析

上一篇 / 下一篇  2011-08-24 18:29:29

查看( 18 )/评论( 1 )/评分(0/0)

脚本的包含两个模块:发送周环比提醒和历史最佳提醒,这两个模块是并行的关系,且在运用基本路径覆盖法设计用例时,建议圈复杂度最好不要超过18个,所以分模块来设计测试用例

基本路径测试概念:在程序控制流程的基础上,通过分析控制结构的圈复杂性,导出基本可执行路径集合,从而设计测试用例的方法。

包括以下4个步骤

第一步:画出控制流图

1)流程图:在控制流图前,先需要根据产品需求,走读并分析代码的逻辑结构,分别画出两个模块流程图:

周环比流程图:

2)控制流图:将流程图映射到一个相应的流图(假设流程图的菱形决定框中不包含复合条件)

结点:在流图中,每一个圆,称为流图的结点,代表一个或多个语句。一个处理方框序列和一个菱形决测框可被映射为一个结点;

边:流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。一条边必须终止于一个结点,即使该结点并不代表任何语句(例如:if-else-then结构)

区域:由边和结点限定的范围称为区域。计算区域时应包括图外部未闭合的范围

周环比控制流图:

第二步:计算圈复杂度

圈复杂度(Cyclomatic complexity(环形复杂度)

*是一种为程序逻辑复杂性提供定量测度的软件度量;

*当该度量用于基本路径测试方法,计算所得的值给出了程序基本集的独立路径数量,确保所有语句至少执行一次而必须进行测试数量的上界。

*3种方法计算圈复杂度:

1V(G) =流图中区域个数(由边和结点限定的范围称为区域。

2V(G) =V(G)=E-N+2E是流图中边的数量,N是流图中结点的数量

3V(G)=P+1P是流图G中判定结点的数量

周环比控制流图圈复杂度计算:1)区域个数是142V(G)=33-21+2=143V(G)=13+1=14

历史最佳控制流图复杂度计算:1)区域个数是112V(G)=24-15+2=113V(G)=10+1=11

第三步:导出用例

根据圈复杂度的算法,可以得出对应数量的独立的路径,一条独立路径是指和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。V(G)值正好等于该程序的独立路径的条数。

周环比用例:

路径11-21卖家表不存在

结果:提示卖家表不存在

路径21-2-21卖家表为空,无数据

结果:不做周环比处理

路径31-2-3-2-21前提:单条数据

卖家uin、历史最佳flag不存在

结果:该条数据不做历史最佳处理

路径41-2-3-4-5-6-7-9-14-19-20-2-21前提:单条数据

卖家表、卖家uin、周环比flag存在,访客数周环比flag满足要求,访客数周环比小于等于0,支付金额数、购买转化率周环比flag都不满足要求。

结果:只发送访客数周环比降低提醒

路径51-2-3-4-5-6-8-9-14-19-20-2-21前提:单条数据

卖家表、卖家uin、周环比flag存在,访客数周环比flag满足要求,访客数周环比大于0,支付金额数、购买转化率周环比flag都不满足要求。

结果:只发送访客数周环比提高提醒

路径61-2-3-4-9-10-11-12-14-19-20-2-21前提:单条数据

卖家表、卖家uin、周环比flag存在,访客数周环比flag和购买转化率周环比flag不满足要求,支付金额数周环比flag满足要求,支付金额数周环比小于0

结果:只发送支付金额数周环比降低提醒

路径71-2-3-4-9-10-11-13-14-19-20-2-21前提:单条数据

卖家表、卖家uin、周环比flag存在,访客数周环比flag和购买转化率周环比flag不满足要求,支付金额数周环比flag满足要求,支付金额数周环比大于0

结果:只发送支付金额数周环比提高提醒

路径81-2-3-4-9-14-15-16-18-19-20-2-21前提:单条数据

卖家表、卖家uin、周环比flag存在,访客数周环比flag和支付金额数周环比flag都不满足要求,购买转化率周环比flag满足要求,购买转化率周环比大于0

结果:只发送购买转化率周环比提高提醒

路径91-2-3-4-9-14-15-16-17-19-20-2-21前提:单条数据

卖家表、卖家uin、周环比flag存在,访客数周环比flag和支付金额数周环比flag都不满足要求,购买转化率周环比flag满足要求,购买转化率周环比小于等于0

结果:只发送购买转化率周环比降低提醒

路径101-2-3-4-5-9-10-11-12-14-15-16-17-19-20-2-21前提:单条数据

卖家表、卖家uin、周环比flag存在,访客数周环比flag、支付金额数周环比flag、购买转化率周环比flag都满足要求;访客数周环比不存在,支付金额周环比、购买转化率周环存在,且小于0

结果:访客数周环比不存在时,只发送支付金额周环比和购买转化率周环比降低提醒。

路径111-2-3-4-5-6-7-9-10-14-15-16-17-19-20-2-21前提:单条数据

卖家表、卖家uin、周环比flag存在,访客数周环比flag、支付金额数周环比flag、购买转化率周环比flag都满足要求;访客数周环比和购买转化率周环比都存在,且小于0支付金额周环比不存在。

结果:支付金额周环比不存在时,只发送访客数周环比和购买转化率周环比降低提醒。

路径121-2-3-4-5-6-7-9-10-11-12-14-15-19-20-2-21前提:单条数据

卖家表、卖家uin、周环比flag存在,访客数周环比flag、支付金额数周环比flag、购买转化率周环比flag都满足要求;访客数周环比和支付金额周环比都存在,且小于0购买转化率周环比不存在。

结果:购买转化率周环比不存在时,只发送支付转化率周环比和购买转化率周环比

路径131-2-3-4-9-14-19-2-21前提:单条数据

卖家表存在、周环比flag存在,卖家uin不存在,访客数周环比flag、支付金额数周环比flag、购买转化率周环比flag都不满足要求;

第二条数据:卖家表、卖家uin、周环比flag存在;访客数周环比flag、支付金额数周环比flag、购买转化率周环比flag都满足要求;访客数周环比、支付金额周环比、购买转化率周环比都小于等于0

结果:不做周环比处理

第二条数据发送访客数、支付金额数和购买转化率周环比都降低提醒

路径141-2-3-4-5-6-8-9-14-19-20-2-3-4-5-6-7-9-14-19-20-2-21前提:多条数据(两条)

卖家表、卖家uin、周环比flag存在;访客数周环比flag满足要求,支付金额数周环比flag和购买转化率周环比flag都不满足要求;第一条数据访客数周环比大于0,第二天数据访客数周环比小于0

结果:第一条数据发送访客数周环比提高提醒;第二条数据发送访客数周环比降低提醒


TAG:

 

评分:0

我来说两句

Open Toolbar