功能性测试(黑盒测试)实验报告
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表1-1三角形问题等价类划分
有效等价类
号码
无效等价类
号码
输入条件
输入三个整数
整数
1
一边为非整数
a为非整数
12
b为非整数
13
c为非整数
14
两边为非整数
a, b为非整数
15
b, c为非整数
16
a, c为非整数
17
三边均为非整数
18
三个数
2
只给一边
只给a
19
只给b
20
只给c
21
只给两边
只给a,b
22
只给b,c
Test22
2
28
2004
1/3/2004
Test23
2
28
2005
2/3/2005
Test24
2
29
2004
2/3/2004
Test25~27
2
29
2005
不可能
Test28~29
2
30
2004
不可能
(3)根据设计的两套测试用例集进行测试。
以下是对步骤(2)中的Test1和Test6进行测试的结果。
表2-4 Test1测试用例的测试结果
测试用例ID
Test1
目的
测试程序能否识别正确输出日历上隔一天的日期
前提
1≤month≤12;1≤day≤31
输入
month=6;day=28;year=2001
预期结果
输出:30/6/2001
测试结果
输出:30/6/2001
测试日期
2011-11-15
备注
无
表2-5 Test6测试用例的测试结果
D3:{day:day=28};
D4:{day:day=29};
D5:{day:day=30};
D6:{day:day=31};
Y1:{year:year是闰年};
Y2:{year:year不是闰年}。
建立NextDate函数的简化决策表如下表2-1所示。
表2-1日期问题简化决策表
规则
选项规则
1~3
√
√
√
√
A6:month复位
√
A7:year加1
√
日期问题决策表续2-2
规则
选项规则
18
19
20
21
22
23
24
25~27
28~29
条件
C1:month在
M3
M4
M4
M4
M4
M4
M4
M4
M4
C2:day在
D6
D1
D2
D2
D3
D3
D4
D4~D6
D5~D6
C3:year在
—
—
Y1
Y2
Y1
Y2
Y1
Y2
Y1
仔细研究动作桩,可以在以下的等价类集合上建立决策表。
M1:{mount:month有30天};
M2:{mouth:month有31天,12月份除外};
M3:{month:month是12月};
M4:{mouth:month是2月};
D1:{day:1<=day<=26};
D2:{day:day=27};
表2-3日期问题测试用例表
测试用例
month
day
year
预期输出
Test1~3
6
28
2001
30/6/2001
Test4629源自20011/7/2001
Test5
6
30
2001
2/7/2001
Test6
6
31
2001
不可能
Test7~10
3
29
2002
31/3/2002
Test11
3
30
2002
1/4/2002
输入
a=3;b=4;c=5
预期结果
输出“三角形是一般三角形”
测试结果
输出“三角形是一般三角形”
测试日期
2011-11-15
备注
无
表1-4Test2测试用例的测试结果
测试用例ID
Test2
目的
测试程序能否识别等腰三角形
前提
输入三个不等的正整数,且两边之和大于第三边
输入
a=4;b=4;c=5
预期结果
输出“三角形是等腰三角形”
2.题目二:日期问题
用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004年11月29日,则该程序的输出为2004年12月1日。
4
5
6
7~10
11
12
13~16
17
条件
C1:month在
M1
M1
M1
M1
M2
M2
M2
M3
M3
C2:day在
D1~D3
D4
D5
D6
D1~D4
D5
D6
D1~D4
D5
C3:year在
—
—
—
—
—
—
—
—
—
动作
A1:不可能
√
A2:day加2
√
√
√
A3:day复位1
√
√
√
A4:day等于2
√
√
A5:month加1
动作
A1:不可能
√
√
A2:day加2
√
√
A3:day复位1
√
√
A4:day等于2
√
√
√
A5:month加1
√
√
√
√
A6:month复位
√
A7:year加1
√
(2)根据所学知识确定优化策略(原则:用最少的用例检测出更多的缺陷、软件测试的充分性与冗余性考虑),设计两套测试用例集。
根据步骤1中的决策表,可设计测试用例如表2-3所示。
实验内容
功能性测试(黑盒测试)
实验目的:
1、掌握应用功能性测试技术进行测试用例设计。
2、掌握对测试用例进行优化设计方法。
实验内容:
1.题目一:三角形问题
根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。”
•有时条件最终引用输入的等价类,行为引用被测试软件的主要功能处理部分,规则则解释为测试用例。
在日期问题中,为了获得一个日期,NextDate函数需要执行的操作有5种:
1)day变量值加2;
2)day变量复位为1;
3)day变量为2;
4)month变量值加1;
5)month变量复位为1;
6)year变量加1。
测试用例ID
Test6
目的
测试程序能否识别错误输入
前提
1≤month≤12;1≤day≤31
输入
month=6;day=31;year=2001
预期结果
输出:输入错误,6月份不存在31日
测试结果
输出:输入错误,6月份不存在31日
测试日期
2011-11-15
备注
无
实验总结
•使用等价类划分方法必须仔细分析和推敲题目所给出的要求。本题的输人条件要求的关键之处有:
–1)整数;
–2)三个数;
–3)非零数;
–4)正数;
•输出条件要求的关键之处有:
–5)应满足两边长之和大于第三边边长;
–6)等腰;
–7)等边;
•其中,3)、4)和5)并没有在题目上明显给出,但这些条件是必要的。
列出等价类表(表中号码为等价类编号)
列出覆盖步骤1中的等价类划分的测试用例
表1-2三角形问题测试用表
a
b
c
覆盖等价类号码
3
4
5
1—7
4
4
5
1—7,8
4
5
5
1—7,9
5
4
5
1—7,10
4
4
4
1—7,11
(3)根据设计的两套测试用例集进行测试。
表1-3Test1测试用例的测试结果
测试用例ID
Test1
目的
测试程序能否识别一般三角形
前提
输入三个不等的正整数,且两边之和大于第三边
(1)分析各种输入情况,列出为输入变量month、day、year划分的有效等价类。
(2)分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。
(3)根据(1)和(2),画出简化后的决策表。
实验步骤
1、三角形问题
(1)根据功能性测试技术设计测试用例,主要考虑等价类划分测试技术。
输出条件
构成一般
三角形
a+b>c
5
a+b<c
40
a+b=c
41
b+c>a
6
b+c<a
42
b+c=a
43
a+c>b
7
a+c<b
44
a+c=b
45
构成等要
三角形
两边之和大于第三边
a=b
8
b=c
9
a=c
10
构成等边三角形
a=b=c
11
(2)根据所学知识确定优化策略(原则:用最少的用例检测出更多的缺陷、软件测试的充分性与冗余性考虑),设计两套测试用例集。
Test12
3
31
2002
2/4/2002
Test13~16
12
29
2003
31/12/2003
Test17
12
30
2003
1/1/2004
Test18
12
31
2003
2/1/2004
Test19
2
26
2003
28/2/2003
Test20
2
27
2004
29/2/2004
Test21
2
27
2005
1/3/2005
23
只给a,c
24
给出三个以上
25
非零数
3
一边为零
a为0
26
b为0
27
c为0
28
二边为零
a,b为0
29
a,c为0
30
b,c为0
31
三边a,b,c均为0
32
正数
4
一边<0
a<0
33
b<0
34
c<0
35
二边<0
a<0且b<0
36
a <0且c<0
37
b<0且c<0
38
三边均<0; a<0且b<0且<0
39
测试结果
输出“三角形是等腰三角形”
测试日期
2011-11-15
备注
无
2、日期问题
(1)根据功能性测试技术设计测试用例,主要考虑决策表测试技术。
决策表适合描述不同条件集合下采取行动的若干组合的情况。
•决策表的构成:
–桩部分
–条目部分
–条件部分
–行动部分
•使用决策表标识测试用例,则把条件解释为输入,行动解释为输出。
有效等价类
号码
无效等价类
号码
输入条件
输入三个整数
整数
1
一边为非整数
a为非整数
12
b为非整数
13
c为非整数
14
两边为非整数
a, b为非整数
15
b, c为非整数
16
a, c为非整数
17
三边均为非整数
18
三个数
2
只给一边
只给a
19
只给b
20
只给c
21
只给两边
只给a,b
22
只给b,c
Test22
2
28
2004
1/3/2004
Test23
2
28
2005
2/3/2005
Test24
2
29
2004
2/3/2004
Test25~27
2
29
2005
不可能
Test28~29
2
30
2004
不可能
(3)根据设计的两套测试用例集进行测试。
以下是对步骤(2)中的Test1和Test6进行测试的结果。
表2-4 Test1测试用例的测试结果
测试用例ID
Test1
目的
测试程序能否识别正确输出日历上隔一天的日期
前提
1≤month≤12;1≤day≤31
输入
month=6;day=28;year=2001
预期结果
输出:30/6/2001
测试结果
输出:30/6/2001
测试日期
2011-11-15
备注
无
表2-5 Test6测试用例的测试结果
D3:{day:day=28};
D4:{day:day=29};
D5:{day:day=30};
D6:{day:day=31};
Y1:{year:year是闰年};
Y2:{year:year不是闰年}。
建立NextDate函数的简化决策表如下表2-1所示。
表2-1日期问题简化决策表
规则
选项规则
1~3
√
√
√
√
A6:month复位
√
A7:year加1
√
日期问题决策表续2-2
规则
选项规则
18
19
20
21
22
23
24
25~27
28~29
条件
C1:month在
M3
M4
M4
M4
M4
M4
M4
M4
M4
C2:day在
D6
D1
D2
D2
D3
D3
D4
D4~D6
D5~D6
C3:year在
—
—
Y1
Y2
Y1
Y2
Y1
Y2
Y1
仔细研究动作桩,可以在以下的等价类集合上建立决策表。
M1:{mount:month有30天};
M2:{mouth:month有31天,12月份除外};
M3:{month:month是12月};
M4:{mouth:month是2月};
D1:{day:1<=day<=26};
D2:{day:day=27};
表2-3日期问题测试用例表
测试用例
month
day
year
预期输出
Test1~3
6
28
2001
30/6/2001
Test4629源自20011/7/2001
Test5
6
30
2001
2/7/2001
Test6
6
31
2001
不可能
Test7~10
3
29
2002
31/3/2002
Test11
3
30
2002
1/4/2002
输入
a=3;b=4;c=5
预期结果
输出“三角形是一般三角形”
测试结果
输出“三角形是一般三角形”
测试日期
2011-11-15
备注
无
表1-4Test2测试用例的测试结果
测试用例ID
Test2
目的
测试程序能否识别等腰三角形
前提
输入三个不等的正整数,且两边之和大于第三边
输入
a=4;b=4;c=5
预期结果
输出“三角形是等腰三角形”
2.题目二:日期问题
用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004年11月29日,则该程序的输出为2004年12月1日。
4
5
6
7~10
11
12
13~16
17
条件
C1:month在
M1
M1
M1
M1
M2
M2
M2
M3
M3
C2:day在
D1~D3
D4
D5
D6
D1~D4
D5
D6
D1~D4
D5
C3:year在
—
—
—
—
—
—
—
—
—
动作
A1:不可能
√
A2:day加2
√
√
√
A3:day复位1
√
√
√
A4:day等于2
√
√
A5:month加1
动作
A1:不可能
√
√
A2:day加2
√
√
A3:day复位1
√
√
A4:day等于2
√
√
√
A5:month加1
√
√
√
√
A6:month复位
√
A7:year加1
√
(2)根据所学知识确定优化策略(原则:用最少的用例检测出更多的缺陷、软件测试的充分性与冗余性考虑),设计两套测试用例集。
根据步骤1中的决策表,可设计测试用例如表2-3所示。
实验内容
功能性测试(黑盒测试)
实验目的:
1、掌握应用功能性测试技术进行测试用例设计。
2、掌握对测试用例进行优化设计方法。
实验内容:
1.题目一:三角形问题
根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。”
•有时条件最终引用输入的等价类,行为引用被测试软件的主要功能处理部分,规则则解释为测试用例。
在日期问题中,为了获得一个日期,NextDate函数需要执行的操作有5种:
1)day变量值加2;
2)day变量复位为1;
3)day变量为2;
4)month变量值加1;
5)month变量复位为1;
6)year变量加1。
测试用例ID
Test6
目的
测试程序能否识别错误输入
前提
1≤month≤12;1≤day≤31
输入
month=6;day=31;year=2001
预期结果
输出:输入错误,6月份不存在31日
测试结果
输出:输入错误,6月份不存在31日
测试日期
2011-11-15
备注
无
实验总结
•使用等价类划分方法必须仔细分析和推敲题目所给出的要求。本题的输人条件要求的关键之处有:
–1)整数;
–2)三个数;
–3)非零数;
–4)正数;
•输出条件要求的关键之处有:
–5)应满足两边长之和大于第三边边长;
–6)等腰;
–7)等边;
•其中,3)、4)和5)并没有在题目上明显给出,但这些条件是必要的。
列出等价类表(表中号码为等价类编号)
列出覆盖步骤1中的等价类划分的测试用例
表1-2三角形问题测试用表
a
b
c
覆盖等价类号码
3
4
5
1—7
4
4
5
1—7,8
4
5
5
1—7,9
5
4
5
1—7,10
4
4
4
1—7,11
(3)根据设计的两套测试用例集进行测试。
表1-3Test1测试用例的测试结果
测试用例ID
Test1
目的
测试程序能否识别一般三角形
前提
输入三个不等的正整数,且两边之和大于第三边
(1)分析各种输入情况,列出为输入变量month、day、year划分的有效等价类。
(2)分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。
(3)根据(1)和(2),画出简化后的决策表。
实验步骤
1、三角形问题
(1)根据功能性测试技术设计测试用例,主要考虑等价类划分测试技术。
输出条件
构成一般
三角形
a+b>c
5
a+b<c
40
a+b=c
41
b+c>a
6
b+c<a
42
b+c=a
43
a+c>b
7
a+c<b
44
a+c=b
45
构成等要
三角形
两边之和大于第三边
a=b
8
b=c
9
a=c
10
构成等边三角形
a=b=c
11
(2)根据所学知识确定优化策略(原则:用最少的用例检测出更多的缺陷、软件测试的充分性与冗余性考虑),设计两套测试用例集。
Test12
3
31
2002
2/4/2002
Test13~16
12
29
2003
31/12/2003
Test17
12
30
2003
1/1/2004
Test18
12
31
2003
2/1/2004
Test19
2
26
2003
28/2/2003
Test20
2
27
2004
29/2/2004
Test21
2
27
2005
1/3/2005
23
只给a,c
24
给出三个以上
25
非零数
3
一边为零
a为0
26
b为0
27
c为0
28
二边为零
a,b为0
29
a,c为0
30
b,c为0
31
三边a,b,c均为0
32
正数
4
一边<0
a<0
33
b<0
34
c<0
35
二边<0
a<0且b<0
36
a <0且c<0
37
b<0且c<0
38
三边均<0; a<0且b<0且<0
39
测试结果
输出“三角形是等腰三角形”
测试日期
2011-11-15
备注
无
2、日期问题
(1)根据功能性测试技术设计测试用例,主要考虑决策表测试技术。
决策表适合描述不同条件集合下采取行动的若干组合的情况。
•决策表的构成:
–桩部分
–条目部分
–条件部分
–行动部分
•使用决策表标识测试用例,则把条件解释为输入,行动解释为输出。