实验一黑盒测试法等价类划分法.docx

上传人:b****6 文档编号:8323558 上传时间:2023-01-30 格式:DOCX 页数:27 大小:211.84KB
下载 相关 举报
实验一黑盒测试法等价类划分法.docx_第1页
第1页 / 共27页
实验一黑盒测试法等价类划分法.docx_第2页
第2页 / 共27页
实验一黑盒测试法等价类划分法.docx_第3页
第3页 / 共27页
实验一黑盒测试法等价类划分法.docx_第4页
第4页 / 共27页
实验一黑盒测试法等价类划分法.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

实验一黑盒测试法等价类划分法.docx

《实验一黑盒测试法等价类划分法.docx》由会员分享,可在线阅读,更多相关《实验一黑盒测试法等价类划分法.docx(27页珍藏版)》请在冰豆网上搜索。

实验一黑盒测试法等价类划分法.docx

实验一黑盒测试法等价类划分法

 

实验一黑盒测试法——等价类划分法

实验目的:

1.掌握等价类划分的方法

2.掌握按等价类方法设计测试用例

实验内容:

1、请用等价类划分法为三角形问题划分等价类,并设计相应的测试用例,测试下面三角形问题程序,找出缺陷并改正,给出缺陷报告。

#include"iostream.h"

voidmain(){

inta,b,c;

cout<<"请输入三角形的三条边(界于1-100之间)"<

cin>>a>>b>>c;

if(a<=1||a>=100)cout<<"a的值超过允许的范围!

";

if(b<=1||b>=100)cout<<"b的值超过允许的范围!

";

if(c<=1||c>=100)cout<<"c的值超过允许的范围!

";

if(a+b>c||a+c>b||b+c>a)cout<<"a,b,c的值不能构成三角形!

";

if(a==b&&b==c)cout<<"是等边三角形!

";

if(a==b||b==c||a==c)cout<<"是等边三角形!

";

if(a<>b&&b<>c&&c<>a)cout<<"一般三角形!

";

}

三角形问题:

划分等价类

有效等价类

号码

无效等价类

号码

输入三个整数

 

整数

 

1

a为非整数

一边为非整数b为非整数

c为非整数

a,b为非整数

两边为非整数b,c为非整数

a,c为非整数

三边a,b,c均为非整数

12

13

14

15

16

17

18

 

三个数

 

2

只给a

只给一边只给b

只给c

只给a,b

只给两边只给b,c

只给a,c

给出三个以上

19

20

21

22

23

24

25

 

非零数

 

3

a为0

一边为零b为0

c为0

a,b为0

两边为零b,c为0

a,c为0

三边a,b,c均为0

26

27

28

29

30

31

32

 

正数

 

4

a<0

一边<0b<0

c<0

a<0且b<0

二边<0a<0且c<0

b<0且c<0

三边均<0:

a<0且b<0且c<0

33

34

35

36

37

38

39

构成一般三角形

a+b>c

b+c>a

a+c>b

5

6

7

a+b

a+b=c

b+c

b+c=a

a+c

a+c=b

40

41

42

43

44

45

构成等腰三角形

a=b且两边之

b=c和大于

a=c第三边

8

9

10

构成等边三角形

a=b=c

11

测试用例:

1、覆盖有效等价类的测试用例

用例ID

abc

预期输出

覆盖等价类号码

1

2

3

4

5

345

445

455

545

444

一般三角形

等腰三角形

等腰三角形

等腰三角形

等边三角形

1—7

1—7,8

1—7,9

1—7,10

1—7,11

2、覆盖无效等价类的测试用例

用例ID

abc

覆盖等价类号码

预期输出

用例ID

abc

覆盖等

价类号码

预期输出

6

7

8

2.545

34.55

345.5

12

13

14

无效输入

无效输入

无效输入

23

24

25

26

005

300

040

000

29

30

31

32

无效输入

无效输入

无效输入

无效输入

9

10

11

12

3.54.55

34.55.5

3.545.5

3.54.55.5

15

16

17

18

无效输入

无效输入

无效输入

无效输入

27

28

29

-345

3-45

34-5

33

34

35

无效输入

无效输入

无效输入

13

14

15

3

4

5

19

20

21

无效输入

无效输入

无效输入

30

31

32

33

-3-45

-34-5

3-4-5

-3-4-5

36

37

38

39

无效输入

无效输入

无效输入

无效输入

16

17

18

19

34

45

35

3456

22

23

24

25

无效输入

无效输入

无效输入

无效输入

34

35

36

37

315

325

311

321

40

41

42

43

非三角形

非三角形

非三角形

非三角形

20

21

22

045

305

340

26

27

28

无效输入

无效输入

无效输入

38

39

142

341

44

45

非三角形

非三角形

 

缺陷报告:

缺陷编号

1

用例编号

40

缺陷类型

代码错误

严重级别

严重

优先级

优先

缺陷状态

New

测试阶段

单元□集成□系统□验收□其它()

可重现性

是□否

BUG原因

□需求分析

基本设计□详细设计□设计式样理解□编程□数据库设计

□环境配置□其它()

缺陷描述

程序无法正常执行

预期结果

程序能运行,并且有运行的结果

重现步骤

备注

打开vc++6.0,运行以下源代码。

#include"iostream.h"

voidmain(){

inta,b,c;

cout<<"请输入三角形的三条边(界于1-100之间)"<

cin>>a>>b>>c;

if(a<=1||a>=100)cout<<"a的值超过允许的范围!

";

if(b<=1||b>=100)cout<<"b的值超过允许的范围!

";

if(c<=1||c>=100)cout<<"c的值超过允许的范围!

";

if(a+b>c||a+c>b||b+c>a)cout<<"a,b,c的值不能构成三角形!

";

if(a==b&&b==c)cout<<"是等边三角形!

";

if(a==b||b==c||a==c)cout<<"是等边三角形!

";

if(a<>b&&b<>c&&c<>a)cout<<"一般三角形!

";

}

发现错误,无法执行。

以下部分由BUG修改人填写

缺陷修改描述

将if语句的“<>”改成“!

=”

测试人

修正人

确认人

修正日期

年月日

缺陷编号

2

用例编号

1

缺陷类型

代码错误

严重级别

严重

优先级

优先

缺陷状态

New

测试阶段

单元□集成□系统□验收□其它()

可重现性

是□否

BUG原因

□需求分析

基本设计□详细设计□设计式样理解□编程□数据库设计

□环境配置□其它()

缺陷描述

输入正确的三个数,不能进行正确的判断三角形的类型

预期结果

是一般三角形!

重现步骤

备注

1、在VC++6.0中运行源程序

输入数据如图所示:

 

以下部分由BUG修改人填写

缺陷修改描述

将以下代码

if(a+b>c||a+c>b||b+c>a)cout<<"a,b,c的值不能构成三角形!

";

改成

if(a+b

";

 

测试人

修正人

确认人

修正日期

年月日

缺陷编号

3

用例编号

2~4

缺陷类型

严重级别

严重

优先级

优先

缺陷状态

New

测试阶段

单元□集成□系统□验收□其它()

可重现性

是□否

BUG原因

□需求分析

基本设计□详细设计□设计式样理解□编程□数据库设计

□环境配置□其它()

缺陷描述

输入正确的三个数,不能正确判断三角形的类型

预期结果

等腰三角形

重现步骤

备注

在VC++6.0中运行源程序

输入数据如图所以:

以下部分由BUG修改人填写

缺陷修改描述

将以下代码:

if(a==b&&b==c)cout<<"是等边三角形!

";

改为:

if((a==b&&b!

=c)||(a==c&&c!

=b)||(b==c&&a!

=c))cout<<"是等腰三角形!

";

 

测试人

修正人

确认人

修正日期

年月日

缺陷编号

4

用例编号

6~12,20~39

缺陷类型

严重级别

严重

优先级

优先

缺陷状态

New

测试阶段

单元□集成□系统□验收□其它()

可重现性

是□否

BUG原因

□需求分析

基本设计□详细设计□设计式样理解□编程□数据库设计

□环境配置□其它()

缺陷描述

输入无效数据,不能判定能否构成三角形

预期结果

给出提示判断是否为有效的输入

重现步骤

备注

在VC++6.0中运行源程序

输入数据如图所示:

以下部分由BUG修改人填写

缺陷修改描述

将以下代码:

if(a<>b&&b<>c&&c<>a)cout<<"一般三角形!

";

改为:

if((a>0&&a<=100)&&(b>0&&b<=100)&&(c>0&&c<=100))

{

if(a!

=b&&b!

=c&&c!

=a)cout<<"一般三角形!

";

}

 

测试人

修正人

确认人

修正日期

年月日

缺陷编号

5

用例编号

40~45

缺陷类型

严重级别

严重

优先级

优先

缺陷状态

New

测试阶段

单元□集成□系统□验收□其它()

可重现性

是□否

BUG原因

□需求分析

基本设计□详细设计□设计式样理解□编程□数据库设计

□环境配置□其它()

缺陷描述

输入不能构成三角形的有效数据,不能判定是否为三角形

预期结果

不能构成三角形

重现步骤

备注

在VC++6.0中运行源程序

输入数据如图所示:

以下部分由BUG修改人填写

缺陷修改描述

将以下代码:

if(a<>b&&b<>c&&c<>a)cout<<"一般三角形!

";

改为:

if((a>0&&a<=100)&&(b>0&&b<=100)&&(c>0&&c<=100))

{

if((a!

=b&&b!

=c&&c!

=a)&&(a+b>c&&a+c>b&&b+c>a))cout<<"一般三角形!

";

}

 

测试人

修正人

确认人

修正日期

年月日

缺陷编号

6

用例编号

13~19

缺陷类型

严重级别

严重

优先级

优先

缺陷状态

New

测试阶段

单元□集成□系统□验收□其它()

可重现性

是□否

BUG原因

□需求分析

基本设计□详细设计□设计式样理解□编程□数据库设计

□环境配置□其它()

缺陷描述

只输入三角形的一边或两边,程序进入等待的状态,没有提示。

预期结果

给出提示判断是否为有效的输入

重现步骤

备注

在VC++6.0中运行源程序

输入数据如图所示:

以下部分由BUG修改人填写

缺陷修改描述

 

测试人

修正人

确认人

修正日期

年月日

 

2、某城市电话号码由三部分组成,分别是:

1)地区码:

以0开头的三位或者四位数字(包括0);

2)电话号码:

以非0、非1开头的七位或者八位数字。

假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。

要求:

(1)请选择适当的黑盒测试方法,写出选择该方法的原因,并使用该方法的步骤,给出测试用例表。

(2)如果所生成的测试用例不够全面,请考虑用别的测试方法生成一些补充的测试用例。

解:

(1)采用等阶类划分法,因为等阶类划分把输入域分成若干部分,然后从每个部分选取少数代表性的数据当做测试用例。

(2)步骤:

划分等阶类,列出等阶类表,确定测试用例。

等价类表:

输入条件

有效等价类

号码

无效等价类

号码

地区码

 

0

以0开头的3位数

以0开头的4位数

1

2

3

 

非数字字符

非0开头的3位数

非0开头的4位数

0开头且少于3位数字

0开头且多于4位数字

非0开头且少于3位数

非0开头且多于4位数

6

7

8

9

10

11

12

电话号码

非0、非1开头的7位数

非0、非1开头的8位数

4

5

有非数字字符

少于7位数

多于8位数

起始位为0

起始位为1

13

14

15

16

17

 

测试用例表:

用例ID

测试数据

期望结果

覆盖等价类

地区码

电话号码

1

0

2235688

接受(有效)

1,4

2

0

22347789

接受(有效)

1,5

3

087

2235688

接受(有效)

2,4

4

087

22347789

接受(有效)

2,5

5

0234

2235688

接受(有效)

3,4

6

0234

22347789

接受(有效)

3,5

7

04A3

2235688

拒绝(无效)

6

8

122

2235688

拒绝(无效)

7

9

1223

2235688

拒绝(无效)

8

10

02

2235688

拒绝(无效)

9

11

02234

2235688

拒绝(无效)

10

12

12

2235688

拒绝(无效)

11

13

12345

2235688

拒绝(无效)

12

14

078

2334AA4

拒绝(无效)

13

15

078

234567

拒绝(无效)

14

16

078

723467890

拒绝(无效)

15

17

078

0234455

拒绝(无效)

16

18

078

1234546

拒绝(无效)

17

 

3、请尝试编写NextDate函数,考虑闰年,2月等特殊情况,并划分等价类,按强一般等价类划分法设计测试用例,并进行测试,要求给出部分测试用例截图,撰写测试报告(模版见附录3)。

测试报告

一、实验目的

1.掌握等价类划分的方法

2.掌握按等价类方法设计测试用例

二、实验内容

2.1实验问题描述:

请尝试编写NextDate函数,考虑闰年,2月等特殊情况,并划分等价类,按强一般等价类划分法设计测试用例,并进行测试,要求给出部分测试用例截图

2.2测试环境与配置:

在xp系统下运行VC++6.0的Win32控制台应用程序,执行c++源程序。

2.3源程序:

2.1测试程序源代码

#include

usingnamespacestd;

voidNextDate(intyear,intmonth,intday);

voidmain()

{

intyear=0,month=0,day=0;

NextDate(year,month,day);

}

voidNextDate(intyear,intmonth,intday)

{

cout<<"请输入年份:

"<

cin>>year;

while(!

(year>=1811&&year<=2013))

{

cout<<"年份超过界限,请重新输入"<

cin>>year;

}

cout<<"请输入月份:

"<

cin>>month;

while(month>12||month<1)

{

cout<<"月份输入有误,请重新输入"<

cin>>month;

}

cout<<"请输入日期:

"<

cin>>day;

while(day>31||day<1)

{

cout<<"日期输入有误,请重新输入"<

cin>>day;

}

if((year%4==0&&year%100!

=0)||(year%400==0))//检查闰年;

{

inti=0;

i=day-29;

while(month==2&&i>0)

{

cout<<"本月是闰月,请在1-29之间从新输入日期"<

cin>>day;

}

if(month==2&&day==29)

{

month=3;

day=1;

}

elseday++;

}

elseday++;

//月底计算;

switch(month)

{

case1:

case3:

case5:

case7:

case8:

case10:

if(day==32)

{

month++;

day=1;

cout<<"明天是:

"<

}

break;

case2:

if(day==29)

{

month=3;

day=1;

}

break;

case4:

case6:

case9:

case11:

if(day==31)

{

month++;

day=1;

cout<<"明天是:

"<

}

break;

case12:

if(day==32)

{

year++;

month=1;

day=1;

cout<<"明天是:

"<

}

break;

}

cout<<"明天是:

"<

}

2..4程序思路说明:

1、判断输入年是否在1812——2012范围内。

2、判断输入月是否在1——12范围内。

3、判断输入日期是否在1——31范围内。

4、考虑年份是否为闰年,月份是否为2月。

三、测试方法

3.1等价类划分

有效等价类:

month变量的有效等价类:

M1:

{month=4,6,9,11}M2:

{month=1,3,5,7,8,10}M3:

{month=12}M4:

{month=2}

day变量的有效等价类:

D1:

{1≤day≤27}D2:

{day=28}D3:

{day=29}

D4:

{day=30}D5:

{day=31}

year变量的有效等价类:

Y1:

{year是闰年}Y2:

{year不是闰年}

无效等价类:

M5={月份:

月份<1}

M6={月份:

月份>12}

D6={日期.:

日期<1}

D7={日期:

日期>31}

Y3={年:

年<1812}

Y4={年:

年>2012}

3.2测试用例设计

用例ID

月份

日期

预期输出

1

4

10

2001

2001年4月11日

2

4

10

2004

2004年4月11日

3

4

28

2001

2001年4月29日

4

4

28

2004

2004年4月29日

5

4

29

2001

2001年4月30日

6

4

29

2004

2004年4月30日

7

4

30

2001

2001年5月1日

8

4

30

2004

2004年5月1日

9

4

31

2001

无效输入

10

4

31

2004

无效输入

11

1

10

2001

2001年1月11日

12

1

10

2004

2004年1月11日

13

1

28

2001

2001年1月29日

14

1

28

2004

2004年1月29日

15

1

29

2001

2001年1月30日

16

1

29

2004

2004年1月30日

17

1

30

2001

2001年1月31日

18

1

30

2004

2004年1月31日

19

1

31

2001

2001年2月1日

20

1

31

2004

2004年2月1日

21

12

10

2001

2001年12月11日

22

12

10

2004

2004年12月11日

23

12

28

2001

2001年12月29日

24

12

28

2004

2004年12月29日

25

12

29

2001

2001年12月30日

26

12

29

2004

2004年12月30日

27

12

30

2001

2001年12月31日

28

12

30

2004

2004年12月31日

29

12

31

2001

2002年1月1日

30

12

31

2004

2005年1月1日

31

2

10

2001

2001年2月11日

32

2

10

2004

2004年2月11日

33

2

28

2001

2001年3月1日

34

2

28

2004

2004年2月29日

35

2

29

2001

无效输入

36

2

29

2004

2004年3月1日

37

2

30

2001

无效输入

38

2

30

2004

无效输入

39

2

31

2001

无效输入

40

2

31

2004

无效输入

四、测试结果及缺陷分析

4.1测试执行情况与记录

测试用例编号

输入

输出

1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1