(不再有输入机会) 予保留,用例结束 数据设计 一旦确定了所有的测试用例,则应对这些用例进行复审和验证以确保其准确且适度,并取消多余或等效的测试用例。 测试用例一经认可,就可以确定实际数据值(在测试用例实施矩阵中)并且设定测试数据,如表3-10所示。 表3-10 测试用例表 TC(测试用例)ID号 场景/条件 PIN 账号 输入(或选择)的金额 (元) 账面 ATM内金额的金额预期结果 (元) (元) CW1 场景1:成功提款 场景2:ATM内没有现金 场景3:ATM内现金不足 场景4:PIN有误(还有不止一次输入机会) 场景4:PIN有误(还有一次输入4987 809-498 50.00 500.00 2 000 成功提款。账户余额被更新为450.00 提款选项不可用,用例结束 警告消息,返回基本流步骤6,输入金额 警告消息,返回基本流步骤4,输入PIN 警告消息,返回基本流步骤CW2 4987 809-498 100.00 500.00 0.00 CW3 4987 809-498 100.00 500.00 70.00 CW4 4978 809-498 n/a 500.00 2 000 CW5 4978 809-498 n/a 500.00 2 000 机会) 场景4:PIN有误(不再有输入机会) 4,输入PIN 警告消息,卡予保留,用例结束 CW6 4978 809-498 n/a 500.00 2 000
白盒测试用例设计-覆盖率方法
基础策略
白盒测试用例的设计,程序测试领域的书籍一般都有讲述,普通方法是画出程序的逻辑结构图如程序流程图或控制流图,根据逻辑结构图设计测试用例,这些是纯粹的白盒测试,不是老纳想推荐的方式。老纳所推荐的方法是:先完成黑盒测试,然后统计白盒覆盖率,针对未覆盖的逻辑单位设计测试用例覆盖它,例如,先检查是否有语句未覆盖,有的话设计测试用例覆盖它,然后用同样方法完成条件覆盖、分支覆盖和路径覆盖,这样的话,既检验了黑盒测试的完整性,又避免了重复的工作,用较少的时间成本达到非常高的测试完整性。不过,这些工作可不是手工能完成的,必须借助于工具,后面会介绍可以完成这些工作的测试工具。
基础实例与流程:
PROCEDURE SAMPAL
(A,B:REAL;VAR X:REAL); BEGIN
IF (A>1) AND (B=0) THEN X:=X/A
IF (A=2) OR (X>1) THEN X:=X+1 END;
语句覆盖
使程序中每个语句至少执行一次
只需设计一个测试用例: 输入数据:A=2,B=0,X=4 即达到了语句覆盖;
语句覆盖是最弱的逻辑覆盖
用测试用例覆盖语例 编句 (A/B/X) 号 预期结果 实际结果 TC1 2,0,4 1,2,3,4 X=3 判定覆盖(分支覆盖)
使每个判定的真假分支都至少执行一次
例:可设计两组测试用例:
? A=3,B=0 ,X=3 可覆盖c、d分支
A=2,B=1 ,X=1 可覆盖b、e分支
两组测试用例可覆盖所有判定的真假分支 判定覆盖仍是弱的逻辑覆盖
用例编号 TC1 TC2 测试用例 (A/B/X) 3,0,3 2,1,1 覆盖分支 预期结果 实c,d b,e X=2 X=1 条件覆盖
使每个判定的每个条件的可能取值至少执行一次 第一判定表达式:
设条件A>1 取真记为 T1 假T1
条件B=0 取真记为 T2 假T2
第二判定表达式:
设条件A=2 取真记为 T3 假T3
条件X>1 取真记为 T4 假T4