1、黑盒测试(4)n等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等.n如果考虑输入条件之间的相互组合,组合的情况可能会相当多.因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例.这就需要利用因果图。问题引入问题引入因果图因果图本节内容本节内容w因果图分析法w因果图介绍w利用因果图导出测试用例w举例1.因果图分析法因果图分析法n因果图(Cause-Effect Graphics)分析法因果图分析法最终生成的是判定表,适合于检查程序输入条件的各种组合情况。n因果图分析依据需求规格说明中的因果关系。n作用能够按一定步骤
2、,高效率地选择测试用例;指出程序规约描述中存在着的问题;2.因果图的基本符号因果图的基本符号 恒等恒等c1e1e1=1c1=1e1=0c1=0非非c1e1e1=0c1=1e1=1c1=02.因果图的基本符号因果图的基本符号 或或c1e1c2c3e1=1c1=1 或或 c2=1 或或 c3=1否则否则e1=0与与e1c2e1=1c1=1且且c2=1否则否则e1=0c1输入条件的约束输入条件的约束Ec1c2E(异异)E(异)(异):表示表示c1,c2中至多有一个可能中至多有一个可能 为为1,即,即c1和和c2不能同时为不能同时为1。Ic1c2c2I(或或)I(或)(或):表示表示c1,c2,c3中
3、至少有一个中至少有一个 是是1,即,即c1,c2,c3不能同时为不能同时为0。输入条件的约束输入条件的约束Oc1c2O(唯一唯一)O(唯一):(唯一):表示表示c1,c2中必须有一个中必须有一个 且仅有一个为且仅有一个为1。Rc1c2R(要求要求)R(要求):(要求):表示c1是1时,c2必须 是1,即不可能c1是1时c2是0。输出条件的约束输出条件的约束Me1e2M(强制制)M(强制):(强制):表示如果结果表示如果结果e1是是1时,时,则结果则结果e2强制为强制为0。3.利用因果图设计测试用例利用因果图设计测试用例n1.分析程序规格说明的描述中,哪些是原因,哪些是结果?原因常常是输入条件输
4、入条件或是输入条件的等价类;结果是程序的输出输出;n2.分析程序规约的描述中语义的内容,并将其表示成连接各个原因与各个结果的“因果图因果图”;n3.在因果图上使用若干个特殊的符号标明约束条件约束条件;n4.把因果图转换成判定表判定表;n5.把判定表中每一列表示的情况写成测试用例测试用例;3.利用因果图设计测试用例利用因果图设计测试用例案例案例1:软件规格说明书软件规格说明书n第一列第一列字符必须是A或或B,第二列第二列字符必须是一一个数字个数字,在此情况下进行文件的修改;n但如果第一列字符不正确,则给出信息L;n如果第二列字符不是数字,则给出信息M;原因和结果原因和结果n原因 1-第一列字符是
5、A;2-第一列字符是B;3-第二列字符是一数字n结果 21-修改文件;22-给出信息L;23-给出信息M;因果图因果图n注:11是中间节点13211232122具有约束的因果图具有约束的因果图n考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束13211232122E根据因果图所建立的判定表根据因果图所建立的判定表 n最左边两列,条件1和2同时为1是不可能的,排除掉,根据表可设计出6个测试用例。Test1:输入数据A3 预期输出:修改文件;Test2:输入数据AM 预期输出:给出信息M;Test3:输入数据B5 预期输出:修改文件;Test4:输入数据BN 预期输出:给出信息M;Te
6、st5:输入数据C2 预期输出:给出信息L;Test6:输入数据DY 预期输出:给出信息L和M;设计测试用例设计测试用例案例案例2:电力收费电力收费 n问题描述某电力公司有A、B、C、D四类收费标准,并规定:居民用电:100度/月,按A类收费 100度/月,按B类收费动力用电:10000度/月,非高峰,B类收费 10000度/月,非高峰,C类收费 10000度/月,高峰,C类收费 10000度/月,高峰,D类收费 请用因果图法设计测试用例。n(1)(1)列出原因和结果列出原因和结果原因:n1居民用电 n2动力用电 n3100度/月 3100度/月 n4非高峰 4高峰n510000度/月 510
7、000度/月结果:nA按A类收费nB按B类收费nC按C类收费nD按D类收费n(2)(2)绘制因果图绘制因果图12345ABI1I2I3I4DC组合条件组合条件123456条件条件(原因)(原因)111000020011113104101050011动作动作(结果)(结果)A100000B011000C000110D000001n(3)(3)绘制判定表绘制判定表注:表中“”表示本条规则与此条件无关,或不适用。测试用例测试用例编号编号输入数据输入数据预期结果预期结果覆盖组合覆盖组合条件条件1居民用电,99度/月A类收费12居民用电,101度/月B类收费23动力电,非高峰,9000度/月B类收费34
8、动力电,非高峰,1.01万度/月C类收费45动力电,高峰,0.98万度/月C类收费56动力电,高峰,1.1万度/月D类收费6n(4)(4)设计测试用例设计测试用例n一、分析中国象棋中走马的实际情况一、分析中国象棋中走马的实际情况 1、如果落点在棋盘外,则不移动棋子;2、如果落点与起点不构成日字型,则不移动棋子;3、如果落点处有自己方棋子,则不移动棋子;4、如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;课堂练习课堂练习 5、如果不属于1-4 条,且落点处无棋子,则移动棋子;6、如果不属于1-4 条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子;7 如果不属于1-4条,且落点
9、处为对方老将,则移动棋子,并提示战胜对方,游戏结束。n原因:原因:1、落点在棋盘上;2、落点与起点构成日字;3、落点处不为自己方棋子;4、落点方向的邻近交叉点有棋子;5、落点处无棋子;6、落点处为对方棋子(非老将);7、落点处为对方老将。二、根据分析明确原因和结果二、根据分析明确原因和结果二、根据分析明确原因和结果二、根据分析明确原因和结果n结果:结果:21、不移动棋子;22、移动棋子;23、移动棋子,并除去对方棋子;24、移动棋子,并提示战胜对方,结束游戏。n添加中间节点中间节点11,目的是作为导出结果的进一步原因,简化因果图导出的判定表三、建立判定表三、建立判定表三、建立判定表三、建立判定
10、表n表中部分列被合并表示不可能发生的现象;n通过中间节点将用例的判定表简化为两个小表。减少工作量n自动售货机自动售货机 处理单价为处理单价为5 5角钱的饮料自动售货机:角钱的饮料自动售货机:投入5角或1元的硬币,压下橙汁或啤酒的按钮,送出饮料。如果投入1元硬币并压下按钮后,若售货机没有零钱找,则零钱找完红灯亮,饮料不送出并将1元硬币退出来。若有零钱找,则零钱找完红灯灭,送出饮料同时还退还5角硬币。课堂练习课堂练习n原因:1.售货机有零钱找2.投入1元3.投入5角4.压下橙汁按钮5.压下啤酒按钮 (1)分析原因、结果分析原因、结果p结果:21.售货机零钱找完灯亮22.退还1元23.退还5角24.送出橙汁饮料25.送出啤酒 (2)画出因果图画出因果图(3)转换成判定表转换成判定表