计算器软件测试报告

合集下载

Win7计算器软件测试报告要点(可编辑修改word版)

Win7计算器软件测试报告要点(可编辑修改word版)

W i n7计算器功能测试报告目录1.前言 (1)1.1测试目的 (1)1.2测试背景 (1)2.测试软件 (1)2.1软件名称 (1)2.2获取方式 (1)2.3功能模块 (1)3.功能测试设计 (3)3.1测试目标 (3)3.2测试模块 (3)3.3等价类划分及测试用例 (4)4.功能测试实施 (8)4.1测试时间 (8)4.2测试过程及结果 (8)5.测试分析及缺陷描述 (11)5.1测试分析 (11)5.2缺陷描述 (12)6.附录—测试分工 (13)班级:信管 101姓名:褚伟梁1.前言1.1测试目的根据 Windows 7 计算器的帮助文档,制定对 Windows 7 计算器的测试用例,用来测试计算器功能。

包括:输入输出、计算换算、日期计算等。

根据本次测试来评估当前的计算器是否符合设计要求和使用要求,并进而做出测试分析报告。

1.2测试背景1)测试计划所从属的软件系统:Windows 7;2)在开始执行本测试计划之前必须完成的工作:需要阅读计算器的帮助文档。

2.测试软件2.1软件名称Windows7 自带计算器2.2获取方式2.3功能模块1)标准型(进行加减乘除百分制等简单运算)2)科学型(进行较为复杂的科学计算)3)程序员(二进制、八进制、十进制、十六进制之间的转换等)4)日期计算(计算两个日期之差或一个日期加上、减去到指定日期的天数)3.功能测试设计3.1测试目标该测试目标是核实数据的接受,处理和检索是否正确。

此类测试基于黑盒测试技术(手工测试),该技术通过图形界面与应用程序进行交互,并对交互的输出和结果进行分析,以此来核实应用程序及其内部进程。

3.2测试模块1)模块 1:执行基本的运算(功能模块 1&2)因果图:2)模块 2:执行进制的换算(功能模块 3)因果图:3)模块 3:执行日期计算功能(功能模块 4)3.3等价类划分及测试用例a.基本运算等价类(以科学型为主)b.基本运算测试用例c.进制换算等价类(基于四字)d.进制转换测试用例e.日期计算等价类f.日期计算测试用例4.功能测试实施4.1测试时间功能测试安排时间:5 天4.2测试过程及结果a.模块 1测试内容描述b.模块 2测试内容描述c.模块 3测试内容描述4.选择“”,进行如下计算8. 单击“计算”已输入在框中显示目标日期与预期一致5.测试分析及缺陷描述5.1测试分析经测试证实了的 Win7 系统自带的部分计算器功能符合要求,输出类型基本全部合理,测试输出结果与预期输出结果相同并无较大偏差,而且界面布局显示合理,能进行基本的十进制运算,输入数据和结果数据范围在-99…9(32位)到99…9(32位)之间,若超过 32 位,将以“1.e+33”的形式显示,且能进行简单的二进制,八进制,十进制,十六进制间的转换及运算,以四字二进制为准,输入数据和结果数据范围在-1…1(64位)到1…1(64位)之间,还能进行 1601.1.1 到9999.12.31 之间的日期计算。

计算器 实验报告

计算器 实验报告

计算器实验报告计算器实验报告引言:计算器是一种广泛应用于日常生活和工作中的电子设备。

它的出现极大地方便了人们的计算工作,提高了计算的准确性和效率。

本实验旨在深入了解计算器的原理和工作方式,并通过实际操作,探索计算器的功能和使用方法。

一、计算器的原理和结构计算器是一种基于数字电路和逻辑电路的电子设备。

它主要由处理器、显示屏、键盘和电源等组成。

处理器是计算器的核心部件,负责执行各种计算操作。

显示屏用于显示计算结果和输入的数据。

键盘则用于输入数字和操作符。

电源为计算器提供电能。

二、计算器的基本功能1. 四则运算:计算器可以进行加、减、乘、除等基本的四则运算。

用户只需按下相应的数字和操作符键,计算器即可自动完成计算,并在显示屏上显示结果。

2. 百分数计算:计算器还可以进行百分数的计算。

用户只需输入百分数和相应的操作符,计算器将自动将百分数转换为小数,并进行计算。

3. 平方根和乘方计算:计算器还具备开平方根和乘方的功能。

用户只需按下相应的键,输入要计算的数字,计算器将自动进行计算,并在显示屏上显示结果。

4. 括号和优先级计算:计算器支持括号和优先级计算。

用户可以使用括号来改变计算的顺序,并通过设置优先级来控制计算的顺序。

三、计算器的使用方法1. 数字输入:用户可以通过按下相应的数字键来输入数字。

计算器一般有0到9的数字键,用户可以按下多次来输入多位数。

2. 操作符输入:计算器一般有加、减、乘、除等操作符键。

用户可以按下相应的操作符键来输入操作符。

3. 清除和删除:计算器一般有清除和删除键。

用户可以使用清除键来清除计算器的显示屏和内存中的数据。

删除键则用于删除输入的数字和操作符。

4. 计算结果:用户可以按下等号键来计算结果。

计算器将根据输入的数字和操作符进行计算,并在显示屏上显示结果。

四、实验过程和结果在实验中,我们使用了一款普通的计算器进行操作。

首先,我们按下数字键输入了一组数字,然后按下操作符键进行四则运算。

简单计算器实验报告

简单计算器实验报告

简单计算器实验报告简单计算器实验报告引言:在现代社会,计算器已经成为人们生活中不可或缺的工具之一。

无论是在学校、办公室还是家庭,计算器都扮演着重要的角色。

本实验旨在设计和构建一个简单的计算器,并通过实验验证其功能和准确性。

实验步骤:1. 设计计算器的外观和功能:我们首先对计算器进行了外观设计,选择了简洁、易于使用的界面。

然后确定了计算器的基本功能,包括加法、减法、乘法和除法。

2. 选择合适的硬件和软件:为了构建计算器,我们选择了合适的硬件和软件。

硬件方面,我们选用了一块Arduino开发板、液晶显示屏和按键。

软件方面,我们使用了Arduino编程语言。

3. 连接硬件和编写代码:我们将液晶显示屏和按键与Arduino开发板连接起来,并编写了相应的代码。

代码中包括了计算器的逻辑运算和界面显示。

4. 测试计算器的功能和准确性:在完成硬件连接和代码编写后,我们对计算器进行了测试。

我们输入了一系列的算术表达式,包括简单的加减乘除运算,以及复杂的多步运算。

通过与手动计算的结果进行对比,我们验证了计算器的功能和准确性。

实验结果:经过多次测试,我们的计算器表现出了良好的功能和准确性。

无论是简单的加法还是复杂的多步运算,计算器都能够正确地给出结果。

液晶显示屏清晰地显示了算术表达式和计算结果,而按键的响应速度也非常迅速。

讨论:虽然我们的计算器在功能和准确性方面表现出色,但仍有一些改进的空间。

首先,我们可以增加更多的功能,如开方、求余等。

其次,我们可以改进界面设计,使其更加美观和易于使用。

此外,我们还可以考虑加入更强大的处理器和更大的内存,以提高计算器的性能。

结论:通过本次实验,我们成功设计和构建了一个简单的计算器,并验证了其功能和准确性。

计算器在各种算术运算中表现出色,并且具有清晰的界面和快速的响应速度。

然而,我们也意识到计算器仍有改进的空间,包括增加更多功能和改进界面设计。

总的来说,本次实验为我们深入了解计算器的原理和构造提供了宝贵的经验。

windows计算器测试报告-

windows计算器测试报告-

Windows计算器测试报告学号:姓名:专业:指导老师:2010年11月25日目录1. 项目简介 (3)1.1 目的 (3)1.2 项目简述 (3)1.3 定义 (3)1.4 参考文档 (3)2. 测试概要 (3)2.1 测试用例设计方法和工具 (3)2.2 测试环境与配置 (3)3. 测试情况 (4)3.1 测试版本情况 (4)3.2 差异 (4)3.3 测试充分性评价 (4)3.4 测试组织 (4)测试时间 (4)4. 测试结果及分析 (4)4.1 测试情况统计分析 (8)4.2 覆盖分析 (8)需求覆盖 (8)测试覆盖 (8)4.3 缺陷的统计与分析 (8)缺陷汇总 (8)4.4 缺陷分析 (9)5. 测试结论 (9)5.1 残留缺陷与未解决问题 (9)6. 批准 (9)windows计算器测试报告1.项目简介1.1编写文档目的本测试报告反映在<计算器>的一个版本内的质量情况。

包含该版本经开发部发布后测试组的接受结果与原因、存在的问题描述与分析。

Windows计算器的测试文档有助于实现以下目标:1.确定现有项目的信息和应测试的软件构件2.列出推荐的测试需求3.推荐可采用的测试策略,并对这些策略加以说明4.确定所需的资源,并对测试的工作量进行估计5.对整个测试工作的工作量进行估计6.对测试活动的进程进行有计划的实施7.列出测试项目的可交付元素1.2项目简述背景项目名称:计算器。

windows自带软件••••••••您可以使用计算器来执行加、减、乘和除运算。

计算器还提供了科学计算器和统计计算器的高级功能。

可以单击计算器按钮来执行计算,或者使用键盘键入进行计算。

通过按 Num Lock,数字键盘也可以用来键入数字和运算符。

1.3定义各种进制:十六进制、八进制、十进制、二进制。

1.4参考文档用到的参考资料:1)、Window计算器的帮助文档2)、《软件测试教程》宫云站机械工业出版社 2008年9月2.测试概要测试范围:本文档适用于windows计算器的功能测试。

计算器实验报告 (1)

计算器实验报告 (1)

HTML网页实验报告院系:计算机控制与工程学院班级:计124-1学号:姓名:完成日期:2014年12月18日一.实验名称:设计一个网页计算器二.需求分析:计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的工具。

要实现计算功能,可以用HTML的知识编写程序来解决此问题。

该计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度。

该计算器使用非常简单和方便,对广大学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用。

三.实验目的:1.熟悉html5图形用户界面的设计原理和程序结构2.能设计复核问题要求的图形用户界面程序3.熟悉javascript css、button和table的组合4.会应用button和table组件进行应用程序设计四.实验硬件软件环境:1.Dreamweaver开发环境五.详细内容:使用《网页设计与开发》课程讲授内容,编写一个简单的计算器,要求实现如下功能:1.进行图形界面设计通过图形界面设计,掌握文本框、标签及按钮的使用方法。

2.实现计算器的基本功能计算器的设计按软件工程的方法进行,网页具有良好的界面;必要的交互信息;简约美观的效果。

使用人员能快捷简单地进行操作。

即可单击按钮进行操作,也可直接通过键盘直接输入。

即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

包含的功能有:加、减、乘、除运算,开方、求倒数等功能.计算器的扩展功能包括乘方、对数、正弦、余弦、正切、余切、反正弦、反余弦、反正切、反余切等功能。

4.计算器工作流程图六.实验设计:1、实验算法设计<script type="text/javascript">// JavaScript Documentvar NUM=1var endNumber=truevar mem=0var carry=10var hexnum="0123456789abcdef"var angle="d"var stack=""var level="0"var layer=0function doit(){document.getElementById("txt1").value=eval(document.getElementById("txt 1").value) }function add(obj){ if(NUM==1) { document.getElementById("txt1").value+=obj.value;}else {clears();NUM=1; document.getElementById("txt1").value+=obj.value;}}function results(){var obj=document.getElementById("txt1").value;if(obj.indexOf("=")<0){NUM=0;if(bic==1){num=document.getElementById("txt1").value;document.getElementById("txt1").value=Math.pow(Num,num);bic=0;}else{document.getElementById("txt1").value=eval(obj);}}}//角度制和弧度制function inputChangAngle(a){endNumber=trueangle=aif (angle=="d")document.getElementById("txt1").value=radiansToDegress(document.getElem entById("txt1").value)elsedocument.getElementById("txt1").value=degressToRadians(document.getElem entById("txt1").value)endNumber=true}function degressToRadians(degress){return(degress*Math.PI/180)}function radiansToDegress(radians){return(radians*180/Math.PI) }//+/-function changeSign(){if (document.getElementById("txt1").value!="0")if(document.getElementById("txt1").value.substr(0,1) == "-") document.getElementById("txt1").value = document.getElementById("txt1").value.substr(1)elsedocument.getElementById("txt1").value = "-" + document.getElementById("txt1").value}//ln函数function ln10(){document.getElementById("txt1").value=Math.LN10}function clears(){ document.getElementById("txt1").value="";}function Cos(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=Math.cos(x); }function Sin(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=Math.sin(x);}function Tan(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=Math.tan(x);}function Atan(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=Math.atan(x);}function Acos(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=Math.acos(x);}function Asin(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=Math.asin(x);}//pi的值function pi(){var x=3.141592653589793;document.getElementById("txt1").value=x;}//E的值function e(){var x=2.718281828459045;document.getElementById("txt1").value=x;}function Sqrt(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=Math.sqrt(x);}function Pow(){Num=Number(document.getElementById("txt1").value);bic=1;clears();}function Square(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=x*x }function nation(){x=document.getElementById("txt1").value;y=document.getElementById("txt1").value;if(x==''||y='')alert('Error: Input Required');else document.getElementById("txt1").value=x*y;}function Log(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=Math.log(x); }function Round(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=Math.round(x); }function Ran(){x=document.getElementById("txt1").valuedocument.getElementById("txt1").value=Math.random(x); }function del(){x=document.getElementById("txt1").valuedocument.getElementById("txt1").value=x.substring(0,document.getElement ById("txt1").value.length-1)}function two(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=x/2;}function three(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=x/3;}function four(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=x/4;}function five(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=x/5;}function six(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=x/6;}function seven(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=x/7;}function X1(){x=document.getElementById("txt1").valueif(x==''||x=='0')alert('Error: Input Required');else document.getElementById("txt1").value=1/x;}function X2(){x=document.getElementById("txt1").valueif(x==''||x=='0')alert('Error: Input Required');else document.getElementById("txt1").value=2/x;}function X3(){x=document.getElementById("txt1").valueif(x==''||x=='0')alert('Error: Input Required');else document.getElementById("txt1").value=3/x;}function nine(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=x/9;}function ten(){x=document.getElementById("txt1").valueif(x=='')alert('Error: Input Required');else document.getElementById("txt1").value=x/10;}function adddel(){x=document.getElementById("txt1").value;if(x.indexOf('-')<0){ document.getElementById("txt1").value.indexOf('-' )=-x}else document.getElementById("txt1").value=-x;adddel();}</script>2、实验界面显示设计:运用<table>表格设计计算机基本页面显示,加上css设计表格样式:CSS代码:<style type="text/css" >#txt1{border:dashed 0px #000000;-moz-border-radius: 0px;-webkit-border-radius: 0px;border-radius: 0px;height:50px;width:400px;}input{border:inset 8px #0f191a;-moz-border-radius: 24px;-webkit-border-radius: 24px;border-radius: 24px;width:100px;}.STYLE3 {font-family: "新宋体"; font-weight: bold; font-size: xx-large;}</style>七.程序测试记录与结果说明:1、运行得出以下图片:角度制和弧度制:八.实验分工:九.总结经过了一个学期的HTML的学习,我们受益良多,最终设计出了一款网页计算器,虽然它有待进一步完善,但却融入了我们两人的心血,只要有所付出,就会有所收获。

计算器黑盒测试实验报告

计算器黑盒测试实验报告

西实科技验报算告?实验名称计算器黑盒测试I实验地点____________________实验日期_______________指导教师__________________学生班级________________学生姓名__________________学生学号_________________提交日期软件教研室制一、测试目的设计测试用例、使用各种测试方法进行计算器的测试,并对测试结果进行分析二、测试内容1•软件说明:实现一个小的计算器程序,只需要完成加、减、乘、除运算,设计测试用例,并对测试结果进行分析,同时计算器运行稳定。

2、设计测试用例3、执行测试4、测试结果分析5、源代码三、测试步骤(一)、计算器界面2、设计测试用例(1)等价类测试:1、4个等价类测试用例的分析过程如下: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+-217.减(-15)-(-14)8.乘-12*-129.除-16/-5(其中算式写法错误导致正常运算错误)无效输入1.加(E1+t2):程序中无效数字无法正常输入,程序无法进行。

2.减(G4-k5)程序中无效数字无法正常输入,程序无法进行。

(同上)3.乘(I5*l6)程序中无效数字无法正常输入,程序无法进行。

(同上)4.除(Ff/se)程序中无效数字无法正常输入,程序无法进行。

(同上)简易计食器1、计算器4个标准等价类测试用例的分析过程如下:测试用例被加数加数预期输出Testi 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 正常运算Testil 10 55.5 正常运算Test12 10 -78 正常运算Test13 10 100 正常运算2、对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Testi结果:Test2结果:Test3结果:Test4结果:Test5结果:Test6结果:减法:1、计算器4个标准等价类测试用例的分析过程如下:2、对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Testi结果:Test3结果:Test4结果:Test5结果:Test6结果:乘法1、计算器42、对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Testi结果:Test3结果:Test4结果:Test5结果:Test6结果:除法1、计算器4个标准等价类测试用例的分析过程如下:测试用例被除数除数预期输出Test2结果:Test3结果:Test8结果:附录:源代码CCalculateDlg::CCalculateDlg(CWnd* pParent /*=NULL*/):CDialog(CCalculateDlg::IDD, pParent){//{{AFX_DATA_INIT(CCalculateDlg)m_parameter = 0.0;//}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);CalculatePara = 0;CalculateResult = 0;Ispoint = false;Sumpoint = 0;} void CCalculateDlg::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_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////// // CCalculateDlg message handlersBOOL CCalculateDlg::OnInitDialog(){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;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_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 control}void CCalculateDlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialog::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); // 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() - cyIcon + 1) / 2;// Draw the icon dc.DrawIcon(x, y, m_hIcon);}else{CDialog::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_parameter = 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_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: 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;}else{CalculatePara = m_parameter + 1/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara2(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 2;elseCalculatePara = m_parameter + 2/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::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: Add your control notification handler code here }void 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 control notification handler code here }void CCalculateDlg::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: Add your control notification handler code here }void CCalculateDlg::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: Add your control notification handler code here }void CCalculateDlg::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: Add your control notification handler code here }void CCalculateDlg::Onpara8(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 8;}else{CalculatePara = m_parameter + 8/pow(10,Sumpoint);Sumpoint++;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara9(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 9;}else{CalculatePara = m_parameter + 9/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara0(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 0;}else{Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here void CCalculateDlg::Onpoint(){Ispoint = true;Sumpoint = 1;// TODO: Add your control notification handler code here}void CCalculateDlg::Onminus(){UpdateData(true);m_parameter = 0 - m_parameter;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onplus(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre = '+';m_parameter = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onsubtrack(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre =m_parameter = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onmultiply(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre = '*';m_parameter = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Ondivide(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre = '/';m_parameter = 0;Ispoint = false;UpdateData(false);// TODO: Add your control notification handler code here。

软件测试实验报告刘天元2011年40

实验报告黑龙江大学教务处目录引言 (3)1.1编写目的 (3)1.2项目背景 (3)1.3定义 (3)1.4参考资料 (3)实验名称 (4)实验目的 (4)实验要求 (4)实验类型 (4)实验环境 (4)测试计划 (4)测试结论 (20)评价 (21)引言1.1编写目的测试windows附件中的计算器的一些性能。

1.2项目背景Windows附件中的计算器我们无法查看源代码,所以要用黑盒测试计算器的一些功能1.3定义等价类划分以需求规格说明书为依据,不用考虑程序的内部结构,只参照对程序的要求和说明,通过分析说明书的各项需求,特别是功能需求,把对输入的要求和输出的要求区别开来,并把输入域分解成若干等价类,每个类中的一个典型值在测试中的作用与这一类中所有其他值的作用相同,因此可以在每个等价类中选用一组数据作为测试用例进行测试来发现程序中的错误。

等价类分为有效等价类和无效等价类两种类型。

有效等价类是指对于程序的规格说明来说是合理的输入数据构成的集合。

利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

无效等价类与有效等价类的定义相反。

设计测试用例时,要同时考虑这两种等价类。

因为软件不仅要能接收合理的数据,也要能经受不合理数据的考验,这样的测试才能确保软件具有更高的可靠性和坚固性。

边界值分析也是一种黑盒测试方法,是一种补充等价类划分的测试用例设计技术,它选择一组测试用例检查边界值。

它不是选择等价类的任意元素,而是选择等价类边界的测试用例。

在设计测试用例时,对边界处理必须给予足够重视,为检查边界的处理而专门设计测试用例,常常可以取得良好的测试效果。

提出边界条件时,一定要测试临近边界的合法数据以及刚超过边界的非法数据。

边界值分析的基本思想是使用最小值,略低于最小值、正常值、略高于最大值和最大值作为输入变量值。

1.4参考资料在“开始”菜单中搜索“计算器”,拼音字母不行哦~或者在“所有程序”-“附件”中找到“计算器”。

计算器_实验报告

一、实验目的1. 熟悉计算器的基本原理和设计方法。

2. 掌握计算器程序的设计与实现。

3. 提高编程能力和软件工程实践能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:Java3. 开发工具:Eclipse三、实验内容1. 计算器界面设计2. 计算器功能实现3. 计算器测试与优化四、实验步骤1. 计算器界面设计(1)创建一个Java项目,命名为“Calculator”。

(2)在项目中创建一个名为“CalculatorFrame”的类,继承自JFrame。

(3)在“CalculatorFrame”类中,创建一个JPanel作为计算器的面板,命名为“calculatorPanel”。

(4)在calculatorPanel中,添加一个JTextField作为显示输入和计算结果的文本框,命名为“resultField”。

(5)添加一个JButton数组,作为计算器的按钮,包括数字按钮、运算符按钮和功能按钮。

(6)为每个按钮设置事件监听器,实现按钮点击事件。

2. 计算器功能实现(1)在“CalculatorFrame”类中,定义一个私有成员变量,用于存储当前输入的字符串。

(2)为每个按钮的事件监听器添加逻辑,实现以下功能:- 数字按钮:将按钮对应的数字字符串添加到当前输入字符串中。

- 运算符按钮:将当前输入字符串、运算符和下一个输入字符串组合成一个表达式,并计算结果。

- 功能按钮:实现计算器的其他功能,如清除、求倒数、开平方等。

(3)计算结果存储在resultField中。

3. 计算器测试与优化(1)对计算器进行测试,确保所有功能正常运行。

(2)优化计算器的性能,提高计算速度。

(3)美化计算器界面,提高用户体验。

五、实验结果与分析1. 实验结果成功设计并实现了一个具有基本功能的计算器,界面简洁、操作方便。

2. 实验分析(1)通过学习计算器的基本原理和设计方法,掌握了计算器程序的设计与实现。

java 计算器实验报告

java 计算器实验报告Java计算器实验报告引言:计算器是我们日常生活中常用的工具,使用计算器可以快速进行数学运算。

在计算器中,我们可以通过输入数字和运算符来执行各种算术操作。

为了更好地理解计算器的工作原理,我们进行了Java计算器的实验。

一、实验目的本次实验的目的是设计和实现一个简单的Java计算器。

通过这个实验,我们可以加深对Java编程语言的理解,并且掌握Java图形用户界面(GUI)的基本知识。

二、实验环境本次实验使用的是Java开发工具包(JDK)和Eclipse集成开发环境(IDE)。

在实验之前,我们需要确保已经正确安装了JDK和Eclipse。

三、实验步骤1. 创建一个新的Java项目,并命名为"Calculator"。

2. 在项目中创建一个新的Java类,命名为"CalculatorGUI"。

3. 在"CalculatorGUI"类中,创建一个窗口,并设置窗口的标题和大小。

4. 在窗口中添加一个文本框,用于显示计算结果。

5. 在窗口中添加一些按钮,用于输入数字和运算符。

6. 为每个按钮添加事件监听器,以便在用户点击按钮时执行相应的操作。

7. 实现计算器的基本功能,包括加法、减法、乘法和除法。

8. 运行程序,测试计算器的功能。

四、实验结果经过实验,我们成功地实现了一个简单的Java计算器。

用户可以通过按钮输入数字和运算符,并且计算器可以正确地执行相应的运算。

计算结果会显示在文本框中。

五、实验总结通过这个实验,我们学习了如何使用Java编程语言创建图形用户界面,并且掌握了Java计算器的基本实现方法。

在实验过程中,我们遇到了一些问题,比如如何处理用户输入错误的情况,如何处理除数为零的情况等。

通过不断调试和改进,我们最终解决了这些问题,并实现了一个功能完善的计算器。

在今后的学习和工作中,我们可以进一步扩展这个计算器的功能,比如添加科学计算功能、实现复杂运算等。

win7计算器软件测试

软件测试报告班级:计科142姓名:***学号:************系别:信息技术系专业:计算机科学与技术指导老师:***目录1.前言 (2)1.1测试目的 (2)1.2测试背景 (2)2.测试计划 (2)2.1测试计划名称 (2)2.2项目背景和内容概要 (2)2.3相关资料、缩略语、定义 (2)2.4参考资料: (3)2.5测试过程 (3)2.6测试目标 (3)2.7测试分工 (3)2.8测试步骤及方法 (3)2.9测试通过标准 (3)2.10修正错误并重新测试的步骤与要求 (3)2.11进度计划 (3)2.12测试小结 (4)2.13测试用例的简单描述 (4)2.14需求跟踪 (4)3.性能测试用 (4)3.1测试用例的目的 (4)3.2测试用例的输入 (4)3.3期待的输出 (5)3.4测试方法 (6)3.5实际的输出 (6)4.设计测试环境 (8)4.1软件: (8)4.2硬件: (8)4.3网络环境: (8)4.4测试工具: (8)5.测试软件 (9)5.1软件名称 (9)5.2获取方式 (9)5.3功能模块 (10)6.功能测试计划 (12)6.1测试目标 (12)6.2测试模块 (12)6.3等价类划分及测试用例 (12)7.测试实施 (14)7.1测试时间 (14)7.2测试过程及结果 (14)8.测试分析及缺陷描述 (15)8.1测试分析 (15)8.2缺陷描述 (15)9.实验总结 (16)1.前言1.1测试目的根据Windows 7计算器的帮助文档,制定对Windows 7计算器的测试用例,用来测试计算器功能。

包括:输入输出、计算换算、日期计算等。

根据本次测试来评估当前的计算器是否符合设计要求和使用要求,并进而做出测试分析报告。

1.2测试背景1)测试计划所从属的软件系统:Windows 7;2) 在开始执行本测试计划之前必须完成的工作:需要阅读计算器的帮助文档。

2.测试计划2.1测试计划名称Windows 7计算器的测试2.2项目背景和内容概要该项目是自己找的,委托单位是老师,开发单位主管单位都是window公司的员工。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

江西工业职业技术学院毕业综合实践课题名称:安卓手机计算器作者:廖杰学号:20112715 分院:电子与信息工程分院专业:计算机网络技术指导老师:占华为专业技术职务讲师2013年 11 月 14日一、问题描述:用Java实现求两整数的加、减、乘、除运算结果,要求两整数的范围都是[0,100]。

从键盘输入数m,数n,判断他们的范围,若不在[0,100]范围内,则输出提示语,要求重新输入,并且在做除法运算时,当除数为0时,输出提示语,说明除数不能为0。

将两数的范围定在[0,100],以更好的进行边界值分析,等价类测试等黑盒测试方法;为充分体现白盒测试的特点,有些地方故意用了if-else语句,while循环;另外,加、减、乘、除运算分别用了四个函数来计算,这样既可以在主函数中调用,又可以在Junit框架中分别对这四种运算进行测试。

二、程序源代码:1. import java.util.Scanner;2. public class Computer {3. private int a;4. private int b;5. public Computer (int x,int y) //构造函数,初始化6. {7. a=x; //注意:Juint中需要输入测试值在0~100范围内8. b=y;9. }10. public double add() //加法11. {12. return a+b;13. }14. public double minus() //减法15. {16. return a-b;17. }18. public double multiply() //乘法19. {20. return a*b;21. }22. public double divide() //除法,要求除数不能为0,否则输出提示语23. {24. if(b!=0)25. return a/b;26. else27. System.out.println("除数不能为0!");28. return 0;29. }30. public static void main(String[] args)31. {32. Scanner scanner = null;33. scanner = new Scanner(System.in);34. System.out.println("请输入0~100的两个m,n整数:");35. System.out.println("请输入第一个数:");36. while(true){ //若输入值不在要求范围内,则有循环直到输入正确为止37. int m = scanner.nextInt();38. if(m>=0&&m<=100)39. {40. System.out.println("请输入第二个数:");41. while(true){42. int n = scanner.nextInt();43. if(n>=0&&n<=100)44. {45. Computer cpt=new Computer(m,n);46. System.out.println("运算结果是:");47. System.out.println("加法:"+m+"+"+n+"="+cpt.add());48. System.out.println("减法:"+m+"-"+n+"="+cpt.minus());49. System.out.println("乘法:"+m+"*"+n+"="+cpt.multiply();50. System.out.println("除法:"+m+"/"+n+"="+cpt.divide());51. }52. else53. System.out.print("输入n值不在要求区间,请重新输入n:\n");54. }55. }56. else57. System.out.print("输入m值不在要求区间,请重新输入m:\n");58. }59. }60. }三、黑盒测试:1、边界值测试:1.1、边界值分析:输入要求是0~100之间的整数,因此产生了0和100两个边界,边界值分析可产生4*2+1=9个测试用例。

可构造(50,0)、(50,1)、(50,50)、(50,99)、(50,100)、(0,50)、(1,50)、(99,50)、(100,50) 这9组测试用例。

表1 边界值分析测试用例用例m n 预期输出(+、-、*、/) 实际输出(+、-、*、/)1 50 0 50.0、50.0、0.0、除数不为0!50.0、50.0、0.0、0.02 50 1 51.0、49.0、50.0、50.0 51.0、49.0、50.0、50.03 50 50 100.0、0.0、2500.0、1.0 100.0、0.0、2500.0、1.04 50 99 149.0、-49.0、4950.0、0.505 109.0、-9.0、2950.0、0.50505050505050515 50 100 150.0、-50.0、5000.0、0.5 150.0、-50.0、5000.0、0.56 0 50 50.0、-50.0、0.0、0.0 50.0、-50.0、0.0、0.07 1 50 51.0、-49.0、50.0、0.02 51.0、-49.0、50.0、0.028 99 50 149.0、49.0、4950.0、1.98 149.0、49.0、4950.0、1.989 100 50 150.0、50.0、500.0、2.0 150.0、50.0、500.0、2.0在该测试时,发现(50,0)这个测试的除法的预期输出和实际输出不一致,是因为代码中return 0;当除数n=0时,实际返回的是0.0。

public double divide(){if(b!=0)return a/b;elseSystem.out.println("除数不能为0!");return 0; //出现Bug}1.2健壮性测试:健壮性测试可产生6*2+1=13个测试用例,在上面边界值分析测试用例的基础上再添加(50,-1)、(50,101)、(-1,50)、(101,50)这4个测试用例即可。

表2 健壮性测试用例用例m n 预期输出(+、—、*、/)实际输出10 50 -1 49.0、51.0、-50.0、-50.0 输入n值不在要求区间11 50 101 151.0、-51.0、5050.0、0.495 输入n值不在要求区间12 -1 50 49.0、-51.0、-50.0、-0.02 输入m值不在要求区间13 101 50 151.0、51.0、5050.0、2.02 输入m值不在要求区间2、等价类测试:规定了输入值m,n的范围[0,100],则变量的有效等价类:M1={m:0≤m≤100}N1={n:0≤n≤100}变量的无效等价类:M2={m:m≤0}M3={m:m≥100}N2={n:n≤0}N3={n:n≥0}2.1、弱一般等价类测试:该测试可用每个等价类的一个变量实现,可生成1个测试用例。

2.2、强一般等价类测试:该测试基于多缺陷假设,需要1*1=1个测试用例。

表3 强、弱一般等价类测试用例用例m n 预期输出(+、—、*、/)实际输出WN1,SN150 50 100.0、0.0、2500.0、1.0100.0、0.0、2500.0、1.0 2.3、弱健壮等价类测试:该测试基于单缺陷假设,不仅对有效值测试,还考虑了无效值,可生成1+2+2=5个测试用例。

表 4 弱健壮等价类测试用例用例m n 预期输出(+、—、*、/)实际输出WR150 50 100.0、0.0、2500.0、1.0100.0、0.0、2500.0、1.0 WR250 -1 49.0、51.0、-50.0、-50.0输入n不在要求区间WR3 50 101 151.0、-51.0、5050.0、0.495 输入n不在要求区间WR4 -1 50 49.0、-51.0、-50.0、-0.02 输入m不在要求区间WR5 101 50 151.0、51.0、5050.0、2.02 输入m不在要求区间2.4、强健壮等价类测试:该测试基于多缺陷假设,从所有等价类笛卡尔积的每个元素中获得测试用例,可生成(1+2)*(1+2)=9个测试用例。

表5 弱健壮等价类测试用例用例m n 预期输出(+、—、*、/)实际输出SR1-1 -1 -2.0、0.0、1.0、1.0输入m值不在要求区间SR2-1 50 49.0、-51.0、-50.0、-0.02 输入m值不在要求区间SR3 -1 101 100.0、-102.0、-101.0、0099输入m值不在要求区间SR4 50 -1 49.0、51.0、-50.0、-50.0输入n值不在要求区间SR5 50 50 100.0、0.0、2500.0、1.0 100.0、0.0、2500.0、1.0 SR6 50 101 106.0、-51.0、5050.0、0.495输入m值不在要求区间SR7 101 -1 100.0、102.0、-101.0、-101.0输入m值不在要求区间SR8 101 50 151.0、51.0、5050.0、20.2输入m值不在要求区间SR9 101 101 202.0、0.0、10201.0、1.0输入m值不在要求区间3、因果图:C1:输入m值在[0,100]内 C2:输入n值在[0,100]内e1:输出结果 e2:输入m值不在区间 e3:输入n值不在区间3.基于决策表的测试:变量的有效等价类:M1={m:0≤m≤100}N1={n:0≤n≤100}变量的无效等价类:M2={m:m≤0}M3={m:m≥100}N2={n:n≤0}N3={n:n≥0}表6 基于决策表的测试用例桩 1 2 3 4C1:第一个数在:C2:第二个数在:M1N1M1N2,N3M2,M3N1M2,M3N2,N3 C1e1e2C2e3mA1:正常输出结果:A2:输入m值不在要求区间,重新输入A3:输入n值不在要求区间,重新输入XXX XX二、白盒测试:1.测试覆盖指标:流程图:afF TbdFF Tc1.1、语句覆盖:每个可执行的语句必须至少执行一次,则测试用例:表 7 语句覆盖测试用例测试用例通过路径条件取值m1=-1,m2=1;n1=101,n2=99 a,f,b,d,c F1,T1,F2,T2入口m>=0&&m<=100执行语句块1n>=0&&n<=100执行语句块2出口执行语句块4执行语句块5执行语句块31.2、(判定)分支覆盖:每个判定必须至少获得一次“真”值和“假”值,则测试用例:表 8(判定)分支覆盖测试用例通过路径条件取值m=1,n=99 a,b,c T;Tm1=-1,m2=1,n=99 a,f,b,c F1,T1;T2m=1,n1=-1,n2=99 a,b,d,c T;F1,T1m1=-1,m2=1;n1=101,n2=99 a,f,b,d,c F1,T1;F2,T2 1.3、条件判定覆盖:每个判定中的每个条件的所有可能值(真/假)至少出现一次并且每个判定本身的结果(真/假)也至少出现一次,则测试用例:表 9 条件判定覆盖测试用例通过路径条件取值m=1,n=99 a,b,c T,T1.4、路径覆盖:测试用例要求覆盖所有可能的路径:表10 路径覆盖测试用例通过路径条件取值m1=-1,m2=1;n1=101,n2=99 a,f,b,d,c F1,T1,F2,T22.基路径测试:(为简便画图,开始点从主要代码第36行开始,其他无分支节点用省略号表示)1(从节点1到节点36)...(从节点43到51) ...所以:圈复杂度V(G)= 54个独立路径为:P1:1,...,36,37,38...42,43...54,55,58,59,60P2:1,...,36,37,56,57,58,59,60P3:1,...,36,37,38...42,52,53,54,55,58,59,60P4:1,...,36,37,38...42,43...54,42,52,53,54,55,58,59,60 P5:1,...,36,37,56,57,58,36,37,56,57,58,59,6051 53585960365443 52424157403938 563755三、Junit动态测试:import junit.framework.TestCase; //引入Junit框架中所有类public class ComputerTest extends TestCase {private Computer a; //定义变量private Computer b;private Computer c;private Computer d;public ComputerTest (String name) {super(name); //构造函数,使用super关键字直接引用父类TestCase的构造函数}protected void setUp() throws Exception {super.setUp(); //建立环境,可以进行一些测试数据的初始化,还可以把数据库联接写在此处,以减少重复性工作,提高效率a = new Computer(1,99);b = new Computer(101,5);c = new Computer(1,2);d = new Computer(1,0);}protected void tearDown() throws Exception {super.tearDown();}public void testComputer() {int x=1;int y=1;assertSame(x,y); //assertSame() }public void testAdd() { //加法测试assertEquals(100.0, a.add());}public void testAdd1() {assertEquals(106.0, b.add()); //输入值超出要求范围 ,测试失败,因为要求0~100范围,所以,在构造Computer()函数时,要规定变量x,y的范围}public void testMinus() { //减法测试assertEquals(-89,a.minus()); //预期值和结果不相等,测试失败}public void testMinus1() {assertEquals(-89.0,a.minus());}public void testMultiply() {assertEquals(2.0,c.multiply());}public void testMultiply1() {Object tx = null;try{assertEquals(2.0,c.multiply());//c.multiply()的正常结果是2.0,所以在此不应抛出异常fail("should have thrown an exception"); //上面不抛出异常,不执行fail()}catch (Exception e) {tx = e;}assertNotNull(tx); //断言tx不为空,则一定有异常}public void testDivide() {assertEquals(0.0,d.divide()); //因divide()函数中,当d=0时,返回0.0,所以这里测试应该成功,虽然希望得到“被除数不能为0!”的情况}public void testDivide1() {assertEquals(0.5, c.divide());}public void testEmpty(){try{c.divide();fail("should have thrown an exception ");}catch(RuntimeException Ex){assertTrue(true); //assertTrue(true);}}}截图:(1)、测试testAdd1()时,由于b=newComputer(101,5);assertEquals(106.0, b.add());输入值范围超出定义范围,测试异常;(2)、测试testMinus()时,assertEquals(-89,a.minus());预期值和实际值不相同,测试异常;(3)、测试testMultiply()时,断言不为空,抛出异常Junit集成测试:在Junit中,Test Case总是对所有方法进行测试,而Test Suite中可对其中的一部分方法测试,而且一个测试类中还可以包含其他测试类。

相关文档
最新文档