发布新日志

  • 压力测试和性能测试的区别

    2006-12-25 14:13:06

    性能测试就是用来测试软件在系统中的运行性能的。性能测试可以发生在各个测试阶段中,即使是在单元层,一个单独模块的性能也可以使用白盒测试来进行评估,然而,只有当整个系统的所有成分都集成到一起之后,才能检查一个系统的真正性能。

    性能测试经常和压力测试一起进行,而且常常需要硬件和软件测试设备,这就是说,常常有必要的在一种苛刻的环境中衡量资源的使用(比如,处理器周期)。外部 的测试设备可以监测测试执行,当出现情况(如中断)时记录下来。通过对系统的检测,测试者可以发现导致效率降低和系统故障的原因。


    压力测试:对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败。

    性能测试:在交替进行负荷和强迫测试时常用的术语。性能测试关注的是系统的整体。它和通常所说的强度、压力/负载测试测试有密切关系。所以压力和强度测试应该于性能测试一同进行。
    举例说明:针对一个网站进行测试,模拟10到50个用户就是在进行常规性能测试,用户增加到1000乃至上万就变成了压力/负载测试。如果同时对系统进行大量的数据查询操作,就包含了强度测试。

    性能测试(Performance) 正常使用的时间内系统完成一个任务需要的时间,多人同时使用的时候响应时间,在可以接受范围内.J2EE技术实现的系统在性能方面更是需要照顾的,一般原 则是3秒以下接受,3-5秒可以接受,5秒以上就影响易用性了. 如果在测试过程中发现性能问题,修复起来是非常艰难的,因为这常常意味着程序的算法不好,结构不好,或者设计有问题。因此在产品开发的开始阶段,就要考虑 到软件的性能问题

    压力测试 (Stress) 多用户情况 可以考虑使用压力测试工具,建议将压力和性能测试结合起来进行.如果有负载平衡的话还要在服务器端打开监测工具,查看服务器CPU使用率,内存占用情况, 如果有必要可以模拟大量数据输入,对硬盘的影响等等信息.如果有必要的话必须进行性能优化(软硬件都可以).

    压力测试和性能的测试的区别是在于他们不同的测试目的

    压力测试是为了发现系统能支持的最大负载,他的前提是要求系统性能处在可以接受的范围内,比如经常规定的叶面3秒钟内响应;
    所以一句话概括就是:在性能可以接受的前提下,测试系统可以支持的最大负载。

    性能测试是为了检查系统的反映,运行速度等性能指标,他的前提是要求在一定负载下,如检查一个网站在100人同时在线的情况下的性能指标,每个用户是否都还可以正常的完成操作等。
    概括就是:在不同负载下(负载一定)时,通过一些系统参数(如反应时间等)检查系统的运行情况;
    比如我们说某个网站的性能差,严格上应该说‘在N人同时在线情况下,这个站点性能很差)

    总之,就像一个方程式:综合性能=压力数*性能指数,
    综合性能是固定的:
    压力测试是为了得到性能指数最小时候(可以接受的最小指数)最大的压力数
    性能测试是为了得到压力数确定下的性能指数
  • 单元测试

    2006-12-18 14:25:09

        单元测试是在测试过程中的最小粒度,它在执行的过程中紧密的依照程序框架对产品的函数和模块进行测试,包含入库和出口的参数,输入和输出信息,错误处理信息,部分边界数值测试。
        这个部分的测试工作在国内现在是开发人员进行的。我相信未来的发展应该是测试工程师来做这个事情。那么需要测试人员需要深刻的理解程序,理解需求,理解设计,这样才能发现问题。
        还有一种在国内先在操作的方法,就是当一个模块给某个开发工程师以后,需要他给大家讲解他要完成这个模块或者函数的整体流程和思路,进行统一评审,使得问题能够暴露的更充分些,这样做的目的有以下个,第一,使得大家对设计者的思路明晰的理解,以便以后调用或者配合的时候能够真切的提出需求或者相对完美配合。第二,在评审的过程中,如果发现问题,那么大家可能没有犯过,这样就会更加提高警惕,如果犯过,就会回想当时自己怎么解决的或者规避的,使得大家能够在错误的过程中快速提高。第三,可以对平常犯错误进行一个积累,我觉得这是生动的教科书,可以使得新的人员在新上手的时候遇到这样的问题以后,我们就可以给他一个解决问题的方法或者方向。
        回顾,我们上面给大家介绍了两种方法,第一种就是通过在开发的过程种进行测试,由开发(测试)工程师写测试代码,对所编写的函数或者模块进行测试,第二种就是通过代码互评发现问题,将问题进行积累,形成知识积累库,以便使得新人在同样的方面不至于再犯错误。
        单元测试非常重要,因为他影响的范围和宽度比较大,也许由于一个函数或者参数问题,造成后面暴露出很多表象问题出现。而且如果单元测试做不好,使得集成测试或者后面系统测试的压力很大,而且项目的费用和进度可能就会飚升。
        对单元测试,现在用CPPUnit的比较多,市场上也有其他对应的产品,他们在不同的软件单位不同的阶段。正确的理解单元测试的重要性是意识,需要在过程改进种不停的总结,慢慢的积累,将质量意识渗透到整个开放过程中的各个环节。
        保证单元测试顺利进行,需要渗透软件工程的很多思想,把CMM和跟踪机制建立起来,问题的分类、跟踪,如果把软件环节整个活动都渗透了,那么产品质量的意识自然就增强了。
        COM思想现在在大的项目现在体现的淋漓尽致,因为如果不采用COM机制,维护和升级以及修改测试的成本很大,所以现在大型项目基本上都采用COM的组织形式。
        说了这么多,单元测试做什么呢?单元测试主要是做一下几个事情:
    模块或者函数的设计稿
    代码规范,其中包含代码书写规范,对齐方式
    代码的注释。非常重要
    参数类型,数据长度,指针,数组长度大小
    输入输出参数和结果
    创建对象后是否删除了,如果在这里没有删除,请注明在那里删除
    是否应用了没有初试化的变量,如果是,请指明该变量在那里初始化
    变量是否声明,声明是否按照要求进行
    调用此函数需要的满足条件需要注明
    在此函数或者模块中用到了系统或者其他第三方插件函数,需要满足的系统条件
    上面我只是列举了一些在测试过程中发现或者隐藏的问题,我想可能还有很多情况引发问题,请大家补充,以便在工作中有操作性。
  • JAVA运行环境和J2EE运行环境的搭建

    2006-12-18 14:23:16


    [ 2005-10-31 17:38:09 | Author: Poplat ]

    很多人不能够很好的进行JAVA编程,原因就在于对JAVA运行环境的不了解或是了解得不够透彻。如果连一个普通的JAVA程序运行环境都搭建不好。就更不要说理解J2EE的运行环境搭建了。故本文首先介绍如何搭建普通JAVA程序的运行环境,再介绍如何在这个基础上进一步搭建J2EE运行环境。 一、什么是JDK? 学JAVA的人都应该知道SUN公司的JAVA 技术平台按其应用环境的不同有三个非常著名的版本,他们是J2SE(用于普通桌面应用程序的开发),J2EE(用于企业级应用程序的开发)和J2ME(用于移动设备及其他消费类电子产品的应用程序开发),SUN公司为这三个版本分别提供了相应的开发工具包(SDK:SoftWare Development Kits),下载的网址在http://www.sun.com/downloads 不过可能因为全世界太多人登录的原故,网页经常出现打不开的现象,其实大家在国内一些常用的资料下载网站同样可以DOWN到这些工具包的。在此不一一列举了。顺便提一下J2SE和J2EE目前最新的SDK版本是: ● J2SE 5.0 JDK ● J2EE 1.4 SDK 值得一提的是我们通常所说的JDK工具包指的是J2SE的SDK。目前一般学习者用得最多的也就是这个工具包了。大家还要注意一点,SUN公司为不同的操作系统提供了不同的JDK文件,而且这些文件又有脱机版(OFFLINE)与在线安装版(ONLINE)之分,所以在下载的时候要注意选择正确的文件。 那么JDK这个工具包里到底有些什么东东呢?其实这里面包括了JAVA程序的开发工具(JAVAC命令等)、运行环境(JAVA命令等)和核心类包。可想而知要想运行JAVA程序。就必须安装好JDK工具包。 二、如何安装JDK? 当我们从网络上DOWN下J2SE 5.0 JDK以后(是一个可执行文件,文件名叫做jdk-1_5_0-windows-i586.exe,当然这个名字会因为对应操作系统的不同而有所区别的,我使用的操作系统就是WINDOWS,大家发现了吗?),双击他就开始安装了。需要注意的就是选择安装路径的问题,通常我们将它安装在C盘根目录下(这也是安装程序默认的路径),其他的工作就是一个接一个地按NEXT啦。 三、搭建运行和开发环境 是不是当我们装完JDK以后就可以编写代码,准备编译运行了呢?别忙。大家还是跟着我一起检查一下吧: 1、 点击操作系统桌面上左下角的‘开始’菜单,选择‘运行’,然后在打开对话框里输入CMD,看到了吧,我们进入了命令提示符窗口,我们爱叫他DOS界面。 2、 现在大家在窗口里应该看到提示符了吧,通常会是这样:C:\Documents and Settings\Administrator> 3、 下面让我们在提示符后面敲上这样一个命令:JAVA,出现了这样的提示了吗? Usage: java [-options] class [args...] (to execute a class) or java [-options] -jar jarfile [args...] (to execute a jar file) …… 这是JAVA命令的帮助信息,如果有,那么成功一半了。 4、 接下来,继续试一下:在命令提示符处敲:JAVAC。同样也出现了JAVAC的命令帮助提示了吗?我想应该没有吧。你看到的也许会是这样: ‘javac’不是内部或外部命令,也不是可运行的程序或批处理文件。 为什么出现这样的情况呢? 这是因为我们的操作系统在执行一个命令时,首先会到当前目录下去查找这个命令文件。如果在当前目录下找不到,他就会按照系统变量PATH所指示的多条路径里去搜索,直到找到为止。如果在这两个地方都找不到他就会报上面大家看到的错误。 在C:\Documents and Settings\Administrator这个路径下我们当然找不到JAVAC命令啦。我们的JDK不是安装在C盘根目录下吗?而我们的JAVAC、JAVA命令则在JDK目录下的BIN文件夹里,这个夹子里还有许多其他宝贝命令。如下图所示: 怎样才能让操作系统找到JAVAC命令呢?很简单!我们需要修改一下系统变量PATH,这样就不用每次要运行这个命令时都得跑到C:\j2sdk1.4.2_02\bin这个路径下面去了。怎样修改PATH,我们在第四个专题里来介绍。 5、 当我们在PATH变量里加了一条路径:C:\j2sdk1.4.2_02\bin以后,再到命令提 示符状态下输入JAVAC,就会出现帮助提示了。这就说明我们可以开始写JAVA程序了。 6、 让我们写一个Hello.java测试一下吧,我在E:\LESSON1这个文件夹下创建 了一个文本文件,输入如下一段代码,并且将之保存为Hello.java。 public class Hello { public static void main(String args[]) { System.out.println("Hello World!"); } } 7、 好现在我们又回到命令提示符状态下。在提示符处输入:JAVAC Hello.java,命 令又出错了。为什么?因为文件是建在E:\LESSON1下面,而我们的当前目录却不是它。在提示符处敲入:‘E:’,然后再敲:‘cd lesson1’,进入JAVA文件所在的那个目录后,现在再敲JAVAC Hello.java,文件成功编译。注意成功编译后会在当前目录下生出一个名叫:Hello.class的字节码文件。但是屏幕上没有任何提示。 8、 再试着运行一下‘java Hello‘这个命令,可以运行吗?当然不行。为什么, 因为我们的字节码文件是在JAVA虚拟机里运行的,所有关于虚拟机要使用的字节码文件的路径必须在一个叫做CLASSPATH的操作系统变量里找得到。否则我们的虚拟机就无法找到这个字节码文件,从而也就无从执行了。 9、 怎么办?先运行如下命令:set classpath=%classpath%;E:\lesson1,然后再运 行 java Hello 这个命令。屏幕上终于出现了亲切的问候:Hello world! 不过奇怪的事情又发生了。当我们重新启动一个命令提示符窗口再运行这个JAVA文件时,又无法执行了,屏幕提示:Exception in thread "main" java.lang.NoClassDefFoundError: Hello。还是老问题,虚拟机又找不到字节码文件了。WHY?其实我们在DOS窗口中设置的系统变量只对当前窗口有效。要想让我们的变量设置对任何一个DOS窗口都有效,还得到桌面上去做。我们仍然将在第四个专题里讲述CLASSPATH这个JAVA环境变量的设置。 四、PATH系统变量与CLASSPATH环境变量的设置 为什么需要设置PATH和CLASSPATH变量我们在前面的专题已经介绍过了。下面我们讲一下具体如何设置: 1、 右键单击我的电脑,选‘属性’菜单,在弹出的对话框里选择‘高级‘选项卡。然后在高级选项卡页按下‘环境变量’按钮。 2、 在弹出的环境变量窗口里我们将会看到它分为两个部分。一部分是谁谁用户的变量,如:Administrator的用户变量。一部分是系统变量。通常情况下我们在命令提示符下能够使用的变量数目是用户变量+系统变量数目之和。那我们不管用户变量。直接到系统变量格里去寻找PATH变量吧。通常情况下系统装好后PATH变量在这里是早就存在了的。但是CLASSPATH变量则没有。 环境变量窗口见图示: 3、 找到PATH变量后,双击这个变量名称后,将会弹出编辑系统变量窗口。将光标停到变量值对话框的最后,然后加上‘;C:\j2sdk1.4.2_02\bin ’。注意分号后的路径就是JAVA和JAVAC命令所在的路径。见图示: 4、 找不到CLASSPATH变量该怎么办呢?很简单。按下系统变量框下的新建按钮。然后在弹出的新建系统变量对话框里输入你要加的变量名称:CLASSPATH,在变量值对话框里输入你要运行的字节码文件所在的路径。如图示: 大家在以后的学习中会发现,只要是虚拟机运行所需的字节码文件(即类文件),包括SUN公司提供给我们的类。都需要将这些文件所在的路径放到CLASSPATH下。否则,程序在编译过程中会经常找不着所需要的类包。那可是很头疼的事。比如说:JDK安装目录下的LIB目录下就有许多*.jar文件。当我们的程序要使用到这些压缩文件里的类时,就需要把这些文件所在的路径加到CLASSPATH里,比如说:C:\j2sdk1.4.2_02\lib\dt.jar。 注意添加*.jar包和直接添加*.class文件的路径是有一点小小区别的,前者要包含JAR包的名字。而后者只需文件路径。 五、J2EE运行环境的搭建 开发企业级的应用程序需要搭建好J2EE的运行环境。其实也就是到SUN公司的网站上去DOWN下J2EE 1.4 SDK开发工具包。然后双击安装文件,如果你下载的版本与我的一样。那么这个安装文件就会是这个名字:j2eesdk-1_4-dr-windows-eval.exe。同样的我们也将J2EE SDK安装在C盘根目录下。 需要特别提醒大家的是:J2EE运行环境的搭建是以J2SE运行环境的搭建为基础的。其实想也想得到为什么。如果没有JDK,哪里来的编译和运行命令呢(JAVA和javac)。安装完J2EE 1.4 SDK包后,具体的设置与测试步骤如下: 1、 首先右往PATH变量里添加J2EE SDK的BIN目录。如:C:\j2sdkee1.3.1\bin。如何往里面添加,前面已经讲过。 2、 然后新建两个变量:一个是JAVA_HOME,变量值为:JDK的安装目录。另一个是J2EE_HOME,变量值为J2EE SDK的安装目录。如图示: 3、 最后往CLASSPATH变量里添加一个关键的JAR包。它就是J2EE.JAR包。比如我添加的就是:C:\j2sdkee1.3.1\lib\j2ee.jar。 4、 所有的工作做完以后。大家可以通过以下方式验证一下我们的J2EE环境是否已经搭建成功。在命令提示符状态下输入命令:J2EE -Verbose。如果屏幕的最下面看到了这样一句话J2EE server startup complete.那就表示J2EE服务器成功启动了。在我们的J2EE程序要布署和运行的过程中。服务器将一直启动着。 另外提一下,如果你需要停止J2EE服务器,必须再开一个命令窗口,并运行如下命令:J2EE ?STOP。成功运行后,将会有提示语句。再去看看启动服务器的那个窗口,你将可以看到提示符了。 5、 这样做了还不够,我们还需要到网页里去测试一下服务器默认页面是否能够正常显示,这样才能保证我们能够进WEB程序的开发。双击IE浏览器的图标,在地址栏里输入:http://localhost:8000,如果你能看到以下窗口中的内容,那就说明你的J2EE环境已经搭建成功。需要说明一点,在localhost:后的是J2EE服务器提供的WEB服务端口号。 需要提醒大家的是:当你打开网页之前,确认你的J2EE服务器是启动着的。如果你机器上没有安装网卡,或是网卡安装不正确,也会导致无法打开J2EE服务器默认页面。 六、在JCreater中开发程序需做的配置 大多数初学者使用的的集成开发环境都是Jcreator。这是一个很适合学习者使用的开发工具。但是使用时需注意以下几点: 1、 最好是先装好J2SE SDK和J2EE SDK之后再去安装Jcreator。这样关于JDK的设置Jcreator会自动完成。 2、 那如果不幸先装了Jcreator,后装的JDK也不要紧。可以这样做,完成配置:选择’Configure’菜单。选择Options菜单:如图示 然后选中JDK Profiles。点击NEW按钮,弹出如下对话框: 选中J2sdk1.4.2_02目录。然后点击确定按钮。 接下来将会弹出下面的对话框: 我们会发现这个目录下及子目录下几乎所有的JAR包都在窗口里显示出来了。这样就不怕JAVA虚拟机找不到所需的类了。再点OK吧。 回到OPTIONS窗口继续点OK就回到Jcreator的主界面了。 3、 上面的工作做完以后我们进行普通JAVA程序的开发是没有问题了。不过要进行企业级开发。还得加几个JAR包。重新打开上面看到的Options窗口。选择JDK Profiles,选中J2SDK1.4.2_02,再点击EDIT按钮。 将会弹出PROFILES窗口,点击ADD按钮。选择ADD ARCHIVE选项。在弹出的对话框里选择J2EE SDK的安装路径,并且进入LIB目录。选中所有的JAR文件。如图示: 点击打开按钮。OK两次后回到Jcreator主界面下。 做完这件事后我们可以在JCREATOR中写J2EE代码了。 到这里,JAVA和J2EE运行环境的搭建就介绍完了。大家开始加油编写代码吧。告诉大家学习JAVA和J2EE唯一的办法就是敲代码,唯有抄代码抄出心得以后,你才可以写出自己的漂亮的程序。


我的栏目

我的存档

数据统计

  • 访问量: 4084
  • 日志数: 3
  • 建立时间: 2006-12-18
  • 更新时间: 2006-12-25

RSS订阅

Open Toolbar