版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西南科技大学计算机学院实验报告实 验 名 称 计算器黑盒测试 实 验 地 点 实 验 日 期 指 导 教 师 学 生 班 级 学 生 姓 名 学 生 学 号 提 交 日 期 软件教研室制一、测试目的设计测试用例、使用各种测试方法进行计算器的测试,并对测试结果进行分析二、测试内容1.软件说明:实现一个小的计算器程序,只需要完成加、减、乘、除运算 ,设计测试用例,并对测试结果进行分析,同时计算器运行稳定。2、设计测试用例3、执行测试 4、测试结果分析5、源代码三、测试步骤 (一)、计算器界面2、设计测试用例(1)等价类测试:1、4个等价类测试用例的分析过程如下:测试用例加减乘除预期输出整型55+5
2、078-2415*2536/4正常运算小数25.3+12.714.3-11.725.6*12.850.2/20.7正常运算负数-20+-21(-15)-(-14)-12*-12-16/-5正常运算无效输入E1+t2G4-k5I5*l6Ff/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
3、 (其中算式写法错误导致正常运算错误)无效输入1 加(E1+t2):程序中无效数字无法正常输入,程序无法进行。2 减(G4-k5)程序中无效数字无法正常输入,程序无法进行。(同上)3 乘(I5*l6)程序中无效数字无法正常输入,程序无法进行。(同上)4 除(Ff/se)程序中无效数字无法正常输入,程序无法进行。(同上)5(2)边界值法设计测试:加法:1、 计算器4个标准等价类测试用例的分析过程如下:测试用例被加数加数预期输出Test1010正常运算Test2110正常运算Test34010正常运算Test455.510正常运算Test5-7010正常运算Test61010正常运算Test710
4、110正常运算Test8100不能运算Test9101正常运算Test101040正常运算Test111055.5正常运算Test1210-78正常运算Test1310100正常运算Test1410101正常运算2、 对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Test1结果:Test2结果:Test3结果:Test4结果:Test5结果:Test6结果:减法:1、 计算器4个标准等价类测试用例的分析过程如下:测试用例被减数减数预期输出Test1010正常运算Test2110正常运算Test34010正常运算Test455.510正常运算Test5-7810正常运算Test61
5、0010正常运算Test710110正常运算Test8100不能运算Test9101正常运算Test101040正常运算Test111055.5正常运算Test1210-78正常运算Test1310100正常运算Test1410101正常运算2、对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Test1结果:Test3结果:Test4结果:Test5结果:Test6结果:乘法1、计算器4个标准等价类测试用例的分析过程如下:测试用例被乘数乘数预期输出Test1050正常运算Test215正常运算Test32410正常运算Test455.510正常运算Test5-7810正常运算Tes
6、t610010正常运算Test710110正常运算Test8100不能运算Test9101正常运算Test101040正常运算Test111055.5正常运算Test1210-78正常运算Test1310100正常运算Test1410101正常运算2、对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Test1结果:Test3结果:Test4结果:Test5结果:Test6结果:除法1、计算器4个标准等价类测试用例的分析过程如下:测试用例被除数除数预期输出Test1010正常运算Test2110正常运算Test34010正常运算Test455.510正常运算Test5-7810正常运
7、算Test610010正常运算Test710110正常运算Test8100正常运算Test9101正常运算Test101040正常运算Test111055.5正常运算Test1210-78正常运算Test1310100正常运算Test1410101正常运算2、对应测试与结果:对应的部分的示图如下:Test1结果:Test2结果:Test3结果:Test8结果:附录:源代码CCalculateDlg:CCalculateDlg(CWnd* pParent /*=NULL*/): CDialog(CCalculateDlg:IDD, pParent)/AFX_DATA_INIT(CCalculat
8、eDlg)m_parameter = 0.0;/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);CalculatePara = 0;CalculateResult = 0;Ispoint = false;Sumpoint = 0;void CCalculateDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange
9、(pDX);/AFX_DATA_MAP(CCalculateDlg)DDX_Text(pDX, IDC_EDIT, m_parameter);/AFX_DATA_MAPBEGIN_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_para
10、1, 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,
11、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_MAPEND_MESSAGE_MAP()/ CCalculateDlg message handlersBOOL CCalculateDlg:On
12、InitDialog()CDialog:OnInitDialog();/ Add "About." menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL)CString strAboutMenu;
13、strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the application's main window is not a dialogSetIcon(m
14、_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization herereturn TRUE; / return TRUE unless you set the focus to a controlvoid CCalculateDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();
15、elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automatically done for you by the framework.void CCalculateDlg:OnPaint() if (IsIconic()CPaintDC dc(this);
16、/ device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height
17、() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CCalculateDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CCalculateDlg:Onclear() UpdateData(true);m_para
18、meter = 0;CalculatePara = 0;CalculateResult = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);/ TODO: Add your control notification handler code herevoid CCalculateDlg:Oncalculate() UpdateData(true);CalculatePara = m_parameter;switch(CalculateExpre)case'+':CalculateResult += CalculatePara;m
19、_parameter = CalculateResult;break;case'-':CalculateResult -= CalculatePara;m_parameter = CalculateResult;break;case'*':CalculateResult *= CalculatePara;m_parameter = CalculateResult;break;case'/':if (CalculatePara)CalculateResult /= CalculatePara;m_parameter = CalculateResul
20、t;elsem_parameter = 0;MessageBox("除数不能为零!");break;/ TODO: Add your control notification handler code hereCalculatePara = 0;CalculateResult = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);void CCalculateDlg:Onpara1() UpdateData(true);if (!Ispoint)CalculatePara = m_parameter*10 + 1;elseCa
21、lculatePara = m_parameter + 1/pow(10,Sumpoint);Sumpoint+;m_parameter = CalculatePara;UpdateData(false);/ TODO: Add your control notification handler code herevoid CCalculateDlg:Onpara2() UpdateData(true);if (!Ispoint)CalculatePara = m_parameter*10 + 2;elseCalculatePara = m_parameter + 2/pow(10,Sumpo
22、int);Sumpoint+;m_parameter = CalculatePara;UpdateData(false);/ TODO: Add your control notification handler code herevoid CCalculateDlg:Onpara3() UpdateData(true);if (!Ispoint)CalculatePara = m_parameter*10 + 3;elseCalculatePara = m_parameter + 3/pow(10,Sumpoint);Sumpoint+;m_parameter = CalculatePara
23、;UpdateData(false);/ TODO: Add your control notification handler code herevoid CCalculateDlg:Onpara4() UpdateData(true);if (!Ispoint)CalculatePara = m_parameter*10 + 4;elseCalculatePara = m_parameter + 4/pow(10,Sumpoint);Sumpoint+;m_parameter = CalculatePara;UpdateData(false);/ TODO: Add your contro
24、l notification handler code herevoid CCalculateDlg:Onpara5() UpdateData(true);if (!Ispoint)CalculatePara = m_parameter*10 + 5;elseCalculatePara = m_parameter + 5/pow(10,Sumpoint);Sumpoint+;m_parameter = CalculatePara;UpdateData(false);/ TODO: Add your control notification handler code herevoid CCalc
25、ulateDlg:Onpara6() UpdateData(true);if (!Ispoint)CalculatePara = m_parameter*10 + 6;elseCalculatePara = m_parameter + 6/pow(10,Sumpoint);Sumpoint+;m_parameter = CalculatePara;UpdateData(false);/ TODO: Add your control notification handler code herevoid CCalculateDlg:Onpara7() UpdateData(true);if (!I
26、spoint)CalculatePara = m_parameter*10 + 7;elseCalculatePara = m_parameter + 7/pow(10,Sumpoint);Sumpoint+;m_parameter = CalculatePara;UpdateData(false);/ TODO: Add your control notification handler code herevoid CCalculateDlg:Onpara8() UpdateData(true);if (!Ispoint)CalculatePara = m_parameter*10 + 8;
27、elseCalculatePara = m_parameter + 8/pow(10,Sumpoint);Sumpoint+;m_parameter = CalculatePara;UpdateData(false);/ TODO: Add your control notification handler code herevoid CCalculateDlg:Onpara9() UpdateData(true);if (!Ispoint)CalculatePara = m_parameter*10 + 9;elseCalculatePara = m_parameter + 9/pow(10
28、,Sumpoint);Sumpoint+;m_parameter = CalculatePara;UpdateData(false);/ TODO: Add your control notification handler code herevoid CCalculateDlg:Onpara0() UpdateData(true);if (!Ispoint)CalculatePara = m_parameter*10 + 0;elseSumpoint+;m_parameter = CalculatePara;UpdateData(false);/ TODO: Add your control notification handler code herevoid CCalculateDlg:Onpoint() Ispoint = true;Sumpoint = 1;/ TODO: Add your control notification handler code herevoid CCalculateDlg:Onminus() UpdateData(true);m_parameter = 0 - m_parameter;UpdateData(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《技术经济学》练习题集
- 青年教师演讲稿挥洒青春汗水追逐教育梦想
- 桂林24年小学四年级英语第三单元暑期作业
- 人教PEP版英语三年级下册期末重点复习与讲义
- 珠宝生产企业账务处理实例-记账实操
- 2023年高纯镓及氧化镓资金申请报告
- 2024年电动助力转向装置项目资金筹措计划书代可行性研究报告
- 2024年石材、石料加工品及制品项目投资申请报告代可行性研究报告
- 强化中学英语教学中的学法指导
- 2023年油冷器资金需求报告
- 设备设施检维修及验收记录表
- cia题库第二部分
- 南京旅游职业学院教师招聘考试真题2022
- 纯音听阈测试(曹永茂)
- 喉罩(LMA)-麻醉课件
- 生物医药强国战略研究
- 新课标背景下高中数学大单元教学的实施策略
- 司机入职申请表完整优秀版
- 中国近代史纲要3
- 无负压供水设备管网叠压无负压变频供水设备选型样本数据手册
- GMP质量管理体系文件 中药材干燥记录
评论
0/150
提交评论