软测2.docx
- 文档编号:22845906
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:20
- 大小:267.82KB
软测2.docx
《软测2.docx》由会员分享,可在线阅读,更多相关《软测2.docx(20页珍藏版)》请在冰豆网上搜索。
软测2
计算机软件测试技术
实验报告
系别
电子信息系
专业
计算机科学与技术
班级学号
姓名
指导教师
实验一黑盒测试用例设计
一.实验内容:
1.三角形问题的等价类测试和边界值分析测试
2.NextDate()函数决策表法测试
二.实验要求:
给出测试用例和测试结果
三.实验步骤及结果:
3.1(三角形)实验代码(c)
#include
#include
inta=0,b=0,c=0;
voidshuru();
voidpanduan(inta1,intb1,intc1);
voidmain()
{
charse;
shuru();
panduan(a,b,c);
while
(1)
{
printf("是否要继续yorn:
");
scanf("%c",&se);
if(se=='\n')scanf("%c",&se);
switch(se)
{
case'y':
shuru();
panduan(a,b,c);
break;
case'n':
return;
}
}
}
voidshuru()
{
printf("Pleaseenter三角形三边(a,b,c)\n");
scanf("%d,%d,%d",&a,&b,&c);
while((a<1||a>100)||(b<1||b>100)||(c<1||c>100))
{
if(a==0||b==0||c==0)printf("边长不能为0\n");
elseif(a<0||b<0||c<0)printf("边长不能为负\n");
elseprintf("Pleaseenter1-100之间的整数\n");
scanf("%d,%d,%d",&a,&b,&c);
}
}
voidpanduan(inta1,intb1,intc1)
{
intm1=a1+b1;
intm2=a1+c1;
intm3=b1+c1;
if(a1>=m3||b1>=m2||c1>=m1)printf("非三角形\n");
elseif(a1!
=b1&&a1!
=c1&&b1!
=c1)printf("一般三角形\n");
elseif((a1==b1&&b1!
=c1)||(a1==c1&&a1!
=b1)||(c1==b1&&a1!
=c1))printf("等腰三角形\n");
elseif(a1==b1&&b1==c1)printf("等边三角形\n");
}
3.2测试用例和结果(反映在图中)
测试用例输入a,b,c输出
17,8,9一般三角形
21,1,6非三角形
35,5,9等腰三角形
44,4,4等边三角形
50,1,0边长不能为0
64,-1,6边长不能为负
7101,101,101请输入1-100之间的整数
图形结果:
3.3(NextDate())实验代码(c)
#include
#include
#include
voidmain()
{
intyear;
intmonth,day;
intleap;//标志是闰年还是平年,为1时是闰年,为2时是平年
time_tt;//本来以下是用来判断格式输入是否正确的,但是结果不理想
structtmstm;//A
while
(1){//循环测试
printf("请输入年(yyyy)/月(mm)/日(dd)\n");
scanf("%d/%d/%d",&stm.tm_year,&stm.tm_mon,&stm.tm_mday);//B
year=stm.tm_year;month=stm.tm_mon;day=stm.tm_mday;//C
t=mktime(&stm);//D
printf("*****输出结果*****\n");
if(t!
=-1)//E有问题,不管输入格式是什么,t永远是-1
{
printf("输入的日期时间格式出错!
\n");
continue;
}
if(year%4==0)//年份判断
{
if(year%100==0)
{
if(year%400==0)
{
leap=1;
printf("%ld年%d月%d日是闰年\n",year,month,day);
}
else
{
leap=2;
printf("%ld年%d月%d日是平年\n",year,month,day);
}
}
else
{
leap=1;
printf("%ld年%d月%d日是闰年\n",year,month,day);
}
}
else
{
leap=2;
printf("%ld年%d月%d日是平年\n",year,month,day);
}
if(month==2)
{
if(leap==1)
{
printf("该月有29天\n");
if(day>29)
{
printf("对不起!
您输入的日期超出该月范围\n");
continue;
}
elseif(day==29)
{
month=month+1;
day=1;
}
elseday=day+1;
}
if(leap==2)
{
printf("该月有28天\n");
if(day>28)
{
printf("对不起!
您输入的日期超出该月范围\n");
continue;
}
elseif(day==28)
{
month=month+1;
day=1;
}
elseday=day+1;
}
}
elseif(month==4||month==6||month==9||month==11)
{
printf("该月有30天\n");
if(day>30)
{
printf("对不起!
您输入的日期超出该月范围\n");
continue;
}
elseif(day==30)
{
month=month+1;
day=1;
}
elseday=day+1;
}
else
{
printf("该月有31天\n");
if(day>31)
{
printf("对不起!
超出该月范围\n");
continue;
}
elseif(day==31)
{
if(month==12&&day==31)
{
year=year+1;
month=1;
day=1;
}
else
{
month=month+1;
day=1;
}
}
elseday=day+1;
}
printf("NEXT日期:
%ld年%d月%d日\n",year,month,day);
}
}
3.4测试用例和结果(反映在图中)
决策表测试用例monthdayyear预期输出
Test1~382020002001/8/21
Test483120002001/9/1
Test58322001对不起!
超出该月范围
Test6~911620012001/1/17
Test1013120132013/2/1
Test11~14123120102010/1/1
Test15123120022005/1/1
Test1622920042004/3/1
Test1722820012001/3/1
Test182302002对不起!
超出该月范围
界面效果:
实验二白盒测试用例设计
一.实验内容:
求解一元二次方程程序控制流测试
二.实验要求:
给出控制流测试用例和测试结果
三.实验步骤及结果:
3.1实验代码(c)
#include
#include
#include
voidmain()
{
floata,b,c,x,y;
floatmid,x1,x2;
y=a*x*x+b*x+c;
printf("*************************************\n");
printf("二元一次方程的求解问题\n");
printf("**************************************\n");
while
(1)
{
printf("请输入y方程中参数a,b,c:
\n");
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);
x1=(-b-sqrt(mid))/(2*a);
printf("该方程有两个解:
x1=%f,x2=%f\n",x1,x2);
//printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x1,x1,b,x1,c);
//printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x2,x2,b,x1,c);
}
if(mid==0)
{
x1=-b/(2*a);
x2=x1;
printf("该方程两个解相同:
x1=x2=%f\n",x2);
printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x1,x1,b,x1,c);
}
if(mid<0)
{
printf("该方程没有解\n");
}
}
elseprintf("该方程不是二元方程,可能是一元一次方程\n");
}
}
3.2测试用例和结果(反映在图中)
测试用例x,y,za!
=0mid>0mid==0输出结果
12,5,3真真假该方程有两个解
21,2,1真假真该方程有两个相同解
34,2,1真假假该方程没有解
40,2,1假该方程不是二元方程,可能是一元一次方程
图形结果:
实验三基于缺陷模式的软件测试
一.实验内容:
C++语言、Java语言缺陷模式测试(2学时)
二.实验要求:
给出测试用例和测试结果
三.实验步骤及结果:
3.1实验代码(java)
packagehl.fengye.tt;
publicclassbase{
//没必要的方法调用,System.exit()是没有必要的,应该抛出异常
publicStringsquare(Stringx){
try{
inty=Integer.parseInt(x.toLowerCase());
returny*y+"";
}catch(NumberFormatExceptione){
e.printStackTrace();
System.exit
(1);
return"";
}
}
//显示垃圾回收(缺陷)
publicStringmultiply(Stringx,intn){
if(n<=0)return"";
StringBufferbuf=newStringBuffer();
while(n-->0){
buf.append(x);
}
returnbuf.toString();
}
publicStringmultiplyGc(Stringx,intn){
System.gc();//显示运行结果
returnmultiply(x,n);
}
//字符串的低效操作(连接)
publicvoidconnection(){
Stringfiled="东北大学秦皇岛分校4080420黄磊";
//thisisbad
Strings="";
//System.out.print(s);//Start
for(inti=0;i s=s+filed.charAt(i);//追加 } System.out.print(s+'\n');//Stop1 } publicvoidconnection2(){ Stringfiled="电子信息系4080432易嵘"; //thisisbetter Strings=""; StringBufferbuf=newStringBuffer(); for(inti=0;i buf.append(filed.charAt(i)); } Stringss=buf.toString(); System.out.print(ss+'\n');//Stop2 } publicstaticvoidmain(String[]args){ Stringh; basepp=newbase(); h=pp.square("100"); System.out.print(h+"\n"); Strings="helloword! "; h=pp.multiply(s,2); //System.out.print(h+"\n"); h=pp.multiplyGc(s,2); System.out.print(h+"\n"); //以纳秒为单位计算的: longstartTime=System.nanoTime();//获取当前时间 pp.connection(); longendTime=System.nanoTime(); System.out.println("程序运行时间: "+(endTime-startTime)+"ms"); longstartTime2=System.nanoTime();//获取当前时间 pp.connection2(); longendTime2=System.nanoTime(); System.out.println("程序运行时间: "+(endTime2-startTime2)+"ms"); } } 3.2测试用例和结果(反映在图中) 显示垃圾回收部分: 测试用例输入Strings,intn输出结果 1helloword! 2helloword! helloword! 2nihao,1nihao 3loveyou,0(null) 图形显示: 低效字符串操作部分: 测试用例输入Strings输出时间bad(ms)good(ms) 1hl44169427130 2helloword47778537867 4(空格)31313551604 部分图形展示: 实验四系统测试 一.实验内容: 数据库应用系统性能测试 二.实验要求: 给出响应时间、吞吐量测试用例和结果 三.实验步骤及结果: 3.1实验代码(java) importjava.sql.Connection; importjava.sql.DriverManager; importjava.sql.SQLException; importjava.sql.Statement; publicclasshuanglei{ /** *@paramargs *@throwsException */ publicvoidexecute()throwsException{ Class.forName("com.mysql.jdbc.Driver"); Connectioncon=DriverManager.getConnection ("jdbc: mysql: //localhost: 3306/test","root","root"); con.setAutoCommit(false); Statementst=con.createStatement(); //st.execute("createtablecity(namevarchar(20)notnull)"); for(inti=100;i>0;i--){ Stringstr="insertintocityvalues('city"+i+"','huangeli','hebei')"; System.out.println(str); st.addBatch(str); } //rs='select*fromcity'; st.executeBatch(); mit(); } publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub try{ newLuncher().execute(); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } } 3.2测试用例和结果(反映在图中) 测试用例线程数循环次数响应时间(seconds)吞吐结果 1100101592.002/minute 25051293.232/minute 1100102586.61/minute 图形展示: 实验心得: 通过软件测试实验,我学习到了,黑盒测试和白盒测试的方法,理解了软件测试在软件开发阶段所占的重要地位。 掌握等价类的划分方法决策表法及其在测试中的应用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软测