软件测试的实验报告.docx

上传人:b****0 文档编号:10071756 上传时间:2023-05-23 格式:DOCX 页数:17 大小:32.66KB
下载 相关 举报
软件测试的实验报告.docx_第1页
第1页 / 共17页
软件测试的实验报告.docx_第2页
第2页 / 共17页
软件测试的实验报告.docx_第3页
第3页 / 共17页
软件测试的实验报告.docx_第4页
第4页 / 共17页
软件测试的实验报告.docx_第5页
第5页 / 共17页
软件测试的实验报告.docx_第6页
第6页 / 共17页
软件测试的实验报告.docx_第7页
第7页 / 共17页
软件测试的实验报告.docx_第8页
第8页 / 共17页
软件测试的实验报告.docx_第9页
第9页 / 共17页
软件测试的实验报告.docx_第10页
第10页 / 共17页
软件测试的实验报告.docx_第11页
第11页 / 共17页
软件测试的实验报告.docx_第12页
第12页 / 共17页
软件测试的实验报告.docx_第13页
第13页 / 共17页
软件测试的实验报告.docx_第14页
第14页 / 共17页
软件测试的实验报告.docx_第15页
第15页 / 共17页
软件测试的实验报告.docx_第16页
第16页 / 共17页
软件测试的实验报告.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

软件测试的实验报告.docx

《软件测试的实验报告.docx》由会员分享,可在线阅读,更多相关《软件测试的实验报告.docx(17页珍藏版)》请在冰点文库上搜索。

软件测试的实验报告.docx

软件测试的实验报告

哈尔滨华德学院

实验报告

课程名称:

软件测试方法和技术

系别:

计算机应用技术系

专业:

软件工程

学号:

姓名:

陈天任

学期:

2012年春季学期

实验成绩:

计算机应用技术系监制

实验名称:

电话号码问题

实验时间:

5.16

学时:

4

实验地点:

s103

实验目的:

根据程序的规格说明,作等价类划分,设计测试方案。

实验步骤:

某城市电话号码由三部分组成。

它们的名称和内容分别是:

(1)地区码:

空白或三位数字;

(2)前缀:

非'0'或'1'的三位数字;

(3)后缀:

4位数字。

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

根据该程序的规格说明,作等价类的划分,并设计测试方案。

测试代码:

import

publicclasstest1{

publicstaticvoidmain(String[]args){

Scannerinput=newScanner(System.in);

Stringstr=input.nextLine();

str=str.trim();

System.out.println(str);

System.out.println("电话号码由三部分组成,1)地区码:

空白或三位数字;

(2)前缀:

非'0'或'1'的三位数字;(3)后缀:

4位数字。

");

if(str.matches("\\d{3}(-?

?

|*)[2-9]{3}\\d{4}")){

System.out.println("您输入的电话号码格式正确:

"+str);

}

elseif(str.matches("[2-9]{3}\\d{4}")){

System.out.println("您输入的电话号码格式正确:

"+str);

}

else{

System.out.println("您输入的电话号码格式有错误,请重新输入");

}

}

}

输入

合理等价类

不合理等价类

电话号码

(1)输入包含7-10位的数字,地区码后可以接空格或'-'

(2)有非法字符(3)少于七个数字字符(4)大于10个数字符

地区码

(5)空白或三位数字

(6)有非数字字符(7)少于三个数字字符(8)大于三个数字符

前缀

(9)非'0'或'1'的三位数字

(10)有非数字字符(11)少于三个数字字符(12)大于三个数字符

(13)含有0或1数字字符

后缀

(14)后缀:

4位数字

(15)有非数字字符(16)少于四个数字字符(17)大于四个数字符

用例编号

测试用例

预测结果

测试结果

1

输入包含7-10位的数字,地区码后可以接空格或'-'

2

有非法字符:

64@546……45

有非法字符

输入错误

3

少于七个数字字符:

5514

少于七个数字字符

输入错误

4

大于10个数字符:

大于10个数字符

输入错误

5

325-654789

325-654789

输入正确

6

有非数字字符:

5687f96

有非数字字符

输入错误

7

少于三个数字字符:

5-654789

少于三个数字字符

输入错误

8

大于三个数字符:

2134-654789

大于三个数字符

输入错误

9

非'0'或'1'的三位数字:

234-456456

234-456456

234-456456

10

有非数字字符:

64546……45

有非法字符

输入错误

11

少于三个数字字符:

265-2636

少于三个数字字符

输入错误

12

大于三个数字符

输入错误

13

含有0或1数字字符:

2364-123134

含有0或1数字字符

输入错误

14

后缀:

4位数字:

234-456456

234-456456

234-456456

15

有非数字字符:

64@546……45

有非数字字符

输入错误

16

少于四个数字字符:

265-2636

少于四个数字字符

输入错误

17

大于四个数字符

输入错误

2.根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。

“一个程序读入三个整数。

把此三个数值看成是一个三角形的三个边。

这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。

代码:

publicclassTest2{

publicstaticvoidmain(String[]args){

inta,b,c;

Scannerinput=newScanner(System.in);

a=input.nextInt();

b=input.nextInt();

c=input.nextInt();

if(a+b<=c||a+c<=b||b+c<=a){}

else{

if(a==b&&b==c){}

elseif(a==b&&a!

=c||b==c&&a!

=b){

}

else{

}

}

}

}

输入

合理等价类

不合理等价类

三个数

(1)三个数字字符

(2)含有非法字符

(3)含有非数字字符

三个整数

(4)三个正整数

(5)含有负整数

(6)含有0的整数组合

用例编号

测试用例

预测结果

测试结果

1

三个不能构成三角形整数:

1,2,3

不能构成三角形

不能构成三角形

2

含有非数字字符的组合:

A,s,d

含有非英文字符

输入错误

3

三个互不相等的整数:

2,3,4

三边不等三角形

三边不等三角形

4

仅有两个相等的整数组合:

2,2,3

等腰三角形

等腰三角形

5

三个整数都相等的组合:

2,2,2

等边三角形

等边三角形

6

含有非法字符的组合:

2,@,3

含有非法字符

输入错误

7

含有负整数的组合:

-1,1,1

含有负整数

输入错误

8

含有0的整数组合:

0,1,1

含有0的整数

输入错误

3.用决策表测试法测试以下程序:

该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:

1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。

例如,输入为2004年11月29日,则该程序的输出为2004年12月1日。

(1)分析各种输入情况,列出为输入变量month、day、year划分的有效等价类。

(2)分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。

(3)根据

(1)和

(2),画出简化后的决策表。

publicclasstest{

publicstaticvoidmain(String[]args){

intdate,month,year;

Scannerinput=newScanner(System.in);

date=input.nextInt();

month=input.nextInt();

year=input.nextInt();

if(date>=1&&date<=31&&month>=1&&month<=12){

Calendartime=Calendar.getInstance();;

try{

time.set(year,month-1,date);

time.add(Calendar.DATE,2);

Dateda=time.getTime();

SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");

}catch(Exceptione){

}

}

else{

}

}

}

输入

合理等价类

不合理等价类

日期

(1)在6~8位数字字符,可以包含非法字符或者汉字字符

(2)非6~8位数字字符

(3)非法英文字符

(4)日期不存在

(5)在1~12之间的整数

(6)小于1

(7)大于12

(8)在1~31之间的整数

(9)大于31

(10)小于1

(11)大于0的整数

(12)小于0

用例编号

测试用例

预测结果

测试结果

1

6~8位数字字符,可以包含非法字符或者汉字字符:

2004年11月29日,2004-11-29

2004年11月30日

2004年11月30日

2

非6~8位数字字符:

2004-1

输入格式不正确

输入错误

3

非法英文字符:

2004-a-a

输入非法字符

输入错误

4

日期不存在:

2003-2-29

输入日期不存在

输入错误

5

月份小于1:

2003-0-25

输入月份不存在

输入错误

6

月份大于12:

2004-13-5

输入月份不存在

输入错误

7

日大于31:

2004-5-35

输入日不存在

输入错误

8

日小于1:

2004-0-0

输入日不存在

输入错误

9

月份在1~12之间:

2004-5-3

2004-5-3

2004-5-3

10

日在1~31之间:

2004-5-3

2004-5-3

2004-5-3

11

年大于0:

2004-5-3

2004-5-3

2004-5-3

12

年小于0:

-102-5-4

输入日期不存在

输入错误

序号

1

2

3

4

5

6

7

8

条件

日期是否正确?

1

1

1

0

1

0

0

0

月份是否正确?

1

1

0

1

0

1

0

0

日是否正确?

1

0

1

1

0

0

1

0

动作

打印内容

1

0

0

0

0

0

0

0

提示日期不正确

0

0

0

1

0

0

0

1

提示月份不正确

0

0

1

0

1

1

0

0

提示日不正确

0

1

0

0

0

0

1

0

4.

假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内(P),求找给顾客最少货币个(张)数?

(货币面值50元10元,5元,1元四种)

用例编号

S

输入

输出

备注张数

商品价格x

付款y

50元R50

20元R20

10元R10

5元R5

2元R2

1元R1

1

101

错误

2

0

3

101

101

4

100

99

5

50

50

100

1

0

0

0

0

0

1

6

49

51

100

0

2

0

1

2

0

5

7

20

80

100

0

1

0

0

0

0

1

8

19

81

100

0

0

1

1

2

0

4

9

10

90

100

0

0

1

0

0

0

1

10

9

91

100

0

0

0

1

2

0

3

11

5

95

100

0

0

0

1

0

0

1

12

4

96

100

0

0

0

0

2

0

2

13

2

98

100

0

0

0

0

1

0

1

14

1

99

100

0

0

0

0

0

1

1

15

0

100

100

0

0

0

0

0

0

0

3.2结构性测试

一、实验目的:

掌握结构性测试技术,并能应用结构性测试技术设计测试用例;对测试用例进行优化设计。

二、实验内容

1.题目一:

使用逻辑覆盖测试方法测试以下程序段

voidDoWork(intx,inty,intz)

{

1intk=0,j=0;

2if((x>3)&&(z<10))

3{

4k=x*y-1;

5?

?

?

?

?

?

j=sqrt(k);

6}

7?

?

?

if((x==4)||(y>5))

8j=x*y+10;

9?

?

?

j=j%3;

10?

}

(1)画出程序的控制流图(用题中给出的语句编号表示)。

(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。

a

bc

d

f

e

g

第1个判断应考虑

X>3,记为T1

X<=3,即记为F1

Z<10,记为T2

Z>=10,记为F2

第2个判断应考虑

X==4,记为T3

X!

=4,记为F3

Y>5,记为T4

Y<=5,记为F4

测试编号

XYZ

路径

覆盖条件

1

5412

aceg

F1F2F3F4

2

665

abdeg

T1T2F3F4

3

439

abdfg

T1T2T3T4

4

4112

acfg

F1F2T3F4

5

4612

acfg

F1F2T3T4

2.题目二:

三角形问题

在三角形计算中,要求输入三角型的三个边长:

A、B和C。

当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。

若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。

画出程序流程图、控制流程图、计算圈复杂度V(g),找出基本测试路径。

publicclassSJX

{publicstaticintcomfirm(inta,intb,intc){//判断三角形

if((a+b>c)&&(b+c>a)&&(a+c>b))

{if((a==b)&&(b==c))return3;//判断为等腰三角形

if((a==b)||(b==c))return2;//等边三角形

elsereturn1;//判断为普通三角形

}

else{return0;//为非三角形}

}

}

二,程序流程图

三、测试用例

1.语句覆盖测试用例

输入

期望输出

覆盖对象

测试结果

Case1

a=1,b=2,c=3

0

0

Case2

a=3,b=4,c=5

1

1

Case3

a=3,b=3,c=4

2

2

Case4

a=3,b=4,c=5

3

3

2.判定覆盖测试用例

输入

期望输出

覆盖对象

测试结果

Case11

a=1,b=2,c=3

0

0

Case12

a=3,b=4,c=5

1

1

Case13

a=3,b=3,c=5

2

2

Case14

a=3,b=4,c=5

3

3

3.条件覆盖测试用例

输入

期望输出

覆盖对象

测试结果

Case5

a=1,b=6,c=3

0

T1,T2,T3

0

Case6

a=7,b=1c=6

0

T1,F2,T3

0

Case7

a=1,b=7,c=6

0

T1,T2,T3,

0

Case8

a=3,b=3,c=4

2

T1,T2,T3,T4,T5,T6

F7,F8

2

Case9

a=3,b=4,c=5

2

T1,T2,T3,F4

F5,F6,F7,F8

2

Case10

a=4,b=3,c=3

2

T1,T2,T3,F4,

T5,F6,T7,F8

2

4.条件组合覆盖测试用例

输入

期望输出

覆盖对象

测试结果

Case11

A=1,b=6,c=7

0

F1,T2,T3

0

Case12

A=7,b=6,c=1

0

T1,F2,F3

0

Case13

A=1,b=7,c=6

0

T1,T2,F2

0

Case14

A=3,b=3,c=3

3

T1,T2,T3

T4,T5

3

Case15

A=3,b=3,c=4

2

T1,T2,T3

T4,T5

2

四、程序流程图

基本路径覆盖测试用例

输入

期望输出

覆盖对象

测试结果

Case16

a=1,b=6,c=7

0

A->D

0

Case17

a=7,b=6,c=1

0

A->B->D

0

Case18

a=1,b=7,c=6

0

A->B->C->D

0

Case19

a=3,b=3,c=3

3

A->B->C->E->G->H

3

Case20

a=3,b=3,c=4

2

A->B->C->E->G->I

2

Case21

a=4,b=3,c=3

2

A->B->C->E->F->H

2

Case22

a=3,b=4,c=3

2

A->B->C->E->G->J->H

2

Case23

a=3,b=4,c=5

1

A->B->C->E->F->J->K

1

3.题目三:

计算生日是星期几

已知公元1年1月1日是星期一。

编写一个程序,只要输入年月日,就能回答那天是星期几。

应用逻辑覆盖方法和基路径测试方法为上面的问题设计测试用例。

测试用例设计

控制流图

4.题目四:

选择排序

下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:

一是元素类型为Element的数组V,另一个是数组大小n。

算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey(),一是交换两数组元素内容的操作Swap():

voidSelectSort(datalist&list){

/对表list.V[0]到list.V[n-1]进行排序,n是表当前长度。

for(inti=0;i

intk=i;//在list.V[i].key到list.V[n-1].key中找具有最小关键码的对象

for(intj=i+1;j

if(list.V[j].getKey()

if(k!

=i)Swap(list.V[i],list.V[k]);//交换

}

}

(1)试计算此程序段的McCabe复杂性;

(2)用基本路径覆盖法给出测试路径;

(3)为各测试路径设计测试用例。

实验总结:

软件测试主要包括黑盒测试、白盒测试,经过这次实验我具体练习了这两种测试的各种方法熟悉了测试的思考过程和步骤。

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2