软件测试试题.docx
《软件测试试题.docx》由会员分享,可在线阅读,更多相关《软件测试试题.docx(20页珍藏版)》请在冰豆网上搜索。
![软件测试试题.docx](https://file1.bdocx.com/fileroot1/2023-1/26/90428244-62cd-4186-8bf5-372fd943303d/90428244-62cd-4186-8bf5-372fd943303d1.gif)
软件测试试题
Homework1:
第5章:
边界值测试
1.加法器程序计算两个1~100之间的整数的和。
设计加法器边界值测试用例集合。
解:
加法器测试用例增加如下几条
(1)弱健壮性等价测试类:
A=0B=10C=ERROR
A=1B=10C=11
A=2B=10C=12
A=10B=0C=ERROR
A=10B=1C=11
A=10B=2C=12
A=99B=10C=109
A=100B=10C=110
A=101B=10C=ERROR
A=10B=99C=109
A=10B=100C=110
A=10B=101C=ERROR
(2)是否需要考虑以下情形?
虑到小数,非字符等其它情况测试用例还要增加以下几种情形:
A=3.1B=5.6C=ERROR
A=AB=BC=ERROR
A=@B=#C=ERROR
A=空格B=空格C=ERROR
A=B=C=ERROR
解:
Homework2:
第6章:
等价类测试
1.保险公司人寿保险保费计算程序的等价类测试
某保险公司人寿保险的保费计算方式为:
保费=投保额×保险费率
其中,保险费率根据年龄、性别、婚姻状况和抚养人数的不同而有所不同,体现在不同年龄、性别、婚姻状况和抚养人数,点数设定不同。
10点以上保险费率为0.6%,10点及10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定的,具体规则如下所示:
保险公司计算保费费率的规则
年龄
性别
婚姻
抚养人数
20~39
6点
40~59
4点
其他
2点
M
4点
F
3点
已婚
3点
未婚
5点
1人扣0.5点,
最多扣3点
假设投保额是1万元,找出保险公司人寿保险保费计算程序的等价类测试用例。
对程序中各个输入条件的要求如下:
年龄是一位或两位非零整数,值的有效范围为1~99;性别是一位英文字符,有效取值只能为‘M’(表示男性)或’F’(表示女性);婚姻的有效取值只能为‘已婚’或‘未婚’;抚养人数的有效取值可以是空白或一位非零整数(1~9)。
(1)分析程序的规格说明,列出等价类表(包括有效等价类和无效等价类)。
(2)根据
(1)中的等价类表,设计能覆盖所有等价类的测试用例的输入数据和预期输出。
解:
(1)
(2)
Homework3:
第7章:
等价类测试
一个处理单价为5元钱的饮料自动售货机软件测试用例的设计。
规格说明如下:
若投入5元钱或10元钱,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示“零钱找完”的红灯亮,这时在投入10元钱并按下按钮后,饮料不送出来而且10元钱也退出来;若有零钱找,则显示“零钱找完”的红灯灭,在送出饮料的同时退还5元钱。
构造因果图分析规格说明,用决策表设计测试用例。
解:
1)分析这一段说明,列出原因和结果
原因:
1.售货机有零钱找
2.投入1元硬币
3.投入5角硬币
4.押下橙汁按钮
5.押下啤酒按钮
结果:
21.售货机〖零钱找完〗灯亮
22.退还1元硬币
23.退还5角硬币
24.送出橙汁饮料
25.送出啤酒饮料
2)画出因果图,如图3-11所示。
所有原因结点列在左边,所有结果结点列在右边。
建立中间结点,表示处理的中间状态。
中间结点:
11.投入1元硬币且押下饮料按钮
12.押下〖橙汁〗或〖啤酒〗的按钮
13.应当找5角零钱并且售货机有零钱找
14.钱已付清
图3-11:
售货机因果图
3)转换成判定表:
4)在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。
第16列与第32列因什么动作也没做,也删去。
最后可根据剩下的16列作为确定测试用例的依据。
Homework4:
第9章:
路径测试(测试覆盖指标)
1.练习一:
求解一元二次方程程序如下:
main()
{floata,b,c,x1,x2,mid;
scanf(“%f,%f,%f”,&a,&b,&c);
if(a!
=0)
{mid=b*b-4*a*c;
if(mid>0)
{x1=(-b+sqrt(mid))/(2*a);
x2=(-b-sqrt(mid))/(2*a);
printf(“tworealroots\n”);}
else{if(mid==0)
{x1=-b/2*a;
printf(“onerealroot\n”);}
else{x1=-b/(2*a);
x2=sqrt(-mid)/(2*a);
printf(“twocomplexroots\n”);}
}
printf(“x1=%f,x2=%f\n”,x1,x2);
}
}
1、用语句覆盖准则对该程序设计测试用例;
2、用分支覆盖准则对该程序设计测试用例;
解:
1.语句覆盖
由控制图可以很容易看到,可以只选3组(所有的点必须覆盖):
第1组:
2,5,3,
执行顺序为:
1,2,3,4,5,10,11,12,13
第2组:
1,2,1
执行顺序为:
1,2,3,4,5,6,8,9,11,12,13
第3组:
4,2,1
执行顺序为:
1,2,3,4,5,6,7,9,11,12,13
2.分支覆盖
由控制图可以很容易看到,可以只选4组(所有的边必须覆盖):
第1组:
2,5,3(a!
=0,mid>0),
执行顺序为:
1,2,3,4,5,10,11,12,13
第2组:
1,2,1(a!
=0,mid=0),
执行顺序为:
1,2,3,4,5,6,8,9,11,12,13
第3组:
4,2,1(a!
=0,mid<0),
执行顺序为:
1,2,3,4,5,6,7,9,11,12,13
第4组:
0,2,1(a=0)
执行顺序为:
1,2,3,13
练习二:
程序如下:
main()
{inti,j,k,match;
scanf(“%d%d%d,&i,&j,&k);
if(i<=0‖j<=0‖k<=0‖i+j<=k‖i+k<=j‖j+k<=i)match=4;
elseif(i==j&&i==k&&j==k)match=1;
elseif(i==j‖i==k‖j==k)match=2;
elsematch=3;
printf(“match=%d\n”,match);
}
用条件覆盖准则对该程序设计测试用例;
用分支-条件覆盖准则对该程序设计测试用例;
用组合覆盖准则对该程序设计测试用例;
解:
分析:
三组判定:
(1)条件覆盖:
第一组:
if(a<=0||b<=0||c<=0||a+b<=c||b+c<=a||c+a<=b)
有6个条件
第二组:
if(a==b&&b==c&&c==a)有3个条件
第三组:
if(a==b||b==c||c==a)有3个条件
实际上只有9个条件
(a<=0b<=0c<=0a+b<=cb+c<=ac+a<=b)a==bb==cc==a
000TTTTTTTTT
234FFFFFFFFF
这样,2组测试用例,使得每个条件,至少各有一次“真”和“假”。
(2)分支-条件覆盖:
根据流程图,有4条分支:
测试用例为:
000match=1
234match=3
111match=4
223match=2
(3)条件组合覆盖:
Homework5:
第9章(基路径测试)
1.函数说明:
当i_flag=0;返回 i_count+100
当i_flag=1;返回 i_count *10
否则 返回 i_count *20
输入参数:
inti_count ,
inti_flag
输出参数:
int i_return;
代码:
1 int Test(int i_count, int i_flag)
2 {
3 int i_temp = 0;
4 while (i_count>0)
5 {
6 if (0 == i_flag)
7 {
8 i_temp = i_count + 100;
9 break;
10 }
11 else
12 {
13 if (1 == i_flag)
14 {
15 i_temp = i_temp + 10;
16 }
17 else
18 {
19 i_temp = i_temp + 20;
20 }
21 }
22 i_count--;
23 }
24 return i_temp;
25 }
用基路径测试方法,画出DD路径图,计算圈复杂度,并列出基路径,设计对应的测试用例。
解:
(1)基本路径测试步骤:
1.导出程序流程图的拓扑结构—控制流图G
2.计算控制流图G的环路复杂度V(G)
环路复杂度是一种为程序逻辑复杂性提供定量测试的软件度量。
将该度量用于计算程序的基本独立路径数目。
为确保所有语句至少执行一次的测试数量的上界。
简单的定义就是控制流图的区域数目
3.确定只包含独立路径的基本路径集
4.设计测试用例
(2)控制流图
(3)计算流图G的环路复杂度V(G)
有三种方法计算环路复杂度:
1>V(G)=区域个数=4
2>V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量。
V(G)=10-8+2=4
3>V(G)=P+1,P是流图G中判定结点的数量
V(G)=3+1=4
(4)基本路径:
1B
(4,24)
2C,E,J
(4,6,8,24)
3C,D,F,H,A,B
(4,6,13,15,22,4,24)
4C,D,G,I,A,B
(4,6,13,19,22,4,24)
(5)测试用例:
1B(4,24)
输入数据:
i_flag=0,或者是i_flag<0的某一个值。
预期结果:
i_temp=0.
2C,E,J(4,6,8,24)
输入数据:
i_count=1;i_flag=0
预期结果:
i_temp=101.
3C,D,F,H,A,B(4,6,13,15,22,4,24)
输入数据:
i_count=1;i_flag=1
预期结果:
i_temp=10.
4C,D,G,I,A,B(4,6,13,19,22,4,24)
输入数据:
i_count=1;i_flag=2
预期结果:
i_temp=20.
小学二
(2)班班规
一、安全方面
1、每天课间不能追逐打闹。
2、中午和下午放学要结伴回家。
3、 公路上走路要沿右边走,过马路要注意交通安全。
4、 不能在上学路上玩耍、逗留。
二、学习方面
1、每天到校后,不允许在走廊玩耍打闹,要进教室读书。
2、每节课铃声一响,要快速坐好,安静地等老师来上课。
3、课堂上不做小动作,不与同桌说悄悄话,认真思考,积极回答问题。
4、养成学前预习、学后复习的好习惯。
每天按时完成作业,保证字迹工整,卷面整洁。
5、考试时做到认真审题,不交头接耳,不抄袭,独立完成答卷。
三、升旗排队和两操方面
1、升旗时,要快速出教室排好队,做到快、静、齐,安静整齐地排队走出课室门,班长负责监督。
2、上午第二节后,快速坐好,按要求做好眼保健操。
3、下午预备铃声一响,在座位上做眼保健操。
四、卫生方面
1、每组值日生早晨7:
35到校做值日。
2、要求各负其责,打扫要迅速彻底,打扫完毕劳动工具要摆放整齐。
3、卫生监督员(剑锋,锶妍,炜薪)要按时到岗,除负责自己的值日工作外,还要做好记录。
五、一日常规
1、每天学生到齐后,班长要检查红领巾。
2、劳动委员组织检查卫生。
3、每天负责领读的学生要督促学生学习。
4、上课前需唱一首歌,由文娱委员负责。
5、 做好两操。
6、 放学后,先做作业,然后帮助家长至少做一件家务事。
7、 如果有人违反班规,要到老师处说明原因。
班训:
坐如钟 站如松 快如风 静无声
班规:
课堂听讲坐如钟,精神集中认真听;
排队升旗站如松,做操到位展雄风;
做事迅速快如风,样样事情记得清;
自习课上静无声,踏实学习不放松;
个人努力进步快,团结向上集体荣;
我为领巾添光彩,标兵集体记我功。
加分标准
序号
考核项目
加分值
备注
1
单元考试满分
+2
2
单元考试85分以上
+1
3
课堂小测满分
+1
4
期中、期末考试满分
+3
5
在红领巾广播站投稿一次
+2
6
在校级活动中获奖
+5
7
作业十次全对得一颗星
+3
8
课堂上得到表扬
+1
9
班干部工作认真负责
+1
10
做好事、有利于班集体和学校的事
+2
11
进步比较明显
+2
12
连续一周该组值日卫生达标
本组值日生每人加2分
扣分标准
序号
考核项目
扣分值
备注
1
没交作业、不做晚作业
-1
2
忘带书本、学具
-1
3
迟到
-1
4
在课堂上被老师点名
-2
5
不穿校服,不戴红领巾
-1
6
吃零食、带钱、带玩具
-2
7
说脏话、打架
-3
请家长,写保证书
8
座位周围有垃圾
-2
9
课间操、眼保健操不认真做
-1
10
升旗时违反纪律
-2
11
来学校不进教室,在走廊聊天打闹
-1
12
体育课打闹说话、排队不整齐
-2
注:
每人基本分60分起,学期末核算总分,作为学期评先依据。