故意学习,故意生活,故意活的像个人!

发布新日志

  • Tomcat简介

    2007-05-23 11:38:56

    集成起来开发JMS应用,除了我们提到的这几种,可以与Tomcat集成的软件还有很多。

    三:展望

    Tomcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。如今,开源软件越来越收到人们的重视,Linux就是一个成功的典型。人们不再限于只使用软件,而且已经关心起软件的具体实现。我们有理由相信Tomcat会走得更远。
  • svn简介

    2007-04-02 11:13:30

    SVN简介 (转)
      SVN站在更高层次上对现在的安全产品,从系统和控制的角度进行了"有机"和"无隙"的整合。
      SVN是一个安全虚拟网络系统,它将系统整体的信息安全功能均衡合理地分布在不同的子系统中,
      使各子系统的功能得到最大限度的发挥,子系统之间互相补充,系统整体性能大于各子系统功能之和,用均衡互补的原则解决了"木桶原理"的问题。
      SVN能在跨接Internet, Intranet, Extranet间的网络所有端点实现全面的安全,而且还能提供基于企业策略的信息管理机制以充分有效地利用有限的带宽。SVN可以满足各种企业VPN的要求,通过为公司内部网络、远程和移动用户、分支机构和合作伙伴提供基于Internet的安全连接。所以,我们可以将SVN看成是VPN、防火墙、基于企业策略的信息管理软件集成在一起的Internet安全的综合解决方案。在这样一个网络系统中,所有互联网服务器端和客户端都是安全的,并有一个信息管理机制以不断地通过这个外部网络环境动态地分析及满足客户的特定带宽需求。SVN提供了目前基于网络实现的eBusiness 应用的安全服务,它包含:
      对多种应用进行全面的安全认证;
      支持多种认证及PKI
      功能强大并对用户透明的通讯加密;
      面向用户的集中安全策略管理;
      统一跨接Internet、Intranet、Extranet的通讯。
      完整的SVN体系结构应包括以下部分:
      带有防火墙的VPN网关,它是一个将防火墙和VPN技术紧密结合的网关产品;
      SVN安全远程客户端软件包,一个功能强大的VPN客户端软件,支持台式机用户、远程用户和移动用户,具有集中化管理的个人防火墙功能和VPN用户的安全认证功能;
      SVN证书管理模块,一个用于SVN的完整PKI解决方案,它将完善的CA和LDAP目录服务器技术集成在一起;
      SVN硬件加密卡,可以通过硬件技术实现功能强大的各种算法以提高VPN的速度和性能;
      SVN智能带宽管理模块,一个基于企业策略的带宽管理解决方案,可以智能地管理有限的带宽资源,以确保用于企业重要应用的VPN性能可靠;
      SVN冗余管理模块,通过冗余网关集群和防火墙VPN内的SVN冗余模块,对执行重要任务的VPN和防火墙应用在出现故障时实现无缝切换。
      自动地址转换模块,一个自动管理IP地址和命名的解决方案,通过提供IP地址服务的跟踪和集中化管理,确保可靠地控制地址分配和提高TCP/IP管理效率;
      SVN安全服务器软件包,专门保护单个应用服务器安全的VPN网关软件,它可以保护进行敏感操作的服务器免受攻击和未授权的访问,使客户端建立与服务器间的安全认证和支持交换加密数据的连接;
      SVN安全客户端软件包,它将基于状态检测的防火墙和基于IPSec的VPN客户端软件集成在客户端机器上,通过提供集中管理的个人防火墙和对所有企业VPN用户的安全认证,增强客户端机器的安全性。它与  SVN安全远程客户端软件功能相比,增强了客户端的安全功能,如访问控制和安全初始化控制等。

  • C/S和B/S的比较和区别

    2007-01-18 11:31:30

    一、C/S结构与B/S结构的特点分析

        随着计算机技术的不断发展与应用,计算模式从集中式转向了分布式,尤为典型的是C/S结构(Client/Server的简称,客户机/服务器模式)。两层结构C/S模式,在上个世纪八十年代及九十年代初得到了大量应用,最直接的原因是可视化开发工具的推广。之后,它开始向三层结构发展。近年来,随着网络技术不断发展,尤其是基于Web的信息发布和检索技术、Java计算技术以及网络分布式对象技术的飞速发展,导致了很多应用系统的体系结构从C/S结构向更加灵活的多级分布结构演变,使得软件系统的网络体系结构跨入一个新阶段,即B/S体系结构(Browser/Server的简称,浏览器/服务器模式)。基于Web的B/S方式其实也是一种客户机/服务器方式,只不过它的客户端是浏览器。为了区别于传统的C/S模式,才特意将其称为B/S模式。认识到这些结构的特征,对于系统的选型而言是很关键的。

    1、系统的性能

        在系统的性能方面,B/S占有优势的是其异地浏览和信息采集的灵活性。任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端。

        不过,采用B/S结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重。采用C/S结构时,客户端和服务器端都能够处理任务,这虽然对客户机的要求较高,但因此可以减轻服务器的压力。而且,由于客户端使用浏览器,使得网上发布的信息必须是以HTML格式为主,其它格式文件多半是以附件的形式存放。而HTML格式文件(也就是Web页面)不便于编辑修改,给文件管理带来了许多不便。

    2、系统的开发

        C/S结构是建立在中间件产品基础之上的,要求应用开发者自己去处理事务管理、消息队列、数据的复制和同步、通信安全等系统级的问题。这对应用开发者提出了较高的要求,而且迫使应用开发者投入很多精力来解决应用程序以外的问题。这使得应用程序的维护、移植和互操作变得复杂。如果客户端是在不同的操作系统上,C/S结构的软件需要开发不同版本的客户端软件。

        但是,与B/S结构相比,C/S技术发展历史更为“悠久”。从技术成熟度及软件设计、开发人员的掌握水平来看,C/S技术应是更成熟、更可靠的。

    3、系统的升级维护

        C/S系统的各部分模块中有一部分改变,就要关联到其它模块的变动,使系统升级成本比较大。B/S与C/S处理模式相比,则大大简化了客户端,只要客户端机器能上网就可以。对于B/S而言,开发、维护等几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器端的软件就可以,这减轻了异地用户系统维护与升级的成本。如果客户端的软件系统升级比较频繁,那么B/S架构的产品优势明显——所有的升级操作只需要针对服务器进行,这对那些点多面广的应用是很有价值的,例如一些招聘网站就需要采用B/S模式,客户端分散,且应用简单,只需要进行简单的浏览和少量信息的录入。

        在系统安全维护上,B/S则略显不足,B/S结构尤其得考虑数据的安全性和服务器的安全性,毕竟现在的网络安全系数并不高。以OA软件为例,B/S结构要实现办公协作过程中复杂的工作流控制与安全性控制,还有很多技术上的难点。因此,当前虽然出现了B/S结构的OA系统产品,但尚未大范围推广。
  • cvs相关工具下载地址总结

    2006-12-26 12:08:37

     

    作者[朱丽菜叶] 发表于[2006-5-30 15:54:00]
    cvs相关工具下载地址总结,还有什么我没有写到的欢迎补充
    CVS服务器端:
    CVS 下载地址:http://www.cvshome.org/ (最新版本:hp:1.12.11,Linux and win32:1.11.17)
    cvsnt 下载地址:http://www.cvsnt.com/cvspro/ (最新版本:2.0.58d)

    CVS客户端:
    TortoiseCVS 下载地址:http://www.tortoisecvs.org/ (最新版本:1.8.11)
    wincvs 下载地址:http://cvsgui.sourceforge.net/download.html (最新版本:1.3.20.3)
    Python 下载地址:http://www.python.org/download/ (最新版本:2.4)
    TCL 下载地址:http://www.activestate.com/Products/ActiveTCL/ (最新版本:8.4.9.0)
    SmartCVS 下载地址:http://www.regnis.de/download.html (最新版本:3.0.6)

    CVSWEB 下载地址:http://www.freebsd.org/projects/cvsweb.html (最新版本:3.0.5)
    viewcvs 下载地址:http://viewcvs.sourceforge.net/(最新版本:0.9.2)
    CvsGraph 下载地址:http://www.akhphd.au.dk/~bertho/cvsgraph/(最新版本:1.5.1)

    缺陷跟踪:
    CVSTrac 下载地址:http://www.cnpack.org/ (http://www.cvstrac.org/)(最新版本:1.1.5)


    基于CVS的代码统计工具:按代码量,按开发者的统计表等:
    StatCVS 下载地址:http://sourceforge.net/projects/statcvs (最新版本:0.2.2)


    CVS权限管理(CVSACL is a patch for CVS):
    cvsacl 下载地址:http://cvsacl.sourceforge.net/(最新版本:1.2.2)

    subversion服务器端:
    subversion 下载地址:http://subversion.tigris.org/project_packages.html#binary-packages (最新版本:1.1.3)

    subversion客户端:
    tortoisesvn 下载地址:http://tortoisesvn.tigris.org/ (最新版本:1.1.3)
    rapidsvn 下载地址:http://rapidsvn.tigris.org/ (最新版本:0.7.0)
  • 软件测试:不可忽略的阶段-V模型

    2006-12-12 15:14:57

    在开发模型中,测试常常作为亡羊补牢的事后行为,但也有以测试为中心的开发模型。在本文中,让我们对V模型进行考察,看看它有没有问题?

    软件开发的几十年历程业已证明,在开发生命周期中划分阶段的做法是很有好处的。在经典的瀑布模型基础上,还有螺旋模型和过程迭代方法,快速软件开发(RAD)以及较新的Rational统一过程(RUP),但在这些过程方法中,并没有充分强调测试的价值,也没有给测试以足够的重视。

    就象开发有开发模型一样,测试也有测试模型,尽管这些方法鲜为人知。部分原因是因为很多测试人员已经在他们的工作中积累了大量的经验,利用这些经验就可以做好他们的工作。总的来说,测试往往要占据整个开发周期的时间,但即使在很多正规的大学中,也没有为那些即将开始软件生涯的学生们设置软件测试课程。

    软件专家们不断在提供新的开发模型,这也是实际开发需要使然,与此同时,在开发过程中也不断感受到这些已存在的方法的不足,例如,还没有比RUP更充分的方法,但RUP也存在一些明显的不足,例如,RUP没有对测试计划进行定位。

    V-模型


    V模型只得到软件业内比较模糊的认可。V-模型宣称测试并不是一个事后弥补行为,而是一个同开发过程同样重要的过程。V模型如下图所示:



    图1:V模型示意图


    V模型最早由已故的Paul Rook在80年代后期提出,V模型被包含在英国国家计算中心文献中发布,旨在改进软件开发的效率和效果。V模型在欧洲尤其是英国被接受,并被认为是瀑布模型的替代品,而在美国则被误解为是又一种瀑布模型。

    在传统开发过程中,仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,事实上,V模型的推出也是对此所进行的改进。在瀑布模型中,确实给人们造成了这样的不良影响,即在很多重要开发活动完成后,测试只是收尾工作,而不是主要的过程,尽管有时测试会占据项目周期一半的时间,很多项目主管却仍然还是坚持这么认为。

    测试是一项意义显著的工作


    V模型描述了一些不同的测试级别,并说明了这些级别所对应的生命周期中不同的阶段。如模型图中所示,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。请注意在不同的组织中,对测试阶段的命名可能有所不同。

    在模型图中的开发阶段一侧,先从定义业务需求开始,然后要把这些需求不断地转换到概要设计和详细设计中去,最后开发为程序代码。在测试执行阶段一侧,执行先从单元测试开始,然后是集成测试、系统测试和验收测试。

    V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系:

    · 单元测试的主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。

    · 集成测试主要目的是针对详细设计中可能存在的问题,尤其是检查各单元与其它程序部分之间的接口上可能存在的错误。

    · 系统测试主要针对概要设计,检查了系统作为一个整体是否有效地得到运行,例如在产品设置中是否达到了预期的高性能。

    · 验收测试通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要。

    在不同的开发阶段,会出现不同类型的缺陷和错误,所以需要不同的测试技术和方法来发现这些缺陷。

    发现缺陷的艺术


    大多数测试人员比较容易接受V模型的观点,即测试和开发在开发过程中是平等的。即使是开发人员也同样很欣赏V模型所提出的测试级别和开发过程相对应的方式,但很少有人去充分利用V模型的全部威力。很多人认为测试只是在编码或者系统某个部分完成后会发生什么,并且错误地将测试看作为“执行测试”。这样,他们知道要开始执行测试的时候才真正想到了测试。

    测试不仅仅是测试。测试过程还包括确定要测试什么(测试范围和条件)以及产品如何被测试(制作测试用例),建立测试环境,执行测试,最后再评估测试结果,检查是否达到已完成测试的标准,并报告进展情况。而且,仅有这些还不够,根据很多测试者的经验,当你认为什么地方有问题时,你就很可能会在那里发现问题。如测试专家Boris Beizer在他经典的测试著作《Software Testing Techniques (Thomson Computer Press, 1990)》中所说,测试设计可以发现缺陷和错误。

    而且,如果你把测试设计放在最后阶段,就错过了发现构架设计和业务逻辑设计中存在的严重问题的时机,到那时,要修复这些缺陷将很不方便,因为缺陷已经扩散到系统中去了,所以这样的错误将很难寻找和修复,并且代价更高。

    比较灵活的解释,尽量提早的测试


    V模型在欧洲,至少在英国很容易被解释,但在美国却比较难以被接受。例如,虽然V模型没有明确说明早期的测试设计,而Graham则认为它体现在了处理过程中,并认为这是V模型的强大力量所在。V模型所没有明确说明的这些其它的测试行为有时被演化为一种W模型,因为实际上开发是"V",测试也是与此相重叠的"V"。不管V模型是否明确说明了早期的测试设计行为,测试设计确实是值得强调的。

    根据V模型的要求,一旦有文档提供,就要及时确定测试条件,以及编写测试用例,这些工作对测试的各级别都有意义。当需求被提交后,就需要确定高级别的测试用例来测试这些需求。当概要设计编写完成后,就需要确定测试条件来查找该阶段的设计缺陷。

    如果测试文档能尽早提交,那么就有了更多的检查和检阅的时间,这些文档还可用于评估开发文档。另外还有一个很大的益处是,测试者可以在项目中尽可能早地面对规格说明书的挑战(测试是一种接受挑战的行为)。

    这意味着测试不仅仅是评定软件的质量,测试还可以尽可能早地找出缺陷所在,从而帮助改进项目内部的质量。参与前期工作的测试者可以预先估计问题和难度,这将可以显著地减少总体测试时间,加快项目进度。

    What-How-Do


    对于传统的瀑布生命周期模型来说,V模型常被错误地认为是要求开发和测试保持一种线性的前后关系,需要有严格的指令表示上一阶段完全结束,才可正式开始下一个阶段。这样就无法支持迭代,自发性以及变更调整。例如,Brian Marickarick(《The Craft of Software Testing (Prentice Hall, 1995)》一书的作者)在“测试过程新模型”一文中提到,“V模型的问题在于一定要将系统开发过程分为具有严格边界的阶段,这使人们无法在这些边界之间交接和交换测试信息。”

    情况其实并不是这样的,严格规定不是有效的开发人员和测试人员在应用各种模型过程中所采用的方式。实际上,各种模型只是简单地提醒我们,有必要定义一些必须要做什么(需求)--What,然后描述如何做(设计)--How,然后花很多力气来实现(编码)--Do。V模型所做的是强调每一个开发级别都有一个与之相关联的测试级别,并且建议测试应该在各级别之前进行设计。

    各模型并没有规定工作量大小。有效的开发人员总是能将项目分解为可操作的小阶段,例如在迭代式开发中整个项目被分解为很多小片断,并忽略了各片段的实际大小。此时,模型的what-how-do顺序对于按时交付就具有重要意义,而且对于保证每一个阶段目标的实现也非常重要。

    V模型所不能做的


    V模型适用于所有类型的开发过程,但并不一定适用于开发和测试过程的所有方面。不管是GUI还是批处理、 大型机还是Web、Java还是Cobol,都需要单元测试、集成测试、系统测试和验收测试。但是,V模型本身并不会告诉你如何定义单元测试或集成测试的内容、以如何顺利工作、如何进行具体的测试设计,以及该输入怎样的数据,输出怎样的输出结果才是正确的。

    有些测试者认为:“是否使用V模型要看该所应用的项目。有些项目需要应用V模型,而有些项目不需要。可以只在需要V模型的项目中采用。”这样的做法实际上对任何模型都是有害的。我们应该尽可能地去应用模型中对项目有实用价值的方面,但不强行地为使用模型而使用模型,否则也没有实际意义。

    例如,V模型的反对者经常声称V模型只有对需求非常明确,已经文档化了的项目才有用,因为所有的开发人员和测试人员都需要严格定义好的需求和设计来开展工作。对于当前很多文档需要事后补充,或者根本没有文档的做法下(这已成为一种开发的文化),开发人员和测试人员都面临同样的困惑。在这种情况下,V模型的概念仍然是有用的,但在需求不明确的情况下更难应用,因为不管要开展什么工作,要测试什么,首先需要明确知道开发了什么。

    V模型的反对者可能会声称V模型不适用于极限编程(XP),在XP中提倡快速开发,结对编程,在编码之前就已完成测试用例。首先,我们提倡同时应用这两种方法,另外,也需要指出的是XP方法也强调在编程之前尽可能发现需求。

    V模型没有明确说明需求和设计文档应如何定义,要定义多少文档,同时V模型也没有说明在各测试阶段如何进行测试设计。在采用XP策略的开发过程中,V模型的支持者认为,可以将单元测试应用于所划分的各个代码片段上,但V模型没有定义各单元测试之间应如何匹配。只在必要的时候,才需要进行集成测试,而最终意义上的集成测试也就是系统测试。尽管一些XP工作者将这些测试看作为“验收测试”,其实际目的只是希望降低让用户进行测试的必要性,同时又希望能确保系统在功能上满足用户业务的需要。

    V模型的替代品--X模型?


    也许是由于V模型存在已有了一段时间,它曾带来过一定程度上的滥用,尤其是在那些Internet时代比较紧急的项目中。

    Marick认为:"我们对V模型的需要就象是鱼对自行车的需要一样。"在他的文章中提出了测试过程的新模型。他认为,有些测试要比商业行为更早些,而另外一些测试则要在更晚的时候得以进行。而且,V模型使人很难对不同阶段的系统描述进行综合。

  • 软件测试中常用术语定义

    2006-12-11 16:15:53



    术语:软件测试
    定义:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例,并利用这些测试用例运行软件,以发现软件错误的过程。
    术语:测试用例
    定义:测试用例指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略的文档;内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等。
    术语:测试计划
    定义:测试计划是指对软件测试的对象、目标、要求、活动、资源及日程进行整体规划,以保证软件系统的测试能够顺利进行的计划性文档。
    术语:测试对象
    定义:测试对象是指特定环境下运行的软件系统和相关的文档。作为测试对象的软件系统可以是整个业务系统,也可以是业务系统的一个子系统或一个完整的部件。
    术语:测试流程
    定义:测试流程是指为了保证测试质量而精心设计的一组科学、合理、可行的有序活动。比较典型的测试流程一般包括“制定测试计划”、“编写测试用例”、“执行测试”、“跟踪测试缺陷”、“编写《测试报告》”等活动。
    术语:测试评估
    定义:测试评估是指对测试过程中的各种测试现象和结果进行记录、分析和评价的活动。
    术语:《测试报告》
    定义:《测试报告》是一份有关本次测试的总结性文档,主要记录了有关本次测试的目的、测试结果、评估结果及测试结论等信息。
    术语:测试环境
    定义:测试环境指对软件系统进行各类测试所基于的软、硬件设备和配置。一般包括硬件环境、网络环境、操作系统环境、应用服务器平台环境、数据库环境以及各种支撑环境等。
    术语:白盒测试
    定义:白盒测试是指基于一个应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件的测试,白盒测试又叫“结构测试”
    术语:黑盒测试
    定义:黑盒测试是指不基于内部设计和代码的任何知识,而基于需求和功能性的测试,黑盒测试又叫“功能测试”。
    术语:单元测试
    定义:单元测试是指针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作,单元测试又称模块测试。
    术语:集成测试
    定义:集成测试是指对程序模块采用一次性或增值方法组装起来,对模块间接口进行正确性检验的测试工作,集成测试又称组装测试。
    术语:系统测试
    定义:系统测试是指将通过集成测试的软件系统或子系统,作为基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素组合在一起所进行的测试工作;目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方。
    术语:确认测试
    定义:确认测试是指在模拟(或正式)的生产环境下,运用黑盒测试的方法,验证所测软件是否满足用户需求说明书中所列出的需求,确认测试又称有效性测试。
    术语:功能测试
    定义:功能测试是指为了保证软件系统功能实现的正确性、完整性及其他特性而进行的测试。
    术语:性能测试
    定义:性能测试是指为了评估软件系统的性能状况和预测软件系统性能趋势而进行的测试和分析。
Open Toolbar