软件测试的实验报告.docx
- 文档编号:30113289
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:16
- 大小:36.56KB
软件测试的实验报告.docx
《软件测试的实验报告.docx》由会员分享,可在线阅读,更多相关《软件测试的实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
软件测试的实验报告
文件排版存档编号:
[UYTR-OUPT28-KBNTL98-UYNN208]
软件测试的实验报告
哈尔滨华德学院
实验报告
课程名称:
软件测试方法和技术
系别:
计算机应用技术系
专业:
软件工程
学号:
姓名:
陈天任
学期:
2012年春季学期
实验成绩:
计算机应用技术系监制
实验名称:
电话号码问题
实验时间:
学时:
4
实验地点:
s103
实验目的:
根据程序的规格说明,作等价类划分,设计测试方案。
实验步骤:
某城市电话号码由三部分组成。
它们的名称和内容分别是:
(1)地区码:
空白或三位数字;
(2)前缀:
非'0'或'1'的三位数字;
(3)后缀:
4位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。
根据该程序的规格说明,作等价类的划分,并设计测试方案。
测试代码:
import
publicclasstest1{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner;
Stringstr=();
str=();
"电话号码由三部分组成,1)地区码:
空白或三位数字;
(2)前缀:
非'0'或'1'的三位数字;(3)后缀:
4位数字。
");
if("\\d{3}(-|*)[2-9]{3}\\d{4}")){
"您输入的电话号码格式正确:
"+str);
}
elseif("[2-9]{3}\\d{4}")){
"您输入的电话号码格式正确:
"+str);
}
else{
"您输入的电话号码格式有错误,请重新输入");
}
}
}
输入
合理等价类
不合理等价类
电话号码
(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;
a=();
b=();
c=();
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;
date=();
month=();
year=();
if(date>=1&&date<=31&&month>=1&&month<=12){
Calendartime=();;
try{
(year,month-1,date);
2);
Dateda=();
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
结构性测试
一、实验目的:
掌握结构性测试技术,并能应用结构性测试技术设计测试用例;对测试用例进行优化设计。
二、实验内容
1.题目一:
使用逻辑覆盖测试方法测试以下程序段
voidDoWork(intx,inty,intz)
{
1intk=0,j=0;
2if((x>3)&&(z<10))
3{
4k=x*y-1;
5j=sqrt(k);
6}
7if((x==4)||(y>5))
8j=x*y+10;
9j=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){句覆盖测试用例
输入
期望输出
覆盖对象
测试结果
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){
/对表[0]到[n-1]进行排序,n是表当前长度。
for(inti=0;i<;i++){
intk=i;ey到[n-1].key中找具有最小关键码的对象
for(intj=i+1;j<;j++)
if([j].getKey()<[k].getKey())k=j;//当前具最小关键码的对象
if(k!
=i)Swap([i],[k]);//交换
}
}
(1)试计算此程序段的McCabe复杂性;
(2)用基本路径覆盖法给出测试路径;
(3)为各测试路径设计测试用例。
实验总结:
软件测试主要包括黑盒测试、白盒测试,经过这次实验我具体练习了这两种测试的各种方法熟悉了测试的思考过程和步骤。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 实验 报告