搜档网
当前位置:搜档网 › JUnit in java单元测试用例实战

JUnit in java单元测试用例实战

JUnit in java单元测试用例实战
JUnit in java单元测试用例实战

JUnit in java单元测试用例实战

单元测试基础

当今软件测试十分盛行时,本人通过项目实践和个人亲身体会浅谈单元测试,本人一直坚持“用代码说话的原则”,同时也希望个人能给出宝贵意见,共同探讨、共同进步,为中国软件事业有更大的发展共同奋斗!

最早我们项目组开发的项目时,写代码都是从底层一直写到表现层到jsp,然后开发人员在web层调试页面,近乎98%都会报一大堆exception,然后再在代码中加断点一步一步查到底哪一层代码出现问题……,比较好点做法就是在各个类中加上main方法测试,但总体很不理想,给web层开发人员的调试和质量控制人员带来繁重的工作压力;使用单元测试后,针对每一个方法都做严格的把关,大大减少调试的时间;同时质量控制人员返回过来的bug 少了近60%,现在对于开发人员写测试用例非常熟练,并且本人根据实际情况对测试用例做了点小小改动(这部分主要在后面代码中详述),带来很好的效果!

单元测试到底给实际开发带来什么好处那?

(1)首先对于开发人员来说大大减少调试工作的时间,同时也规范了对于代码安全管理(我们知道那些方法是可以调用的);

(2)对于整个项目来说,有了完整的测试,保证项目最后交付测试有了可靠依据;

(3)对于测试人员大大减少bug的反馈;

(4)对于项目经理整个项目达到很好的可控;

(5)最主要的完整的单元测试给后期维护人员带来很大的便捷!

单元测试好处可能还有很多,但本人只能理解和感悟这么多,希望观者补充!

单元测试配置:

将使用eclipse+myEclopse给大家介绍关于JUNIT的环境的简单配置;右键点击项目选择“属性”,在弹出窗口中到环境变量中添加junit.jar包,这样下一步我们就可以进行单元测试了;

使用eclipse快速开发test Case:

如下图:右键选择你要测试的类,在新建中点击“JUnit测试用例”,

如下图:右键选择你要测试的类,在新建中点击“JUnit测试用例”,

弹出对话框,配置测试名称和根目录,添加注释等,再点击“下一步”到下图:

选择你要测试类中的方法,点击完成!便生成测试类的基本框架,如下代码,我们以对一个DAO类测试为例:

JUnit单元测试一共要注意一下几点:

(1)import junit.framework.TestCase和junit.textui.TestRunner;

(2)继承junit.framework.TestCase;

(3)自行添加一个main方法中调用TestRunner.run(测试类名.class);

(4)有一个调用super(String)的构造函数;

以上都是JUnit必有的特征,除以上外,我们发现有许多以test开头的方法,而这些方法正是我们要测试的方法,Junti测试其实采用的是断言的方式,只要我们在所有test开头中的方法对数据添加断言方法,同时提供很多断言的方法。

用Junit测试计算器单元对象类

实验报告五 课程名称:软件测试 学生姓名:董月 班级:浦计1104班 学号:P1401110402 指导教师:韩志刚 实验日期:2014-5-8 南京工业大学电子与信息学院

实验五 一、实验内容 用java语言编写一个计算器类,求实现加、减、乘、除、求平方根、求绝对值、求倒数1/x,方法,并用junit进行对象类的单元测试。参阅帮助文档。(说明,设计求除法、求倒数的方法,可在方法中不检测x是否为0,测试用例用y/0去测试、求平方根可不检测x>0,用负数测试) 二、实验步骤 首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。 建立一个hzg包: 建立一个Calculator类:

把代码输进类中: package hzg; public class Calculator { private static int result; // 静态变量,用于存储运行结果 public void add(int n) { result = result + n; } public void substract(int n) { result = result - 1; //Bug: 正确的应该是result =result-n } public void multiply(int n) { result=result*n; } public void divide(int n) { result = result / n; } public void square(int n) { result = n * n; } public void squareRoot(int n) { result= (int) Math.sqrt(n); } public void clear() { // 将结果清零 result = 0; } public void reciprocal(int n) { result=1/n; } public void absolute(int n) { result=Math.abs(n); } public int getResult() { return result; } }

15个经典JAVA小程序集

import java.util.Scanner; public class Example1 { public static void main(String[] args) { Scanner sc=new Scanner(System.in);//输入一个数字 int score=sc.nextInt();//将数字放入整型score中 if(score>0)//if语句进行判断 { if(score>=90) { System.out.println("你很棒!"); } else if(score>=60&&score<90) { System.out.println("你很不错!"); } else System.out.println("你得加油!"); } else System.out.println("你输入的数字不正确!"); } } import java.util.Scanner; public class Example2 { public static void main(String[] args) { Scanner sc=new Scanner(System.in);//动态输入任意两个数int a=sc.nextInt();

int b=sc.nextInt(); if(a>b)//if语句比较大小 { System.out.println("你所输入的最大值:"+a); System.out.println("你所输入的最小值:"+b); } else if(a

如何编写单元测试用例(白盒测试)

如何编写单元测试用例(白盒测试)。 一、单元测试的概念 单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入(测试用例)测试函数是否功能正常,并且返回了正确的输出。 测试的覆盖种类 1.语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次。 2.判定覆盖(也叫分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次。 3.条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次。 4.判定——条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次,并且每个可能的判断结果也至少执行一次。 5.条件组合测试:设计足够的测试用例,运行所测程序,使程序中每个判断的所有条件取值组合至少执行一次。 6.路径测试:设计足够的测试用例,运行所测程序,要覆盖程序中所有可能的路径。 用例的设计方案主要的有下面几种:条件测试,基本路径测试,循环测试。通过上面的方法可以实现测试用例对程序的逻辑覆盖,和路径覆盖。 二、开始测试前的准备

在开始测试时,要先声明一下,无论你设计多少测试用例,无论你的测试方案多么完美,都不可能完全100%的发现所有BUG,我们所需要做的是用最少的资源,做最多测试检查,寻找一个平衡点保证程序的正确性。穷举测试是不可能的。所以现在进行单元测试我选用的是现在一般用的比较多的基本路径测试法。 三、开始测试 基本路径测试法:设计出的测试用例要保证每一个基本独立路径至少要执行一次。 函数说明:当i_flag=0;返回 i_count+100 当i_flag=1;返回 i_count *10 否则返回 i_count *20 输入参数:int i_count , int i_flag 输出参数: int i_return; 代码: 1int Test(int i_count, int i_flag) 2 {

一个简单的java窗体下载小程序(完整代码)

首先,这只是一个很简单的程序,所以大神请绕道。 心血来潮,用java编写了一个能访问http链接,并能下载文件的窗体小程序。实测能够正确下载17M的压缩包,图片,文档,html等。但是因为程序效率低下,于是没有继续测试更大的压缩文件(问题可能在于保存输入流到缓冲区的数组)。 程序已打包jar可执行文件,并将代码一齐打包到jar中。为方便使用jar,使用word 文档对象包装了它,将下面的对象(显示为一个图标)拖到桌面或者其他文件夹,即可得到该程序: java下载小程序.jar 也可以右击,激活内容,直接运行。 程序运行效果如图: 该测试链接来自pc6,下载结果为:

文件顺利打开。 程序主要使用了url访问http地址,并获取输入流,创建本地文件,输出读取的数据到本地文件中。其他部分则是窗体。 以下是全部代码: 同样是word对象,直接拖到桌面即可。 显示窗体的ui包: DownloadWin.java MainWin.java 分割字符串的util包: SplitString.java 监听事件的listener包: DownloadListener.java

其中,ui包: MainWin.java package 下载.ui; public class MainWin { public static void main(String[] args) { DownloadWin win = new DownloadWin("下载"); } } DownloadWin.java package 下载.ui; import java.awt.FlowLayout; import java.awt.GridLayout; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import 下载.listener.DownloadListener; public class DownloadWin extends JFrame{ /** * */ private static final long serialVersionUID = -7226361346020458023L; private JTextField httpLine; private JTextField savePath; private JButton btnDownload; private JLabel lineLabel; private JLabel saveLabel; private static JLabel infoLabel; public DownloadWin(String title) { init();

Junit单元测试技术

JUnit单元测试 (一)、JUnit介绍: 测试对于保证软件开发质量有着非常重要的作用,单元测试更是必不可少,JUnit是一个非常强大的单元测试包,可以对一个/多个类的单个/多个方法测试,还可以将不同的TestCase组合成TestSuit,使测试任务自动化。Eclipse同样集成了JUnit,可以非常方便地编写TestCase。 (二)、为什么使用JUnit? 不知道大家以前在对自己的项目是怎么进行测试的。反正我的测试方法是在一个类中都写一个main函数,然后根据类中方法的参数传入相应的值。这样做很麻烦,最大的缺点就是如果项目功能模块很多的话,那就完了。:) (三)、eclipse中建立一个完整的单元测试 Junit3 package cn.itcast.example; public class Demo1 { private int n; public Demo1(int n) { this.n = n; } // 返回绝对值: public int foo() { return n>0 ? n : (-n); } } package cn.itcast.example; public class Demo2 { public int add(int x, int y) { return x + y; } public static int divide(int x, int y) { return x / y; } public static int multiple(int x, int y) { return x * y; } } 测试用例

public class Demo1Test extends TestCase { private Demo1 s1, s2; protected void setUp() throws Exception { s1 = new Demo1(10); s2 = new Demo1(-7); } protected void tearDown() throws Exception { } public void testFoo() { assertTrue(s1.foo()==10); assertTrue(s2.foo()==7); } } public class Demo2Test extends TestCase { Demo2 demo; protected void setUp() throws Exception { super.setUp(); demo = new Demo2(); System.out.println("go........."); } protected void tearDown() throws Exception { super.tearDown(); } public void testAdd() { assertEquals(7, demo.add(3, 4)); } public void testDivide() { assertEquals(4, demo.divide(8, 2)); } public void testMultiple() { assertEquals(20, demo.multiple(4, 5)); } } public class AllTests {

java经典的小程序详尽代码

1,编写程序,判断给定的某个年份是否是闰年。 闰年的判断规则如下: (1)若某个年份能被4整除但不能被100整除,则是闰年。 (2)若某个年份能被400整除,则也是闰年。 import Bissextile{ public static void main(String[] arge){ "请输入年份"); int year; .....+aaaaaaaaa=? 其中a为1至9之中的一个数,项数也要可以指定。 import Multinomial{ public static void main(String[] args){ int a; ...前20项之和? class Sum{ public static void main(Sting[] args){ double sum=0; double fenZi=, fenMu=; ..... 打印出第一个大于小于的值 class Pi { public static void main(String[] args){ double pi =0; .. fenMu += ; .. 每项递加2 } } } 输出结果为pi = ,应该不精确 12、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值 1 1 2 3 5 8 13 21 34 规律:一个数等于前两个数之和 ....的值。 a,求出前50项和值。 b,求出最后一项绝对值小于1e-5的和值。 15、在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下: * ***

***** ******* ********* 定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。 class ArrayNumber{ public static void main(String[] args){ int[] arrayNumber; arrayNumber = new int[10]; "以下是随机的10个整数:"); 义一个int型的一维数组,包含10个元素,分别赋值为1~10,然后将数组中的元素都向前移一个位置, 即,a[0]=a[1],a[1]=a[2],…最后一个元素的值是原来第一个元素的值,然后输出这个数组。 3. 定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0~100之间的随机整数, 将它们存储到一维数组中,然后统计成绩低于平均分的学员的人数,并输出出来。 4. (选做)承上题,将这40个成绩按照从高到低的顺序输出出来。 5,(选做)编写程序,将一个数组中的元素倒排过来。例如原数组为1,2,3,4,5;则倒排后数组中的值 为5,4,3,2,1。 6,要求定义一个int型数组a,包含100个元素,保存100个随机的4位数。再定义一个 int型数组b,包含10个元素。统计a数组中的元素对10求余等于0的个数,保存到b[0]中;对10求余等于1的个数,保存到b[1]中,……依此类推。 class Remain{ public static void main( String[] args){ int[] a = new int[100]; 约梭芬杀人法 把犯人围成一圈,每次从固定位置开始算起,杀掉第7个人,直到剩下最后一个。 11_2、用数组实现约瑟夫出圈问题。 n个人排成一圈,从第一个人开始报数,从1开始报,报到m 的人出圈,剩下的人继续开始从1报数,直到所有的人都出圈为止。对于给定的n,m,求出所有人的出圈顺序。 12. 判断随机整数是否是素数 产生100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是? public class PrimeTest{ public static void main(String args[]){ for(int i=0;i<100;i++){

在Eclipse中使用JUnit4进行单元测试

在Eclipse中使用JUnit4进行单元测试 首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。这个类并不是很完美,我们故意保留了一些Bug用于演示,这些Bug在注释中都有说明。该类代码如下:

第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,如图: 在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮,如下图所示: 然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了。 第三步,生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,选择“New à JUnit Test Case”。如下图所示: 在弹出的对话框中,进行相应的选择,如下图所示:

点击“下一步”后,系统会自动列出你这个类中包含的方法,选择你要进行测试的方法。此例中,我们仅对“加、减、乘、除”四个方法进行测试。如下图所示: 之后系统会自动生成一个新类CalculatorTest,里面包含一些空的测试用例。你只需要将这些测试用例稍作修改即可使用。完整的CalculatorTest代码如下:

第四步,运行测试代码:按照上述代码修改完毕后,我们在CalculatorTest类上点右键,选择“Run As à JUnit Test”来运行我们的测试,如下图所示: 运行结果如下:

软件测试方案模板(by LJ.)

测试方案模板 Edit by LJ. 1 概述 1.1 编写目的 [说明编写本测试方案的目的是为软件开发项目管理者、软件工程师、系统维护工程师、测试工程师提供关于**系统整体系统功能和性能的测试指导。] 1.2 读者对象 [本测试方案可能的合法读者对象为软件开发项目管理者、软件工程师、测试组、系统维护工程师] 1.3 项目背景 [可以如下那样简单说明,根据项目的具体情况,方案编写者也可以进行详细说明 项目名称:*** 简称:*** 项目代号:*** 委托单位:*** 开发单位:*** 主管部分:***] 1.4 测试目标 [说明进行项目测试的目标或所要达到的目的] 1.5 参考资料 [列出编写本测试方案时参考的资料和文献]

2 测试配置要求 2.1 网络环境 [在此说明应用系统的网络环境,如果应用系统是网络版的,必须具有本节内容。] 2.1.1 网络硬件 [此处给出网络硬件的拓扑图、名称、规格、数量、配置等信息。] 2.1.2 网络软件 [此处给出网络软件的名称、协议、通讯和连接方式等信息。] 2.2 服务器环境 2.2.1 服务器硬件 [此处给出服务器硬件的名称、规格、数量、配置等信息。] 2.2.2 服务器软件 [此处给出服务器软件名称、协议和版本等信息。] 2.3 工作站环境 2.3.1 工作站硬件 [此处给出工作站硬件的拓扑图、名称、规格、数量、配置等信息。] 2.3.2 工作站软件 [此处给出工作站软件的名称、协议和版本等信息。] 2.4 测试手段 [在此参照《测试计划》说明测试方法和工具,注明执行测试时,必须同时填写《测试记录表》]

2.5 测试数据 [在此简要说明测试数据的形成,如以客户单位具体的业务规则和《***系统需求分析说明书》,参考《***系统概要设计说明书》、《***系统详细设计说明书》和《数据规格说明书》中规定的运行限制,设计测试用例,作为整个**系统的测试数据。] 2.6 测试策略 [在此说明测试策略,可以如下这样说明: 测试过程按三个步骤进行,即单元测试、组装、系统测试,根据不同阶段测试的侧重点不同,分别介绍测试策略: A)单元测试 首先按照系统、子系统和模块进行划分,但最终的单元必须是功能模块,或面向对象过程中的若干个类。单元测试是对功能模块进行正确检验的测试工作,也是后续测试的基础。目的是在于发现各模块内部可能存在的各种差错,因此需要从程序的内部结构出发设计测试用例,着重考虑以下五个方面: 1)模块接口:对所测模块的数据流进行测试。 2)局部数据结构:检查不正确或不一致的数据类型说明、使用尚未附值或尚未初始化的变量、错误的初始值或缺省值。 3)路径:虽然不可能做到穷举测试,但要设计测试用例查找由于不正确的计算(包括算法错、表达式符号表示不正确、运算精度不够等)、不正确的比较或不正常的控制流(包括不同数据类型量的相互比较、不适当地修改了循环变量、错误的或不可能的循环终止条件等)而导致的错误。 4)错误处理:检查模块有没有对预见错误的条件设计比较完善的错误处理功能,保证其逻辑上的正确性。 5)边界:注意设计数据流、控制流中刚好等于、大于或小于确定的比较值的用例。 B)集成测试 集成测试也叫组装测试或联合测试。通常,在单元测试的基础上需要将所有的模块按照设计要求组装成系统,这时需要考虑的问题: 1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失。

java简单聊天小程序

网络编程java简单聊天小程序[下次修改成多线程的,这个必须等待对方输入结束,有机会修改成可视化窗口] By 刘汪洋 写入正确的ip地址即可正常用当然目前只停留在命令行界面 还没有写成可视化窗口界面 运行时请带上参数 如java TransServer 张三 Java TransClient 李四 ( 和刘正南在局域网试验的截图成功 这是修改后的 加上了姓名! ) (修改前的截图)

代码: 客户端: package com.baidu.chat; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import https://www.sodocs.net/doc/376224645.html,.Socket; import https://www.sodocs.net/doc/376224645.html,.UnknownHostException; // 简单聊天小程序客户端 public class TransClient { public static void main(String[] args)

{ if(args[0]==null) args[0] = "他"; startClient(args[0]); } private static void startClient(String name) { Socket sk = null; BufferedReader bufr = null; try { sk = new Socket("127.0.0.1",10000);// 1 创建 socket服务 bufr = new BufferedReader(new InputStreamReader(System.in));// 2 获取录入键盘 PrintWriter out = new PrintWriter(sk.getOutputStream(),true);// 3 获取输出流true表示自动刷新 BufferedReader bufIn = new BufferedReader(new InputStreamReader(sk.getInputStream()));// 4 获取输入流 // 5 发送获取 String text_send = ""; String text_get = ""; String ServerName = ""; System.out.print("聊天已开启..."+"\r\n"+"我说:");

JUnit in java单元测试用例实战

JUnit in java单元测试用例实战 单元测试基础 当今软件测试十分盛行时,本人通过项目实践和个人亲身体会浅谈单元测试,本人一直坚持“用代码说话的原则”,同时也希望个人能给出宝贵意见,共同探讨、共同进步,为中国软件事业有更大的发展共同奋斗! 最早我们项目组开发的项目时,写代码都是从底层一直写到表现层到jsp,然后开发人员在web层调试页面,近乎98%都会报一大堆exception,然后再在代码中加断点一步一步查到底哪一层代码出现问题……,比较好点做法就是在各个类中加上main方法测试,但总体很不理想,给web层开发人员的调试和质量控制人员带来繁重的工作压力;使用单元测试后,针对每一个方法都做严格的把关,大大减少调试的时间;同时质量控制人员返回过来的bug 少了近60%,现在对于开发人员写测试用例非常熟练,并且本人根据实际情况对测试用例做了点小小改动(这部分主要在后面代码中详述),带来很好的效果! 单元测试到底给实际开发带来什么好处那? (1)首先对于开发人员来说大大减少调试工作的时间,同时也规范了对于代码安全管理(我们知道那些方法是可以调用的); (2)对于整个项目来说,有了完整的测试,保证项目最后交付测试有了可靠依据; (3)对于测试人员大大减少bug的反馈; (4)对于项目经理整个项目达到很好的可控; (5)最主要的完整的单元测试给后期维护人员带来很大的便捷! 单元测试好处可能还有很多,但本人只能理解和感悟这么多,希望观者补充! 单元测试配置: 将使用eclipse+myEclopse给大家介绍关于JUNIT的环境的简单配置;右键点击项目选择“属性”,在弹出窗口中到环境变量中添加junit.jar包,这样下一步我们就可以进行单元测试了;

测试用例范例

讨论用TestDirector管理测试用例 编制时间:2007-03-16 编制部门:测试组 编制人:郭宏元 “测试用例”虽有国标作蓝本,但实际中,一直以来“测试用例”是所有测试人员有争议的地方,此所谓“仁者见仁,智者见智”。而“法无定法,则无定则”,所有的规范与标准都是围绕更适应人们的工作环境而创建。在此,我就我的一些体会在此与大家分享。 一般来说,“测试用例”的编写主要分三大类,贯彻的原则与基本架构如下: 分类: 1、对验证过程的一个记录; 2、展现一个功能; 3、描述一个场景步骤; 原则: 1、有“对象”属性的描述; 2、阐述了某个“对象”的方法或事件。 3、对属性、方法或事件有详细的定义。 基本架构: 1、目的; 2、前提条件; 3、输入步骤(输入动作或数据,预期结果) 以下总结了一些针对测试用例的“编写要点”作出一些较简单的规范。以方便统一测试用例的编写,并保证使用最用效的测试用例来保证测试质量。我们都知道根据详细设计文档编写测试用例的目的不在于验证软件达到的功能,而在于验证软件应该达到的功能,这样可以去除软件开发过程中的随意性。所以下面就明确测试用例的“目的”、“范围”、“原则”是什么?以及采用的方法做了一点描述。 1、目的: 围绕测试名称或满足实现测试功能而进行。 2、范围:

适用于所要测试的质检项目。 3、功能测试用例编写原则 3.1单元测试功能用例的编写目的 单元测试用例的目的在于验证单个模块是否达到了详细设计说明书中规定的功能,由于是单个模块所以无法检验关联性,可能会牵扯到数据库的操作,例如:删除时,需要查看数据库是否完全删除了数据。 3.2集成测试功能用例的编写目的 集成测试功能用例的目的在于验证软件连接时,模块的连接是否正确(及数据的传递是否正确)。.我们的软件中体现出来的是,是否正确调用界面,界面之间显示的数据是否正确,特别是财务、费用、数据方面的。 集成测试用例的编写过程中,经常将功能用例与业务流程混合编写,因为在集成测试时需验证业务流程中的数据正确性,以及界面之间的数据传递的准确无误。 3.3系统测试业务流程用例的编写目的 系统测试业务流程用例的目的在于验证软件最终数据的准确性,我们的软件体现为,手工数据与报表数据的一直性。用例与用例之间有着一定的关系,目的性十分明确。 4、测试用例设计的原则 4.1全面性 指编写的测试用例应该覆盖所有的“概要设计文档”或“需求文档”以及“测试申请文档”中描述的功能。 4.1.1数据库程序基本的增、删、改功能 增、改测试用例重点在于数据合法性、正确性的检验和提示信息的正确性的检验。输入的数据可能有无限种组合,此时可以采用等价类划分和边界值法,下面有较详细的说明。 删除的测试用例比较简单,只有操作没有数据的输入,但是应该在“备注”中注明,删除的限制条件,以及数据库中应该删除的表的情况,有条件限制时,测试用例应该包含各种删除条件,必要时在添加或修改的测试用例后面或中间紧跟删除的测试用例。 4.1.2对于无输入的操作,应该详细描述其具体的操作步骤和结果

java经典小程序模板

JA V A经典小程序1,编写程序,判断给定的某个年份是否是闰年。 闰年的判断规则如下: (1)若某个年份能被4整除但不能被100整除,则是闰年。 (2)若某个年份能被400整除,则也是闰年。 import java.util.Scanner; class Bissextile{ public static void main(String[] arge){ System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in); year = scanner.nextInt(); if (year<0||year>3000){ System.out.println("年份有误,程序退出!"); System.exit(0); } if ((year%4==0)&&(year%100!=0)||(year%400==0)) System.out.println(year+" is bissextile"); else System.out.println(year+" is not bissextile "); } } 2,给定一个百分制的分数,输出相应的等级。 90分以上A级 80~89 B级 70~79 C级 60~69 D级 60分以下E级 import java.util.Scanner; class Mark{ public static void main(String[] args){ System.out.println("请输入一个分数"); //定义输入的分数为“mark”,且分数会有小数 double mark; Scanner scanner = new Scanner(System.in); mark = scanner.nextDouble(); //判断是否有输入错误。

酒店管理系统+单元测试用例

酒店管理系统+单元测试用例 客房预订系统测试用例 测试编号设计者1测试需求项客房预订测试需求标号设计日期001 2008. 9. 4测试目标状态和测完成散客预订、团体预订、客房预订、预订未到处理、预售查询等项功能试数据状态 测试项输入说明(操作)输出说明(预期结果)序号 姓名性别预付押金付款方式入住 1类型证件类型和号码地址联系电话酒店个人押金凭证散客预订 预订入住日期和预离日期 主宾姓名主宾性别预付押金付款方 式入住类型证件类型和号码地址2酒店团体押金凭证团体预订联系电话 预定入住日期和预离日期 主客房间宾客人数 3客房预订根据用户需求预订房间宾客预订信息 预订未到处注销预定信息输出注销成功4理 当前时间酒店预售一览表可售房间数以及某房间的5预售查询预订情况前台接待系统测试用例 测试编号设计者2测试需求项前台接待测试需求标号设计日期002 2008. 9. 4测试LI标状态和测完成散客入住登记、合约入住、团体自动入住和手动入住、补填客单、修改客人信息、试数据状态预订客房查询、可售房间查询等项功能 测试项输入说明(操作)输出说明(预期结果)序号

姓名性别预付押金付款方式入住散客入住登6类型证件类型和号码地址联系电话客人相关信息记入住日期和预离日期 姓名性别证件号预订入住时间期限7客人相关信息合约入住预离时间 姓名性别预付押金付款方式入住类 团体自动入型证件类型和号码地址联系电话8住和手动入团体入住相关信息入住日期和预离日期宾客人数入住住 方式 9填补客单输入用户信息修改后的用户信息 修改客人信10姓名性别证件号所需修改信息显示修改后客户信息息 预订客房查11姓名性别证件号显示预订相关信息或者是无结果询 可售房间查12当前时间空闲房间号询 前台收银系统测试用例 测试编号设计者3测试需求项前台收银测试需求标号设计日期003 2008. 9. 4测试口标状态和测完成记帐查帐转帐个人或团体埋单限制客人消费等项功能试数据状态 序号测试项输入说明(操作)输出说明(预期结果) 记帐查帐13姓名性别证件号当前消费转帐 14酒店消费清单埋单姓名性别证件号 帐务系统测试用例 测试编号设讣者4测试需求项帐务管理测试需求标号设计日期004 2008. 9.4 测试LI标状态和测具备收银功能外,设置纠错报表输出等项功能试数据状态测试项输入说明(操作)输出说明(预期结果)序号

MyEclipse中使用Junit插件进行单元测试

Eclipse中使用Junit插件进行单元测试 测试是软件开发的重要环节之一。按照软件开发的过程测试可分为:单元测试、集成测试、系统测试、域测试等。我们这里将讨论面向程序员的单元测试。 一、什么是单元测试 单元测试指的是使用编写好的测试代码来检验需要被测试的代码。我们通常给要测试的方法传入一些参数值,然后检测方法的返回值跟预期是否一致。一般情况下我们会传入一些容易引发错误的数据,例如给计算除法的方法传入除数0,并且测试的参数也会传入许多组,这样才能保证测试效果。 二、为什么要使用单元测试 注:如果你时间不多请直接看后面的粗体 每当别人提起“单元测试”都会让william的内心难受上好长一阵子,往往他的好心情也会一扫而光。这又是为什么呢? 5年前William的软件公司很顺利的拿到美国ADC电讯公司(ADC Telecommunications )的一单软件开发的生意,总价值1500万美元,利润在32%上下。面对着几百万的收益,William 兴奋地对自己的妻子说:“Catherine,不久我们的银行户头上就会多出几百万美元。做完这笔生意,你老爸再也不会抱怨他的女儿嫁给了一个贫困街区出生并且没受过高等教育的乡巴佬。还真想不到你老爸再见到我的时候会是什么样的表情……”。 作为同William生活了12年的Catherine很清楚的知道,William这个人实际的本事没多少,然而大话却说了不少。当初她正因为轻信了William的许诺才嫁给他,然而当年的承诺从来就没兑现过。虽说William这个人没什么本事,可是他却有着令别人羡慕的“狗屎运”。 高中毕业之后,他参了军,在越南战争中他所在的小队中了越南人的埋伏,却唯独William 一个人活着回来。(William牢记美军士兵手册其中一条训令:永远不要和比你作战勇敢的战友躲在同一个散兵坑,因为他会给你们招来致命炮火打击。)William回来后向自己的上司编造了谎言,因而被提升为中尉,授予紫心勋章。 退役后有幸运结识底特律市长的千金——Catherine,并且让这位市长千金以身相许。William 的岳父虽说从来就没看上过这位贫穷、没教养还时常夸夸其谈的女婿,可最终还是出资给William创办公司。William的运气不得不让人羡慕,可是这回软件开发他还会这么幸运么? 翌日,William一大早就来到公司,他第一件事情就是要和项目经理谈话。 “嘿!John。我们的项目要立即投入人力着手开发,别让那些程序员慢吞吞的。”William认真的说。 “先生,我们的项目还不能立即开发,因为我们还没有做项目需求。”项目经理John提醒着。

围棋(改进版)源代码-Java Applet小程序

/*一个Java围棋程序源代码改进版(2010-05-12 09:55:19)转载标签:杂谈*/ import java.awt.*; import java.awt.event.*; import javax.swing.JOptionPane; public class Chess extends Frame { ChessPad chesspad= new ChessPad(); Chess() { add(chesspad); chesspad.setBounds(70,90,440,440); Label label=new Label("click to point,doubled_click to remove,right click to back",Label.CENTER); add(label); label.setBounds(70,55,440,24); label.setBackground(Color.orange); addWindowListener ( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); setLayout(null); setVisible(true); setSize(600,550); } public static void main(String args[]) { Chess chess=new Chess(); } } class ChessPad extends Panel implements MouseListener, ActionListener,FocusListener {

酒店管理系统 测试用例

酒店管理系统 测试用例 姓名:王运飞 学号:08111423 文件状态: [√] 草稿 [ ] 正式发布 [ ] 正在修改文件标 识: 东华理工大学-酒店管理系统-测试报 告 当前版 本: 2.0 作 者: 王运飞 完成日 期: 2010-10-26 版本/状态作者参与者起止日期备注 1.0 王运 飞 王运飞 2.0 王运 飞王运飞修复了一下bug,程序运 行更加稳定了

目录

0文档介绍 0.1 文档目的 该测试文档实现的目的为,给所有测试用例的说明提供测试方法步骤,同时为进一步开放测试脚本提供依据。 0.2 文档范围 本文档为酒店管理系统,其中包含了酒店订餐,消费方式,现金或刷卡,打折优惠,等基本功能的测试用例。 0.3 读者对象 本文档面向的对象主要有两类,一是测试人员,另一类是开发人员。 0.4 参考文献 《酒店管理系统软件规格需求说明书》 0.5 术语与缩写解释 缩写、术语解释 订餐提前向餐厅预订餐饭,有可能需要交一部分费用 结账就餐后支付就餐费,须向客户开发票 刷卡就餐后使用银行卡支付餐费 包厢顾客单独在一间房子内就餐 1. 接口-路径测试用例 1.1 被测试对象(单元)的介绍 测试对象这里测试对象主要是该软件所实现的几个功能,也可称为接口,这里主要接口有顾客订餐,顾客就餐后刷卡支付餐费,顾客预订包厢,顾

客结账。 1.2 测试范围与目的 测试目的通过测试了解各个接口的正确性,比如顾客能否顺利的订到餐饭,能否联网刷卡,能否订到包厢。 1.3 接口测试用例 接口订餐函数原型 输入/动作期望的输出/相应实际情况 典型值…餐位充足可以订餐成功 边界值…餐位紧张订餐成功或失败成功或失败 异常值…餐位不足订餐失败失败 接口刷卡函数原型 输入/动作期望的输出/相应实际情况 典型值…卡内余额足够刷卡成功成功 边界值…卡内余额不多刷卡成功或失败成功或失败 异常值…卡内余额不够刷卡失败失败 … 接口包厢函数原型 输入/动作期望的输出/相应实际情况 典型值…包厢充足可以预定包厢成功 边界值…包厢较少预订成功或失败成功或失败 异常值…包厢紧张失败失败 … 1.4 路径测试的检查表 检查项结论 数据类型问题 (1)变量的数据类型有错误吗?(2)存在不同数据类型的赋值吗?(3)存在不同数据类型的比较吗?没有不存在不存在 变量值问题 (1)变量的初始化或缺省值有错误吗?没有没有

Junit单元测试

JUnit java单元测试 首先须导入JUnit包:所在项目右击->Build Path->Add Libraries ->选择JUnit->选择一个版本->Finish 一.手动生成 1.测试方法,必须符合下列条件 *方法必须声明成:public,void *JUnit3方法名必须以test开头,JUnit4则不需要 *方法无参数 如:JUnit3:Public void testAdd(){} JUnit4:@Test (org.junit.Test) Public void AddTest(){} 2. JUit3 与 JUit4的区别 源码和测试代码分开放在不同的Source Folder,测试代码所在的包名最好和源码中的包名一一对应。JUnit3测试方法中的类必须继承TestCase (junit.framwork.TestCase);而JUnit4类则不需要继承任何类,但在方法前须加上注解@Test(org.junit.Test)此测试方法,标注该程序是以JUnit的方式来运行的。 JUit3:在方法前加上TestCase类的方法setUp(),在执行每一次测试方法之前都会被调用,可把在测试方法中都需要的程序放在这里;最后加上

tearDown()方法,在执行每一次方法后都会被调用。 JUit4:与JUit3不同的是,在JUit4中是在方法前用注解 @BeforeClass:globeInit(),无论执行多少测试方法,它只执行一次,且运行在最前 @Before:把方法注解成Before,init()与JUit3中的setUp()方法作用一样@After:把方法注解成After,destroy()与JUit3中的tearDown ()方法作用一样 @AfterClass:无论执行多少测试方法,它只执行一次,且运行在最后 下面分别以JUit3和JUit4为例子来运行测试: 例1.JUit3 源代码: package com.sinyee.unit; public class ArrayUnit { /** *传入一个数组,返回该数组的最大值 *@param array *@return */ public int getMaxValue(int[] array) throws Exception { if (array==null) { throw new NullPointerException("空指针异常"); } if (array.length == 0) { throw new ArrayIndexOutOfBoundsException("数组不能为 空!"); } int temp = array[0]; for (int i = 1; i < array.length; i++) { if (temp < array[i]) { array[i] = temp; } } // 取出该数组的最大值 return temp;

相关主题