软件测试实验报告Word文档下载推荐.docx
- 文档编号:17856321
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:17
- 大小:80.30KB
软件测试实验报告Word文档下载推荐.docx
《软件测试实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《软件测试实验报告Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
a>
b>
c;
if((1<
=a&
&
a<
=100)&
(1<
=b&
b<
=c&
c<
=100))
{
if(a+b>
c&
a+c>
b&
c+b>
a)
if(a==b&
a==c&
c==b){cout<
三角形为等边三角形"
}
elseif(a==b||a==c||c==b)
{
三角形为等腰三角形"
}
elseif((a*a+b*b)==c*c||(c*c+b*b)==a*a||(a*a+c*c)==b*b)
三角形为直角三角形"
elsecout<
a,b,c可组成三角形"
不存在a,b,c组成的三角形"
a或b或c的值不合法,无法判断"
四、测试用列:
用列ID
a
b
c
预期输出
1
三角形为等边三角形
2
三角形为等腰三角形
3
4
5
三角形为直角三角形
6
7
8
不存在a,b,c组成的三角形
9
10
11
12
a或b或c的值不合法,无法判断
13
14
15
16
100
17
18
101
19
20
90
80
五、等价类划分:
输入条件
有效等价类
编号
无效等价类
三角形
a+b>
a&
a=b&
c=b
1,a>
100,
1,b>
1,c>
a=b||c=b
非三角形
a+b<
c||a+c<
b||c+b<
六、实验结论:
通过实验要求的条件编写的程序和测试用列的预期输出证明给该
程序是正确的
实验二:
1.
了解xtDate函数的边界值分析测试用例。
程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:
1≤month≤12、1≤day≤31、1900≤year≤2050。
),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上第二天的日期。
例如,输入为2005年11月30日,则该程序的输出为2005年12月1日。
请用等价类测试和边界测试法设计测试用例。
stdio.h"
intIsLeapYear(intYear);
intIsCurrentDate(intYear,intMonth,intDay);
intReturnNextDay(intYear,intMonth,intDay);
intLeapYear_Month_SumDay[12]={31,29,31,30,31,30,31,31,30,31,30,31};
{intYear=0,Month=0,Day=0,NextDay=0;
printf("
pleaceenterrightDate(example:
2005627):
\n"
);
scanf("
%d%d%d"
&
Year,&
Month,&
Day);
NextDay=ReturnNextDay(Year,Month,Day);
switch(NextDay)
{case0:
printf("
notacurrentdate\n"
break;
case1:
if(Month==12)
{Year++;
Month=1;
else{Month++;
}break;
}
if(NextDay!
=0)printf("
Theyouinputnextdateis%d-%d-%d.\n"
Year,Month,NextDay);
intIsLeapYear(intYear)
{if(Year%4==0)
{if(Year%400)return1;
else{if(Year%100==0)return0;
elsereturn1;
}}
else{return0;
intIsCurrentDate(intYear,intMonth,intDay)
{if((Year<
1900)&
(Year>
2050)&
(Month>
12)&
(Month<
1)&
(Day<
(Day>
31))
输入的数据有错,请重新输入!
!
elsereturn1;
intReturnNextDay(intYear,intMonth,intDay)
{intThisMonthSumDay;
if(IsCurrentDate(Year,Month,Day)==1)
{ThisMonthSumDay=LeapYear_Month_SumDay[Month-1];
if(Month==2)
{if(IsLeapYear(Year)==0)ThisMonthSumDay--;
if(Day<
ThisMonthSumDay){return++Day;
else{if(Day==ThisMonthSumDay){return1;
else{return0;
}
}else{return0;
四、实验用例:
用例ID
Year
Month
Day
2000
2000-1-2
31
不可能
2001
30
2001-3-31
1900
1900-4-16
29
2004
28
2004-2-29
有小等价类
输入年份
1900<
=n<
=2050
n>
2050||n<
输入月份
1<
=y<
=12
y>
12||y>
输入日期
=r<
=31
r>
31||r<
闰年
=29
29||r<
非闰年
=28
28||r<
2.
了解找零钱组合的方法
假设商店货品价格(R)都不大于100元(且为整数),若顾客付款(P)在10元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。
假定此商店的货币面值只包括:
50元(N50)、10元(N10)、5元(N5)、1元(N1)四种。
请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。
#include"
{chari;
inta,b;
//a代表商品价钱,b代表顾客付的钱。
do
{cout<
请输入商品价钱a(1—100):
;
a;
请输入顾客付款b(1—100):
b;
最佳找零方案:
(b-a)/50<
张50元"
((b-a)%50)/10<
张10元"
((b-a)%10)/5<
张5元"
(b-a)%5<
张1元\n"
你还要继续吗?
输入n表示结束"
i;
while(i!
='
n'
四、等价类划分:
付款金额
=100
100||b<
商品金额
=100||a<
=1
五、测试用例:
测试用例
输入数据
实际输出
最佳找钱路径
50
一张50
40
一张50、一张10
150
无法推算
实验三:
白盒测试
根据流程图编写程序,并使用逻辑覆盖测试方法测试
语句1:
k=x*y-1;
j=sqrt(k);
语句2:
j=x*y+10;
语句3:
j=j%3;
要求:
(1)画出该程序的控制流图。
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径。
#include"
voidmain()
{intx=0,y=0,k=0;
floatj=5;
请输入X,Y的值"
scanf("
%d%d%d\n"
x,&
y,&
j);
if(x>
8&
5)
{if(x>
16||y>
10){j=j%3;
%d\n"
j);
elsereturn0;
elseif(x>
0||y>
0)
{j=x*y+10;
printf("
else{k=x*y-1;
j=sqrt(k);
四、控制流程图:
五、语句覆盖:
测试的路径为{x=10,y=6};
程序执行的路径为:
137;
六、判定覆盖:
测试的路径为:
{x=17,y=11};
{x=9,y=7};
{x=7,y=6};
{x=-1,y=-2};
(1)当测试路径为{x=17,y=11}时,程序执行的路径为:
1367;
(2)当测试路径为{x=9,y=7}时,程序执行的路径为:
(3)当测试路径为{x=7,y=6}时,程序执行的路径为:
1257;
(4)当测试路径为{x=-1,y=-2}时,程序执行的路径为:
1247;
七、条件覆盖:
(1)第一个判定((x>
8)&
(y>
5)):
1、条件x>
8取真值记为T1,取假值记为-T1
2、条件z<
5取真值记为T2,取假值记为-T2
(2)第二个判定((x>
0)||(y>
0)):
0取真值记为T3,取假值记为-T3
2、条件y>
0取真值记为T4,取假值记为-T4
(3)第三个判定((x>
16)||(y>
10)):
1、条件x>
16取真值记为T5,取假值记为-T5
2、条件y>
10取真值记为T6,取假值记为-T6
根据条件覆盖的基本思想,要使上述6个条件可能产生的12种情况至少满足一次,设计测试用例如下:
执行路径
覆盖条件
覆盖分支
X=17,y=11
1-3-6-7
T1,T2,T3,T4,T5,T6
3-6-7
X=-1,y=-1
1-2-4-7
-T1,-T2,-T3,-T4,-T5,-T6
2-4-7
八、判定/条件覆盖:
根据判定/条件覆盖的基本思想,只需设计以下两个测试用例便可以覆盖6个条件的12种取值以及6个判定分支。
九、组合覆盖:
对函数中的各个判定的条件取值组合加以标记:
1、x>
8,y>
5记做T1T2,第一个判定的取真分支;
2、x>
8,y<
=5记做T1-T2,第一个判定的取假分支;
3、x<
=8,y>
5记做-T1T2,第一个判定的取假分支;
4、x<
=8,y<
5记做-T1-T2,第一个判定的取假分支;
5、x>
0,y>
0记做T3T4,第一个判定的取假分支和第二个判定的取真分支;
6、x>
0,y<
=0记做T3-T4,第一个判定的取假分支和第二个判定的取真分支;
7、x<
=0,y>
0记做-T3T4,第一个判定的取假分支和第二个判定的取真分支;
8、x<
=0,y<
=0记做-T3-T4,第一个判定的取假分支和第二个判定的取假分支;
9、x>
16,y>
10记做T5T6,第一个判定的取真分支和第三个判定的取真分支;
10、x>
16,y<
=10记做T5-T6,第一个判定的取真分支和第三个判定的取真分支;
11、x<
=16,y>
10记做-T5T6,第一个判定的取真分支和第三个判定的取真分支;
12、x>
=16,y<
10记做-T5-T6,第一个判定的取真分支和第三个判定的取假分支;
根据组合覆盖的基本思想,设计测试用例如下:
测试用例
执行路径
覆盖组合号
x=17,y=11
1、5、9
x=9,y=-1
1-2-5-7
T1,-T2,T3,-T4,T5,-T6
2、6、10
x=9,y=6
1-2-5-8
T1,T2,T3,T4,-T5,-T6
3、7、11
4、8、12
十、路径覆盖:
根据路径覆盖的基本思想,在满足组合覆盖的测试用例中修改其中一个测试用例,则可以实现路径覆盖:
x=9,y=6
1-3-7
X=17,y=6
T1,T2,T3,T4,T5,-T6
X=5,y=6
实验四:
计算生日是星期几
已知公元1年1月1日是星期一。
编写一个程序,只要输入年月日,就能回答那天是星期几。
应用逻辑覆盖方法和基本路径测试方法为上面的问题设计测试用例。
(1)画出该程序的控制流图;
(2)用基本路径测试方法给出测试路径;
(3)为各测试路径设计测试用例。
#include<
iostream.h>
{intyear,month,day;
intt=0,t1=0,a=0,b=2050,c=0;
请输入year:
year;
请输入month:
month;
请输入day:
day;
year<
"
month<
day<
1for(year=1;
year++)
2if((year%4==0&
year%100!
=0)
||(year%400==0))
3{c=year/4;
t1=(year-1)*365+c-1;
switch(month)
case1:
a=day;
break;
case2:
a=31+day;
case3:
a=60+day;
case4:
a=91+day;
case5:
a=121+day;
case6:
a=152+day;
case7:
a=182+day;
case8:
a=213+day;
case9:
a=244+day;
case10:
a=274+day;
case11:
a=305+day;
case12:
a=335+day;
}
4else
{c=(int)(year/4);
t1=(year-1)*365+c;
switch(month)
{case1:
a=day+;
case2:
case3:
a=59+day;
case4:
a=90+day;
a=120+day;
case6:
a=151+day;
case7:
a=181+day;
case8:
a=212+day;
case9:
a=243+day;
case10:
a=273+day;
case11:
a=304+day;
case12:
a=334+day;
}
}
t=(t1+a)%7;
5switch(t)
cout<
星期一"
星期二"
星期三"
星期四"
星期五"
星期六"
case0:
星期日"
四、实验流程图:
五、基本测试路径:
六、
(1):
1235
(2):
1245
七、各测试路径设计测试用例:
2000年1月1日
1235
星期日
2001年5月15日
星期三
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 实验 报告