计算器黑盒测试实验报告.docx
《计算器黑盒测试实验报告.docx》由会员分享,可在线阅读,更多相关《计算器黑盒测试实验报告.docx(29页珍藏版)》请在冰豆网上搜索。
计算器黑盒测试实验报告
西南科技大学计算机学院
实验报告
实验名称计算器黑盒测试
实验地点
实验日期
指导教师
学生班级
学生姓名
学生学号
提交日期
软件教研室制
一、测试目的
设计测试用例、使用各种测试方法进行计算器的测试,并对测试结果进行分析
二、测试内容
1.软件说明:
实现一个小的计算器程序,只需要完成加、减、乘、除运算,设计测试用例,并对测试结果进行分析,同时计算器运行稳定。
2、设计测试用例
3、执行测试
4、测试结果分析
5、源代码
三、测试步骤
(一)、计算器界面
2、设计测试用例
(1)等价类测试:
1、4个等价类测试用例的分析过程如下:
测试用例
加
减
乘
除
预期输出
整型
55+50
78-24
15*25
36/4
正常运算
小数
25.3+12.7
14.3-11.7
25.6*12.8
50.2/20.7
正常运算
负数
-20+-21
(-15)-(-14)
-12*-12
-16/-5
正常运算
无效输入
E1+t2
G4-k5
I5*l6
Ff/se
非法操作无法输入
2、对应测试的结果分析:
整型:
1.加(55+50)
2.减(78-24)
3.乘(15*25)
4.除(36/4)
小数
1.加(25.3+12.7)
2.减(14.3-11.7)
3.乘(25.6*12.8)
4.除(50.2/20.7)
负数
6.加-20+-21
7.减(-15)-(-14)
8.乘-12*-12
9.除-16/-5
(其中算式写法错误导致正常运算错误)
无效输入
1.加(E1+t2):
程序中无效数字无法正常输入,程序无法进行。
2.减(G4-k5)
程序中无效数字无法正常输入,程序无法进行。
(同上)
3.乘(I5*l6)
程序中无效数字无法正常输入,程序无法进行。
(同上)
4.除(Ff/se)
程序中无效数字无法正常输入,程序无法进行。
(同上)
5.
(2)边界值法设计测试:
加法:
1、计算器4个标准等价类测试用例的分析过程如下:
测试用例
被加数
加数
预期输出
Test1
0
10
正常运算
Test2
1
10
正常运算
Test3
40
10
正常运算
Test4
55.5
10
正常运算
Test5
-70
10
正常运算
Test6
10
10
正常运算
Test7
101
10
正常运算
Test8
10
0
不能运算
Test9
10
1
正常运算
Test10
10
40
正常运算
Test11
10
55.5
正常运算
Test12
10
-78
正常运算
Test13
10
100
正常运算
Test14
10
101
正常运算
2、对应测试与结果:
测试结果运算均属正常,对应的部分的示图如下:
Test1结果:
Test2结果:
Test3结果:
Test4结果:
Test5结果:
Test6结果:
减法:
1、计算器4个标准等价类测试用例的分析过程如下:
测试用例
被减数
减数
预期输出
Test1
0
10
正常运算
Test2
1
10
正常运算
Test3
40
10
正常运算
Test4
55.5
10
正常运算
Test5
-78
10
正常运算
Test6
100
10
正常运算
Test7
101
10
正常运算
Test8
10
0
不能运算
Test9
10
1
正常运算
Test10
10
40
正常运算
Test11
10
55.5
正常运算
Test12
10
-78
正常运算
Test13
10
100
正常运算
Test14
10
101
正常运算
2、对应测试与结果:
测试结果运算均属正常,对应的部分的示图如下:
Test1结果:
Test3结果:
Test4结果:
Test5结果:
Test6结果:
乘法
1、计算器4个标准等价类测试用例的分析过程如下:
测试用例
被乘数
乘数
预期输出
Test1
0
50
正常运算
Test2
1
5
正常运算
Test3
24
10
正常运算
Test4
55.5
10
正常运算
Test5
-78
10
正常运算
Test6
100
10
正常运算
Test7
101
10
正常运算
Test8
10
0
不能运算
Test9
10
1
正常运算
Test10
10
40
正常运算
Test11
10
55.5
正常运算
Test12
10
-78
正常运算
Test13
10
100
正常运算
Test14
10
101
正常运算
2、对应测试与结果:
测试结果运算均属正常,对应的部分的示图如下:
Test1结果:
Test3结果:
Test4结果:
Test5结果:
Test6结果:
除法
1、计算器4个标准等价类测试用例的分析过程如下:
测试用例
被除数
除数
预期输出
Test1
0
10
正常运算
Test2
1
10
正常运算
Test3
40
10
正常运算
Test4
55.5
10
正常运算
Test5
-78
10
正常运算
Test6
100
10
正常运算
Test7
101
10
正常运算
Test8
10
0
正常运算
Test9
10
1
正常运算
Test10
10
40
正常运算
Test11
10
55.5
正常运算
Test12
10
-78
正常运算
Test13
10
100
正常运算
Test14
10
101
正常运算
2、对应测试与结果:
对应的部分的示图如下:
Test1结果:
Test2结果:
Test3结果:
Test8结果:
附录:
源代码
CCalculateDlg:
:
CCalculateDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CCalculateDlg:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CCalculateDlg)
m_parameter=0.0;
//}}AFX_DATA_INIT
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
CalculatePara=0;
CalculateResult=0;
Ispoint=false;
Sumpoint=0;
}
voidCCalculateDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCalculateDlg)
DDX_Text(pDX,IDC_EDIT,m_parameter);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCalculateDlg,CDialog)
//{{AFX_MSG_MAP(CCalculateDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_clear,Onclear)
ON_BN_CLICKED(IDC_calculate,Oncalculate)
ON_BN_CLICKED(IDC_para1,Onpara1)
ON_BN_CLICKED(IDC_para2,Onpara2)
ON_BN_CLICKED(IDC_para3,Onpara3)
ON_BN_CLICKED(IDC_para4,Onpara4)
ON_BN_CLICKED(IDC_para5,Onpara5)
ON_BN_CLICKED(IDC_para6,Onpara6)
ON_BN_CLICKED(IDC_para7,Onpara7)
ON_BN_CLICKED(IDC_para8,Onpara8)
ON_BN_CLICKED(IDC_para9,Onpara9)
ON_BN_CLICKED(IDC_para0,Onpara0)
ON_BN_CLICKED(IDC_point,Onpoint)
ON_BN_CLICKED(IDC_minus,Onminus)
ON_BN_CLICKED(IDC_plus,Onplus)
ON_BN_CLICKED(IDC_subtrack,Onsubtrack)
ON_BN_CLICKED(IDC_multiply,Onmultiply)
ON_BN_CLICKED(IDC_divide,Ondivide)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CCalculateDlgmessagehandlers
BOOLCCalculateDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//Add"About..."menuitemtosystemmenu.
//IDM_ABOUTBOXmustbeinthesystemcommandrange.
ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//Settheiconforthisdialog.Theframeworkdoesthisautomatically
//whentheapplication'smainwindowisnotadialog
SetIcon(m_hIcon,TRUE);//Setbigicon
SetIcon(m_hIcon,FALSE);//Setsmallicon
//TODO:
Addextrainitializationhere
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
}
voidCCalculateDlg:
:
OnSysCommand(UINTnID,LPARAMlParam)
{
if((nID&0xFFF0)==IDM_ABOUTBOX)
{
CAboutDlgdlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog:
:
OnSysCommand(nID,lParam);
}
}
//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow
//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,
//thisisautomaticallydoneforyoubytheframework.
voidCCalculateDlg:
:
OnPaint()
{
if(IsIconic())
{
CPaintDCdc(this);//devicecontextforpainting
SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);
//Centericoninclientrectangle
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&rect);
intx=(rect.Width()-cxIcon+1)/2;
inty=(rect.Height()-cyIcon+1)/2;
//Drawtheicon
dc.DrawIcon(x,y,m_hIcon);
}
else
{
CDialog:
:
OnPaint();
}
}
//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags
//theminimizedwindow.
HCURSORCCalculateDlg:
:
OnQueryDragIcon()
{
return(HCURSOR)m_hIcon;
}
voidCCalculateDlg:
:
Onclear()
{
UpdateData(true);
m_parameter=0;
CalculatePara=0;
CalculateResult=0;
Ispoint=false;
Sumpoint=0;
UpdateData(false);//TODO:
Addyourcontrolnotificationhandlercodehere
}
voidCCalculateDlg:
:
Oncalculate()
{
UpdateData(true);
CalculatePara=m_parameter;
switch(CalculateExpre)
{
case'+':
CalculateResult+=CalculatePara;
m_parameter=CalculateResult;
break;
case'-':
CalculateResult-=CalculatePara;
m_parameter=CalculateResult;
break;
case'*':
CalculateResult*=CalculatePara;
m_parameter=CalculateResult;
break;
case'/':
if(CalculatePara)
{
CalculateResult/=CalculatePara;
m_parameter=CalculateResult;
}
else
{
m_parameter=0;
MessageBox("除数不能为零!
");
}
break;
}//TODO:
Addyourcontrolnotificationhandlercodehere
CalculatePara=0;
CalculateResult=0;
Ispoint=false;
Sumpoint=0;
UpdateData(false);
}
voidCCalculateDlg:
:
Onpara1()
{
UpdateData(true);
if(!
Ispoint)
{
CalculatePara=m_parameter*10+1;
}
else
{
CalculatePara=m_parameter+1/pow(10,Sumpoint);
Sumpoint++;
}
m_parameter=CalculatePara;
UpdateData(false);//TODO:
Addyourcontrolnotificationhandlercodehere
}
voidCCalculateDlg:
:
Onpara2()
{
UpdateData(true);
if(!
Ispoint)
{
CalculatePara=m_parameter*10+2;
}
else
{
CalculatePara=m_parameter+2/pow(10,Sumpoint);
Sumpoint++;
}
m_parameter=CalculatePara;
UpdateData(false);//TODO:
Addyourcontrolnotificationhandlercodehere
}
voidCCalculateDlg:
:
Onpara3()
{
UpdateData(true);
if(!
Ispoint)
{
CalculatePara=m_parameter*10+3;
}
else
{
CalculatePara=m_parameter+3/pow(10,Sumpoint);
Sumpoint++;
}
m_parameter=CalculatePara;
UpdateData(false);//TODO:
Addyourcontrolnotificationhandlercodehere
}
voidCCalculateDlg:
:
Onpara4()
{
UpdateData(true);
if(!
Ispoint)
{
CalculatePara=m_parameter*10+4;
}
else
{
CalculatePara=m_parameter+4/pow(10,Sumpoint);
Sumpoint++;
}
m_parameter=CalculatePara;
UpdateData(false);//TODO:
Addyourcontrolnotificationhandlercodehere
}
voidCCalculateDlg:
:
Onpara5()
{
UpdateData(true);
if(!
Ispoint)
{
CalculatePara=m_parameter*10+5;
}
else
{
CalculatePara=m_parameter+5/pow(10,Sumpoint);
Sumpoint++;
}
m_parameter=CalculatePara;
UpdateData(false);//TODO:
Addyourcontrolnotificationhandlercodehere
}
voidCCalculateDlg:
:
Onpara6()
{
UpdateData(true);
if(!
Ispoint)
{
CalculatePara=m_parameter*10+6;
}
else
{
CalculatePara=m_parameter+6/pow(10,Sumpoint);
Sumpoint++;
}
m_parameter=CalculatePara;
UpdateData(false);//TODO:
Addyourcontrolnotificationhandlercodehere
}
voidCCalculateDlg:
:
Onpara7()
{
UpdateData(true);
if(!
Ispoint)
{
CalculatePara=m_parameter*10+7;
}
else
{
CalculatePara=m_parameter+7/pow(10,Sumpoint);
Sumpoint++;
}
m_parameter=CalculatePara;
UpdateData(false);//TODO:
Addyourcontrolnotificationhandlercodehere
}
voidCCalculateDlg:
:
Onpara8()
{
UpdateData(true);
if(!
Ispoint)
{
CalculatePara=m_parameter*10+8;
}
else
{
CalculatePara=m_parameter+8/pow(10,Sumpoint);
Sumpoint++;
}
m_parameter=CalculatePara;
UpdateData(false);//TODO:
Addyourcontrolnotificationhandlercodehere
}
voidCCalculateDlg:
:
On