习题1
为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。
语句覆盖
原则覆盖程序中所有可执行的语句
设计的测试用例如下
编号 | 输入项 | 执行语句 |
---|---|---|
① | {x=17,y=6} | 执行语句3 |
② | {x=1,y=-1} | 执行语句2 |
③ | {x=-1.y=-1} | 执行语句1 |
判定覆盖
覆盖所有的路径
设计的测试用例如下
编号 | 输入项 | 覆盖的分支 |
---|---|---|
① | {x=9,y=11} | b->f |
② | {x=15,y=9} | y->e |
③ | {x=7,y=-1} | a->d |
④ | {x=-1,y=-1} | a->c |
条件覆盖
判定的每个条件的可能值至少满足一次
对取值进行标记
判定 | 条件 | 取值标记 (true) | 取值标记(false) |
---|---|---|---|
x>8 and y>5 | x > 8 | T1 | -T1 |
y>5 | T2 | -T2 | |
x>16 or y > 10 | x > 16 | T3 | -T3 |
y > 10 | T4 | -T4 | |
x > 0 or y > 0 | x > 0 | T5 | -T5 |
y > 0 | T6 | -T6 |
产生测试用例
原则 对产生的的判定中的每个原则都要满足
测试用例 | 执行路径 | 覆盖条件 | 覆盖分支 |
---|---|---|---|
{x=17, y=11} | b->f | T1 T2 T3 T4 | b分支 f分支 |
{x=15, y=6} | b->e | T1 T2 -T3 -T4 | b分支 e分支 |
{x=7,y=4} | a->d | -T1 -T2 T5 T6 | a分支 d分支 |
{x=-1, y=-1} | a->c | -T1 -T2 -T5 -T6 | a分支 c分支 |
判定条件覆盖
将判定覆盖和条件覆盖结合,使得判定中的每个条件的所有取值至少满足一次。同时每个判定的结果至少出现一次。将判定覆盖和条件覆盖相结合
结果如下;
测试用例 | 执行路径 | 覆盖条件 | 覆盖分支 |
---|---|---|---|
{x=17, y=11} | b->f | T1 T2 T3 T4 | b分支 f分支 |
{x=15, y=6} | b->e | T1 T2 -T3 -T4 | b分支 e分支 |
{x=7,y=4} | a->d | -T1 -T2 T5 T6 | a分支 d分支 |
{x=-1, y=-1} | a->c | -T1 -T2 -T5 -T6 | a分支 c分支 |
组合覆盖
每一个判定的所有可能的条件取值的组合
取值标记
判定 | 条件 | 取值标记 (true) | 取值标记(false) |
---|---|---|---|
x>8 and y>5 | x > 8 | T1 | -T1 |
y>5 | T2 | -T2 | |
x>16 or y > 10 | x > 16 | T3 | -T3 |
y > 10 | T4 | -T4 | |
x > 0 or y > 0 | x > 0 | T5 | -T5 |
y > 0 | T6 | -T6 |
取分支
序号 | 条件 | 取的分支 |
---|---|---|
① | T1 T2 | 第一个分支取真 |
② | T1 -T2 | 第一个分支取假 |
③ | -T1 T2 | 第一个分支取假 |
④ | -T1 -T2 | 第一个分支取假 |
⑤ | T3 T4 | 第二个分支取真 |
⑥ | T3 -T4 | 第二个分支取真 |
⑦ | -T3 T4 | 第二个分支取真 |
⑧ | -T3 -T4 | 第二个分支取假 |
⑨ | T5 T6 | 第三个分支取真 |
⑩ | T5 -T6 | 第三个分支取真 |
十一 | -T5 T6 | 第三个分支取真 |
十二 | -T5 -T6 | 第三个分支取假 |
生成测试用例
测试用例 | 覆盖组合号 | 覆盖的路径 |
---|---|---|
{x=17,y=11} | 1 and 5 | b->f |
{x=17,y=9} | 1 and 6 | b -> f |
{x=15,y=11} | 1 and 7 | b -> f |
{x=9,y=6} | 1 and 8 | b -> e |
{x=9, y =4} | 2 and 9 | a -> d |
{x=7, y=-1} | 3 and 10 | a -> d |
{x=7,y=-1} | 4 and 11 | a -> d |
{x=-1, y =-1} | 4 and 12 | a -> c |
路径覆盖
要求路径全部覆盖
测试用例 | 覆盖组合号 | 覆盖的路径 |
---|---|---|
{x=17,y=11} | 1 and 5 | b->f |
{x=9,y=6} | 1 and 8 | b -> e |
{x=9, y =4} | 2 and 9 | a -> d |
{x=-1, y =-1} | 4 and 12 | a -> c |
习题2
某城市电话号码由三部分组成,分别是:
地区码—— 空白或三位数字;
前 缀—— 非‘0’或‘1’开头的三位数字;
后 缀—— 4位数字。
假定被测程序能接受一切符合上述规定的电话号码, 拒绝所有不符合规定的电话号码。
请选择适当的黑盒测试方法,写出选择该方法的原因,并使用该方法的步骤,给出测试用例表。
选用的测试
准备选择场景发进行测试,理由如下
- 该软件是采用事件触发用来控制流程
- 使用场景法较为简单
- 该软件逻辑清晰,备选分支不是很多
绘制场景图
编写测试用例
地区码测试
编号 | 输入 | 说明 |
---|---|---|
1 | 空 | 对应输入地区码为空 |
2 | 000 | 对应数字输入3位数字地区码 |
3 | www | 对应输入非数字地区码 |
前缀测试
编号 | 输入 | 说明 |
---|---|---|
1 | 222 | 非0 1 开头的三位数字 |
2 | 022 | 0开头三位数字 |
3 | 122 | 1开头三位数字 |
4 | 0222 | 0开头非三位数字 |
5 | 1 | 1开头的非三位数字 |
6 | 1w | 1开头非数字内容 |
7 | 0w | 0开头非数字内容 |
8 | 34324 | 非0 1 开头的非三位数字 |
9 | w | 非0 1 开头的非数字 |
后缀测试
编号 | 输入 | 说明 |
---|---|---|
1 | 0000 | 4位后缀数字 |
2 | 0 | 非4位数字 |
3 | 空 | 非数字内容 |
www.iming.info