宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒

发布新日志

  • 缺陷管理流程

    2007-10-19 11:50:41

    自己写了一份。还有一份是别人写的。

  • QTP的基本使用函数

    2007-10-13 12:32:06

    QTP的基本使用函数:

    1,获取对话框相应的文字: GetVisible Text

    2,查找相应的字符串: instr (1,查找目标字符串,所查找的字符串)

    3,随机数的获取: Randomnumber.Value() 或cstr(int(Rnd*10)+1)

    4,等待函数: Wait(秒数)

    5,获取数组下标: UBound (数组名)

    6,拆分数组:Split(MyString, ",", -1, 1)

    7,可执行步骤:OptionalStep

    8,报告信息: Reporter.ReportEvent 3, "Save Step", "Out of cycle!"

    9,判断对话框是否存在: .exist

    10,事件过滤函数:Reporter.Filter=过滤条件(0123)0代表显示所有的errorwarning,1,显示error,2,显示waining,3,任何errorwarning都不显示。

    11,循环函数:do … loop untilfor…to… then next,while.

    12数据表格:DataTable,向外赋值,Dim aa = DataTable.value(“CellingName”,”ActionName”).

    13,获得对象属性的三种方法GetTOPropertyGetTOProperties,GetROProperty,GetTOProperty获得程序中对象当前的属性,GetTOProperties获得当前属性所有集合,GetROProperty获得的是录制时对象所获得的属性。

    14,检查点方法check和输出指定属性值output

    15,函数Descrīption,可以获得某页面同标签的属性进行操作。

    16,函数nagative可以随便跳转页面到指定的URL

    17,函数Object可以获得当前页面同属性的控件。

    18,函数Focus可以让控件获得焦点,函数Blur则是失去焦点,click单击,dbclick双击。

    19,函数setAttribute可以设置控件属性,getAttribute可以获得属性。

    添加数据:

    1.       在每个要覆盖的域添加checkpoint

    2.       在不能同名的必填字段里,添加随机函数,循环增加。

    查询数据:

    1.      先添加数据,再查询数据更新,更新成功时设置checkpoint

    2.        最后删除成功时设置checkpoint

  • 转QTP脚本

    2007-10-13 12:30:59

    GetCellData函数 

      作用:获取单元格的值

      例:  rowCount = Browser("xxx ").Page("xxx ").Frame("xxx").WebTable("xxx").RowCount
    For counter = 1 To rowCount
      text = Browser("xxx").Page("xxx").Frame("xxx").WebTable("xxx").GetCellData(counter,1)
      If (text = "xxx") Then
        counter = counter - 1
        selectNO = "#" & counter
        Browser("xxx").Page("xxx").Frame("xxx").WebRadioGroup("xxx").Select selectNO
        Exit For
      End If
    Next

    2.把值插入datatable里

      例:   datatable.setcurrentrow(i)
            datatable.value("name","Global")="name"
            datatable.value("passwd","Global")="passwd"

    3.用代码来启动浏览器

      Browser1 = "IE"
      StartURL = "www.51testing.com"
      IF Browser1 = "IE" THEN
         set IE = CreateObject("InternetExplorer.Application")
         IE.Visible = true
         IE.Navigate StartURL
      END IF
     

    4.ExecuteFile函数

      作用:ExecuteFile 可以直接执行vbs文件,而不需要将其导入resource中 
           ExecuteFile FileName 
      说明:where FileName is the absolute or relative path of your VBscrīpt file.

      例:ExecuteFile("F:\test.vbs")

    5.Strcomp函数 

      作用:比较文本

      例:dim strtext1,strtext2,str ,str1,comp1
         strtext1 = "xxx"
         strtext2 = "xxx"
         str = VbWindow("xxx").VbWindow("xxx").VbLabe1("xxx").GetTOProperty("text")
         str1= VbWindow("xxx").VbWindow("xxx").VbLabel("xxx").GetTOProperty("text")
         comp1=strcomp(strtext1,str,0)
         If  comp=0 Then
              msgbox “这两个串相等”
         else
           msgbox str
         End If 

    6.CaptureBitmap 

      作用:捕获屏幕

    7. GetROProperty

      作用:取对象属性值

      例:VbWindow("xxx").VbWindow("xxx").VbWindow("xxx").ActiveX("xxx").GetROProperty("TextMatrix(1,0)") 

    8.ExitAction - 退出当前操作,无论其循环属性如何。
      ExitActionIteration - 退出操作的当前循环。
      ExitRun - 退出测试,无论其循环属性如何。
      ExitGlobalIteration - 退出当前全局循环。


    9.如何使用Excel对象处理数据?
      Dim xl
      打开excel文件
      Function OpenExcelFile(strFilePath)
      Set xl = CreateObject("Excel.Application")
      xl.Workbooks.Open strFilePath
      End Function
      获得指定单元格数据
      Function GetCellData(strSheet,rwIndex,colIndex)
      GetCellData = xl.WorkSheets(strSheet).Cells(rwIndex,colIndex)
      End Function
      填充单元格数据
      Function PutCellData(strSheet,rwIndex,colIndex,varData)
      xl.WorkSheets(strSheet).Cells(rwIndex,colIndex) = varData
      End Function
      保存并推出
      Function SaveAndQuit()
      xl.Activeworkbook.save
      xl.Quit
      Set xl = nothing
      End Function

    10.连接sql数据库

      例:Dim res,cmd,sql
         Set Res=createobject("adodb.recordset")
         Set Cmd=createobject("adodb.command")
         Cmd.activeconnection="Provider=SQLOLEDB.1;Password=111111;Persist Security Info=True;User ID=sa;Initial Catalog=xhq;Data Source=192.168.191.142"  '这句话是连接数据库的数据源,要做修改
        Cmd.CommandType = 1
        sql="selec t * from 表 where name=username"
        Cmd.CommandText = sql
        Set res = Cmd.Execute()
        Set res = nothing
        Set cmd.ActiveConnection = nothing
        Set Cmd= nothing

    下拉选项:

    Browser("盗抢险业务管理系统_2").Page("盗抢险业务管理系统_3").Frame("content3").WebList("unittype").Select "行车保 SEG9888-DR10"

    日期设置:

    Browser("盗抢险业务管理系统").Page("盗抢险业务管理系统_5").Frame("content3").WebEdit("assurebirthday").Set "2007-11-11"

    复选框设置:

    Browser("Serp3.0Web——XXXXXXX").window("XXXXXXXX").page("XXXXXXXX").Frame("Frame").WebCheckBox(index:=1).set "on"
    试试
    其中(index:=1)中的1可以是0、1、2、3、4、5、6,

    Environment("ActionIteration")是action运行的次数,是个环境变量啊

    index的值当然可以参数化,比如你可以在DataTable里定义一个变量a来存你想点的第几个复选

    然后代码就是 WebCheckBox("index:="&DataTable("a",dtLocalSheet))
  • EXECL导入oracle数据库最简单的方法

    2007-10-12 17:05:09

    EXECL导入数据库的方法应有很多。

    记下日把EXECL导入oracle时最简单的办法。就是在PL/SQL里把表打开edit状态。从execl里COPY后pase到oracle里就OK。

  • TD服务器系统崩溃后恢复系统。

    2007-10-12 11:42:35

    前日,TD服务器系统由于C盘有坏道系统突然崩溃。没有做备份。怎么办呢?还好数据库是安装在E盘在新的操作系统里还能找到数据库文件。mdf及ldf.想想数据库文件都还在恢复就有希望。还在等什么呢?

    在新的操作系统里重新安装TD服务。如何安装TD说过很多次了,在这里就不重复。第一步:在新的TD系统的管理siteAdmin里,新建和旧系统时一样的域名和项目。第二步:在SQL企业管理器时找到对应的数据库实例。把原来的数据库删除。第三步:上一级在数据库右键-所有任务-附加数据库。在附加数据库窗口时把要附加数据库的MDF文件增加上。成功了一半,这时通过TD客户端还是不能访问这个项目,会提示数据库不能联接。这就要解决独立用户。第四步:在查询分析器里运行以下脚本,粗体字部分请改为自己建项目的数据库名。这样项目就可以用admin用户进入。以前写的BUG记录也都在。一个也不少。之前的用户就不在了,需要手动增加。在原TD安装目录C:\TD_Dir\Default\B_model\Settings\Privat下可以看到之前的用户。这是这两天我恢复系用的方法,大家还有什么更好的办法。欢迎交流。


    /****************************************************/
    --名称:AloneUser
    --功能:解决孤立用户td
    /*****************************************************/

    --if have others login, add the codes before here
    -------------------------------------------------

      Exec sp_configure 'allow updates','1'
      Reconfigure With OverRide
      Go

        Declare @sid varbinary(85)
        Select @sid=sid from Master.dbo.syslogins where name='td'

    --SafeMonitor & Center------------
        if Exists(Select * From Master.dbo.SysDatabases Where name='default_b_model_db')
          Exec sp_ExecuteSql N'Update default_b_model_db.dbo.sysusers Set sid=@insid Where name=''td'' ',
                             N'@insid varbinary(85)',
                             @sid
    ------------------------------------------------------------
      Exec sp_configure 'allow updates','0'
      Reconfigure With OverRide
      Go

  • 面向对象程序设计特性

    2007-09-26 10:56:28

    面向对象程序设计语言包含信息隐藏&数据抽象&动态联
    编和继承四个特性$信息隐藏通过减少构件间依赖程度提高软
    件系统可靠性和可修改性$使构件内的属性和方法$仅在完成
    系统功能而必须在构件间交换时才能进行传递%数据抽象定义
    数据类型和施加于该类型对象上的操作$并限定了对象的值只
    能通过使用这些操作修改和观察%动态联编使程序员向一个对
    象发送消息而不涉及系统如何实现操作时可继续执行%继承是
    在类&子类及对象间自动共享数据和方法的机制$它是面向对
    象程序设计核心!
    : 继承图
    继承是面向对象程序设计语言的主要机制$它允许从父类
    继承相同代码! 继承可分为单继承&多继承和重复继承$这些继
    承可表示为一个有向无环图./"0$1#$其中0 是类集$继承边
    集1;<",$2#32 继承, 且,$2!0=$分为树边和向前边两种继承
    边$树边在图中父类连接子类%向前边由祖先连接子孙$为避免
    无休止循环$子孙连接祖先!
    :$% 单继承
    单继承是每个类至多有一个父类! 它是一种树形结构$因
    此不会产生二义性问题!
    :$! 多继承
    定义%’多继承图.4(56"0$1#是一个有向图$其中0 是类
    集$1 是继承边集$且至少存在一个结点7!0$其入度不小于
    !! 多继承可从几个类中继承产生新类$从而新类包含多个父类
    的各种属性$因此有利于代码复用! 但多继承易产生软件设计
    和执行的错误$增加软件测试的难度$因此应尽量避免使用多
    继承!
    :$: 重复继承
    定义!’重复继承图.8$*6"9$:#由多继承图.4(56"0$1#和
    相同父结点7!9 组成$其中0"9 且1":! 因此一个类可多继
    承其它类且被继承的类有一个相同的父类! 在重复继承图中$
    至少包含三个结点且包含封闭区域!
    单继承&多继承和重复继承如图% 所示!
    :$> 单元重复继承
    定义:’若重复继承图.8$*6"9$:#的其结点数与边数相等$
    则. 称为单元重复继承!
    重复继承有如下结论’
    "%#若继承图. 包含重复继承$则. 可分解为?5@ 集$即’
    .%#.!;.$"0%%0!;0#%"1%%1!;1#
    "!#设是继承图.6"0$1#的邻接矩阵$则!8 的元素+$-
    是从7+
    到7-
    长度为8 的不同路径数$其中7+$7!!0%若. 是重
    复继承图$则存在长度不小于! 的继承路径!

  • SQA到底是什么?

    2007-09-24 11:23:39

    SQA(软件质量保证)是CMM2级中的一个重要关键过程区域,它是贯穿于整个软件过程的第三方独立审查活动,在CMM的过程中充当重要角色。
      SQA的目的是向管理者提供对软件过程进行全面监控的手段,包括评审和审计软件产品和活动,验证它们是否符合相应的规程和标准,同时给项目管理者提供这些评审和审计的结果。因此,满足SQA是达到CMM2级要求的重要步骤之一

    背景
      对任何制造业企业来说,质量保证活动都是必不可少的。第一个正式的质量保证和控制职能部门于1916年在贝尔实验室出现,此后迅速风靡整个制造业。软件的质量标准首先出现在20世纪70年代军方的软件开发合同中,此后得到了广泛的应用。在软件越来越普及的今天,"软件质量保证"更成为软件开发企业和最终用户所关心的问题。
      实践证明,软件质量保证活动在提高软件质量方面卓有成效。IBM360/370系统软件的开发经验证明了这一点,IBM的有关报告指出,在8年的时间里,软件质量提高了3~5倍,而SQA是其质量体系中的一个重要组成部分。
    目标
      SQA组织并不负责生产高质量的软件产品和制定质量计划,这些都是软件开发人员的工作。SQA组织的责任是审计软件经理和软件工程组的质量活动并鉴别活动中出现的偏差。
      软件质量保证的目标是以独立审查的方式监控软件生产任务的执行,给开发人员和管理层提供反映产品质量的信息和数据,辅助软件工程组得到高质量的软件产品,其主要工作包括以下三个方面:
      ● 通过监控软件的开发过程来保证产品的质量;
      ● 保证生产出的软件和软件开发过程符合相应的标准与规程;
      ● 保证软件产品、软件过程中存在的不符合问题得到处理,必要时将问题反映给高级管理者。
      从软件质量保证的目标中可以看出,SQA人员的工作与软件开发工作是紧密结合的,需要与项目人员沟通。因此SQA人员与项目人员的合作态度是完成软件质量保证目标的关键,如果合作态度是敌意的或者是挑剔的,则软件质量保证的目标就难以顺利实现。
    任务
      软件质量保证的主要作用是给管理者提供实现软件过程的保证,因此SQA组织要保证如下内容的实现:
      ● 选定的开发方法被采用;
      ● 选定的标准和规程得到采用和遵循;
      ● 进行独立的审查;
      ● 偏离标准和规程的问题得到及时的反映和处理;
      ● 项目定义的每个软件任务得到实际的执行。
      相应地,软件质量保证的主要任务有以下方面:
    ● SQA审计与评审
      其中,SQA审计包括对软件工作产品、软件工具和设备的审计,评价这几项内容是否符合组织规定的标准。SQA评审的主要任务是保证软件工程组的活动与预定义的软件过程一致,确保软件过程在软件产品的生产中得到遵循。
    ● SQA报告
      SQA人员应记录工作的结果,并写入到报告之中,发布给相关的人员。SQA报告的发布应遵循3条基本原则:SQA和高级管理者之间应有直接沟通的渠道、SQA报告必须发布给软件工程组但不必发布给项目管理人员、在可能的情况下向关心软件质量的人发布SQA报告。
    ● 处理不符合问题
      这是SQA的一个重要的任务,SQA人员要对工作过程中发现的不符合问题进行处理,及时向有关人员及高级管理者反映。在处理问题的过程中要遵循两个原则:其一,对符合标准过程的活动,SQA人员应该积极地报告活动的进展情况以及这些活动在符合标准方面的效果;其二,对不符合标准过程的活动,SQA要报告其不符合性以及它对产品的影响,同时提出改进建议。
    实施
      软件质量保证任务的实现需要考虑几方面的问题。首先,要考虑SQA人员的素质。SQA人员的责任是审查软件设计、开发人员的活动,验证他们是否将选定的标准、方法和规程应用到活动中去,因此,SQA工作的有效执行需要SQA人员掌握专业的技术,例如质量控制知识、统计学知识等。其次,SQA人员的经验对任务的实现同样重要。应该选择那些经验丰富的人来做SQA,同时为SQA人员进行专门的培训,以使他们能够胜任这项工作。第三,组织应当建立文档化的开发标准和规程,使SQA人员在工作时有一个依据、判断的标准,如果没有这些标准,SQA人员就无法准确地判断开发活动中的问题,容易引发不必要的争论。第四,高级管理者必须重视软件质量保证活动。在一些组织的软件生产过程中,高级管理者不重视软件质量保证活动,对SQA人员发现的问题不及时处理。如此一来,软件质量保证就流于形式,很难发挥它应有的作用。第五,SQA人员在工作过程中一定要抓住问题的重点与本质,不要陷入对细节的争论之中。SQA人员应集中审查定义的软件过程是否得到了实现,及时纠正那些疏漏或执行得不完全的步骤,以此来保证软件产品的质量。
      此外,做好软件质量保证工作还应该有一个计划,用以规定软件质量保证活动的目标,执行审查所参照的标准和处理的方式。对于一般性项目,可采用通用的软件质量保证计划,而对于那些有着特殊质量要求的项目,则必须根据项目自身的特点制定专门的计划。
      总之,软件质量保证是软件过程中的独立审查活动,它从一个侧面反映了现行软件过程能力的成熟度水平。软件质量保证活动是贯穿整个软件过程的,那种到编码之后才开始关心质量的做法是极其错误的。

  • 静态测试和动态测试

    2007-09-23 22:36:13

    静态测试是指测试不运行的部分:只是检查和审阅,如规范测试、软件模型测试、文档测试等.动态测试是通常意义上的测试,也就是运行和使用软件
  • 集成测试

    2007-09-23 22:07:33

    集成测试(也叫组装测试联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。

          集成测试识别组合单元时出现的问题。通过使用要求在组合单元前测试每个单元并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。这种方法将可能发生的情况数量减少到更简单的分析级别。

          集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。也就是说,在集成测试之前,单元测试应该已经完成,集成测试中所使用的对象应该是已经经过单元测试的软件单元。这一点很重要,因为如果不经过单元测试,那么集成测试的效果将会受到很大影响,并且会大幅增加软件单元代码纠错的代价。

          集成测试是单元测试的逻辑扩展。在现实方案中,集成是指多个单元的聚合,许多单元组合成模块,而这些模块又聚合成程序的更大部分,如分系统或系统。集成测试采用的方法是测试软件单元的组合能否正常工作,以及与其他组的模块能否集成起来工作。最后,还要测试构成系统的所有模块组合能否正常工作。集成测试所持的主要标准是《软件概要设计规格说明》,任何不符合该说明的程序模块行为都应该加以记载并上报。

          所有的软件项目都不能摆脱系统集成这个阶段。不管采用什么开发模式,具体的开发工作总得从一个一个的软件单元做起,软件单元只有经过集成才能形成一个有机的整体。具体的集成过程可能是显性的也可能是隐性的。只要有集成,总是会出现一些常见问题,工程实践中,几乎不存在软件单元组装过程中不出任何问题的情况。从图1可以看出,集成测试需要花费的时间远远超过单元测试,直接从单元测试过渡到系统测试是极不妥当的做法。

          集成测试的必要性还在于一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,有可能在全局上会暴露出来,影响功能的实现。此外,在某些开发模式中,如迭代式开发,设计和实现是迭代进行的。在这种情况下,集成测试的意义还在于它能间接地验证概要设计是否具有可行性。

          集成测试的目的是确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。它所测试的内容包括单元间的接口以及集成后的功能。使用黑盒测试方法测试集成的功能。并且对以前的集成进行回归测试

    一、集成测试过程

    二、单元测试工作内容及其流程

    三、集成测试需求获取

          集成测试需求所确定的是对某一集成工作版本的测试的内容,即测试的具体对象。集成测试需求主要来源于设计模型(Design Model)和集成构件计划(Integration Build Plan)。集成测试着重于集成版本的外部接口的行为。因此,测试需求须具有可观测、可测评性。

          1. 集成工作版本应分析其协作与消息序列,从而找出该工作版本的外部接口。

          2. 由集成工作版本的外部接口确定集成测试用例

          3. 测试用例应覆盖工作版本每一外部接口的所有消息流序列。

         注意:一个外部接口和测试用例的关系是多对多,部分集成工作版本的测试需求可映射到系统测试需求,因此对这些集成测试用例可采用重用系统测试用例技术。

    四、集成测试工作机制

          软件集成测试工作由产品评测部担任。需要项目组相关角色配合完成。如图示:

          软件评测部:

          软件项目组:

          集成测试工作内容及其流程工作流程:

    五、集成测试产生的工件清单

          1、 软件集成测试计划
          2、 集成测试用例
          3、 测试过程
          4、 测试脚本
          5、 测试日志
          6、 测试评估摘要

    六、集成测试常用方案选型

          集成测试的实施方案有很多种,如自底向上集成测试、自顶向下集成测试、Big-Bang集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试等。在此,笔者将重点讨论其中一些经实践检验和一些证实有效的集成测试方案。

          ·自底向上集成测试

          自底向上的集成(Bottom-Up Integration)方式是最常使用的方法。其他集成方法都或多或少地继承、吸收了这种集成方式的思想。自底向上集成方式从程序模块结构中最底层的模块开始组装和测试。因为模块是自底向上进行组装的,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)事前已经完成组装并经过测试,所以不再需要编制桩模块(一种能模拟真实模块,给待测模块提供调用接口或数据的测试用软件模块)。自底向上集成测试的步骤大致如下:

          步骤一: 按照概要设计规格说明,明确有哪些被测模块。在熟悉被测模块性质的基础上对被测模块进行分层,在同一层次上的测试可以并行进行,然后排出测试活动的先后关系,制定测试进度计划。图2给出了自底向上的集成测试过程中各测试活动的拓扑关系。利用图论的相关知识,可以排出各活动之间的时间序列关系,处于同一层次的测试活动可以同时进行,而不会相互影响。

          步骤二: 在步骤一的基础上,按时间线序关系,将软件单元集成为模块,并测试在集成过程中出现的问题。这里,可能需要测试人员开发一些驱动模块来驱动集成活动中形成的被测模块。对于比较大的模块,可以先将其中的某几个软件单元集成为子模块,然后再集成为一个较大的模块。

          步骤三: 将各软件模块集成为子系统(或分系统)。检测各自子系统是否能正常工作。同样,可能需要测试人员开发少量的驱动模块来驱动被测子系统。

          步骤四: 将各子系统集成为最终用户系统,测试是否存在各分系统能否在最终用户系统中正常工作。

          方案点评: 自底向上的集成测试方案是工程实践中最常用的测试方法。相关技术也较为成熟。它的优点很明显: 管理方便、测试人员能较好地锁定软件故障所在位置。但它对于某些开发模式不适用,如使用XP开发方法,它会要求测试人员在全部软件单元实现之前完成核心软件部件的集成测试。尽管如此,自底向上的集成测试方法仍不失为一个可供参考的集成测试方案。

          ·核心系统先行集成测试

          核心系统先行集成测试法的思想是先对核心软件部件进行集成测试,在测试通过的基础上再按各外围软件部件的重要程度逐个集成到核心系统中。每次加入一个外围软件部件都产生一个产品基线,直至最后形成稳定的软件产品。核心系统先行集成测试法对应的集成过程是一个逐渐趋于闭合的螺旋形曲线,代表产品逐步定型的过程。其步骤如下:

          步骤一: 对核心系统中的每个模块进行单独的、充分的测试,必要时使用驱动模块和桩模块;

          步骤二: 对于核心系统中的所有模块一次性集合到被测系统中,解决集成中出现的各类问题。在核心系统规模相对较大的情况下,也可以按照自底向上的步骤,集成核心系统的各组成模块。

          步骤三: 按照各外围软件部件的重要程度以及模块间的相互制约关系,拟定外围软件部件集成到核心系统中的顺序方案。方案经评审以后,即可进行外围软件部件的集成。

          步骤四: 在外围软件部件添加到核心系统以前,外围软件部件应先完成内部的模块级集成测试。

          步骤五: 按顺序不断加入外围软件部件,排除外围软件部件集成中出现的问题,形成最终的用户系统。

          方案点评: 该集成测试方法对于快速软件开发很有效果,适合较复杂系统的集成测试,能保证一些重要的功能和服务的实现。缺点是采用此法的系统一般应能明确区分核心软件部件和外围软件部件,核心软件部件应具有较高的耦合度,外围软件部件内部也应具有较高的耦合度,但各外围软件部件之间应具有较低的耦合度。

          ·高频集成测试

          高频集成测试是指同步于软件开发过程,每隔一段时间对开发团队的现有代码进行一次集成测试。如某些自动化集成测试工具能实现每日深夜对开发团队的现有代码进行一次集成测试,然后将测试结果发到各开发人员的电子邮箱中。该集成测试方法频繁地将新代码加入到一个已经稳定的基线中,以免集成故障难以发现,同时控制可能出现的基线偏差。使用高频集成测试需要具备一定的条件: 可以持续获得一个稳定的增量,并且该增量内部已被验证没有问题; 大部分有意义的功能增加可以在一个相对稳定的时间间隔(如每个工作日)内获得; 测试包和代码的开发工作必须是并行进行的,并且需要版本控制工具来保证始终维护的是测试脚本和代码的最新版本; 必须借助于使用自动化工具来完成。高频集成一个显著的特点就是集成次数频繁,显然,人工的方法是不胜任的。

          高频集成测试一般采用如下步骤来完成:

          步骤一: 选择集成测试自动化工具。如很多Java项目采用Junit+Ant方案来实现集成测试的自动化,也有一些商业集成测试工具可供选择。

          步骤二: 设置版本控制工具,以确保集成测试自动化工具所获得的版本是最新版本。如使用CVS进行版本控制。

          步骤三: 测试人员和开发人员负责编写对应程序代码的测试脚本。

          步骤四: 设置自动化集成测试工具,每隔一段时间对配置管理库的新添加的代码进行自动化的集成测试,并将测试报告汇报给开发人员和测试人员。

          步骤五: 测试人员监督代码开发人员及时关闭不合格项。

          按照步骤三至步骤五不断循环,直至形成最终软件产品。

          方案点评: 该测试方案能在开发过程中及时发现代码错误,能直观地看到开发团队的有效工程进度。在此方案中,开发维护源代码与开发维护软件测试包被赋予了同等的重要性,这对有效防止错误、及时纠正错误都很有帮助。该方案的缺点在于测试包有时候可能不能暴露深层次的编码错误和图形界面错误。

          以上我们介绍了几种常见的集成测试方案,一般来讲,在现代复杂软件项目集成测试过程中,通常采用核心系统先行集成测试和高频集成测试相结合的方式进行,自底向上的集成测试方案在采用传统瀑布式开发模式的软件项目集成过程中较为常见。读者应该结合项目的实际工程环境及各测试方案适用的范围进行合理的选型。


  • 测试用例编写规范

    2007-09-20 21:10:18

      一、测试用例编写准备

    从配置管理员处申请软件配置:《需求规格说明书》和《设计说明书》;根据需求规格说明书和设计说明书,详细理解用户的真正需求,并且对软件所实现的功能已经准确理解,然后着手制订测试用例。

      二、测试用例制定的原则

    测试用例要包括欲测试的功能、应输入的数据和预期的输出结果。测试数据应该选用少量、高效的测试数据进行尽可能完备的测试;基本目标是:设计一组发现某个错误或某类错误的测试数据,测试用例应覆盖方面:

    1、    正确性测试:输入用户实际数据以验证系统是满足需求规格说明书的要求;测试用 例中的测试点应首先保证要至少覆盖需求规格说明书中的各项功能,并且正常。

    2、    容错性(健壮性)测试:程序能够接收正确数据输入并且产生正确(预期)的输出, 输入非法数据(非法类型、不符合要求的数据、溢出数据等),程序应能给出提示 并进行相应处理。把自己想象成一名对产品操作一点也不懂的客户,在进行任意操作。

    3、    完整(安全)性测试:对未经授权的人使用软件系统或数据的企图,系统能够控制的程度,程序的数据处理能够保持外部信息(数据库或文件)的完整。

    4、    接口间测试:测试各个模块相互间的协调和通信情况,数据输入输出的一致性和正确性。

    5、    数据库测试:依据数据库设计规范对软件系统的数据库结构、数据表及其之间的数据调用关系进行测试。

    6、 边界值分析法:确定边界情况(刚好等于、稍小于和稍大于和刚刚大于等价类边界值),针对我们的系统在测试过程中主要输入一些合法数据/非法数据,主要在边界值附近选取。

    7、 压力测试:输入10条记录运行各个功能,输入30条记录运行,输入50条记录运行。。。进行测试。

    8、等价划分:将所有可能的输入数据(有效的和无效的)划分成若干个等价类。

    9、错误推测:主要是根据测试经验和直觉,参照以往的软件系统出现错误之处。

    10、效率:完成预定的功能,系统的运行时间(主要是针对数据库而言)。

    11、可理解(操作)性:理解和使用该系统的难易程度(界面友好性)。

    12、可移植性:在不同操作系统及硬件配置情况下的运行性。

    13、回归测试:按照测试用例将所有的测试点测试完毕,测试中发现的问题开发人员 已经解决,进行下一轮的测试。

    14、比较测试:将已经发版的类似产品或原有的老产品与测试的产品同时运行比较,或与已往的测试结果比较

    说明:针对不同的测试类型和测试阶段,测试用例编写的侧重点有所不同。

    1、  其中第1、2、6、8、9、13项为模块(组件、控件)测试、组合(集成)测试、系统测试都涉及并重点测试的方面。

    2、  单元(模块)测试(组件、控件)测试:重点测试第5项。

    3、  组合(集成)测试:重点进行接口间数据输入及逻辑的测试,即第4项。

    4、  系统测试:重点测试第3、7、10、11、12、14项。

    5、  其中压力测试和可移植性测试如果是公司的系列产品,可以选用其中有代表性的产品进行一次代表性测试即可。

    6、  GMPS基础测试用例设计完成后,其他的测试项目只编写设计与之不同部分的测试用例。

    7、  对于每个测试项目测试的测试用例不是一成不变的,随着测试经验的积累或在测试其他项目发现有测试不充分的测试点时,可以不断的补充完善测试项目的测试用例。

      三、测试用例的填写

    一个软件系统或项目共用一套完整的测试用例,整个系统测试过程测试完毕,将实际测试结果填写到测试用例中,操作步骤应尽可能的详细,测试结论是指最终的测试结果(结论为:通过或不通过)。

  • 测试计划应该如何书写

    2007-09-20 21:09:02

    统阶段测试计划的起止时间:需求规格说明书评审完开始书写,大概在2-7天之内完成。

    (发言人个人认为起始时间为概要设计完成后)

    测试计划内容:

    一、    目的:测试计划目的

    背景:项目名称、用户等信息。

    术语或定义、参考文档

    二、

    2.1资源要求:测试环境的软硬件(包括服务器和客户端,软件的版本也要写清楚)。

    2.2人员及安排:包括任务、时间、人员及此任务输出的产品。任务包括了解软件、书写测试文档,执行测试等。

    2.3测试风险估算:在执行上述任务过程中,有异常情况发生如何处理。例如:开发人员不能及时提交新版本、人员离开等等。

    2.4系统测试启动标志。

    三、

    3.1测试内容:包括几个模块等等。

    3.2测试方法、策略:包括采用何种方法测试,采用手工或自动化测试工具测试。

    3.3测试类型:包括功能测试、安全测试、压力测试等等。

    3.4约束条件(或测试边界):例如测试的软件需要有一定的网络环境,但是本次测试只测试软件,默认网络环境为正常。

  • 面对选择

    2007-09-20 13:12:30

    改变就永恒的,而不变是临时的,人的一生一直会有变,请勇于面对吧,

  • 每秒N条记录到数据库history表中.

    2007-09-19 16:20:08

    思想:统计到history表中一秒中记录数,stamp为写入数据庫的系统时间。convert(varchar,stamp,20),把系统时间转换为秒,SQL里的显示是微秒。在SQL里stamp最好加索引。增加查询速度。

    SQL:
    select top 100 convert(varchar,stamp,20) ,count(1) from history where stamp< getdate()-1 group by convert(varchar,stamp,20)

    oracle:

    select stamp,count(1) from history where stamp>SYSDATE-100 group by stamp order by count(1) desc

  • 查询SQL表的创建时间

    2007-09-12 12:23:12

    方法一:select * from sysobjects t where t.crdate>'2007-08-31'

    方法二:直接到企业管理里打开表的列表,按创建时间排序.就能查到了:P

    sysobjects

    在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。

    列名 数据类型 描述
    name sysname 对象名。
    Id int 对象标识号。
    xtype char(2) 对象类型。可以是下列对象类型中的一种:

    C = CHECK 约束
    D = 默认值或 DEFAULT 约束
    F = FOREIGN KEY 约束
    L = 日志
    FN = 标量函数
    IF = 内嵌表函数
    P = 存储过程
    PK = PRIMARY KEY 约束(类型是 K)
    RF = 复制筛选存储过程
    S = 系统表
    TF = 表函数
    TR = 触发器
    U = 用户表
    UQ = UNIQUE 约束(类型是 K)
    V = 视图
    X = 扩展存储过程

  • 论搜索引擎的评测方法(转)

    2007-09-11 18:10:49

    很久很久以前,搜索引擎还不象今天的百花齐放,人们对它的要求较低,只要它能把互连网上相关的网站搜出来,搜到的网站尽量多一点,无关的网站能少一点就能满足。所以那时候,人们评测搜索引擎的方法是用几个关键词,测试对比它们的搜索速度、搜索数量和无关网站的多少。简单说就是全快准。而那时的搜索引擎技术大家差别不大,所以这样的评测方法是可行的。


      此后,独特的搜索引擎技术此起彼伏,层出不穷,到现在明显处于战国时代。但是,人们的评测方法却没多大变化,现在常见的评测还是简单的用几个关键词比较搜索速度、搜索结果数量和各自介绍的搜索准确性。


      远的不说,就在2001年第一季度升级后的askjeeves,你既可以象打普通电话一样在任何地方用手中的任何电话拨通askjeeves的电话号码,也可以在线惦记页面上的标记进入在线语音状态,用你电脑上的话筒和音箱交流。 然后你随便口头向它提一个要求,它会把你的语音转换成文字,然后分析你的要求,到它的700万标准问题答案、200万多媒体和其他储备库以及internet上去寻找答案,找到后再转换成语音回答你。


      想象一下,如果你问它:“最近美国大选悬而未决,美国人怎么想?”过了一会儿,电脑或电话回答你:“根据最新的调查,假如最后是布什当选,80%的美国人会接受他为合法总统,假如最后是戈尔当选,79%的美国人会接受他为合法总统。”如果你问它:“上届世界杯决赛的球都是谁进的?“ 它在回答你姓名的同时还调出决赛进球的音视频片段让你欣赏(当然音视频片段的前提是你用的不是电话而是电脑)。


      虽然,askjeeves认为它们的语音转换功能和搜索速度已经到了可以商业化的程度,但它还是会有很多不成熟之处的,如果拿几个关键词来测试它的搜索速度和查准率、查全率,和众多的普通搜索引擎相比,该把它排在哪里呢?如果排在很后边,难道它就是很差劲的搜索引擎吗?


      单是评测internet搜索引擎已是件很难的事,而很多评测结果是给普通网民看的,势必要把Yahoo,新浪等门户包括进去,对于它们而言,internet搜索只是一部分,其它各种搜索功能怎么办?你要是不算,偏偏网民用得多;要是算吧,更是一团乱麻,何从比起?

    来,我们先分析一下几个重要评测要素的能力缺陷:

    一:查全率

      既然是搜索引擎,首先比搜索范围是天经地义的事,如果这条不及格,后边的评测好象也不用参加了。由于收录网页的数量都是各搜索引擎自己宣布的,未可全信,而同一个关键词的搜索结果却是显而易见的,所以一般的评测都以这个为准。
      但以这个为准还是有很多毛病,多数象样一点的搜索引擎我都可以找出一批关键词来证明它的搜索结果是最全的。因为网页索引数量虽然有大小,但robot和spider程序不同,索引范围和索引标准也不尽相同,在最大的搜索引擎上搜不到的有可能在小得多的搜索引擎上搜到。


      有的搜索引擎支持“的,about,了,of,啊,么”等虚词助词搜索,有的不支持,这又如何来比?哪次评测提到过?
    关键词除了内容难选择,在长短上也不好定。有的搜索引擎完全不支持单个汉字搜索,怎么算它?一般都只比较单关键词搜索,而多关键词的搜索呢?长句的搜索呢?甚至有搜索引擎能支持任意文章或片段作为关键词,这样比较出来的结果跟单关键词搜索出来的可是不一样的,更别提没法比的功能了。象excite这样语义搜索的引擎,还有支持模糊搜索的引擎,别的搜索引擎搜索结果极少甚至为零的关键词它们可以搜出一大堆结果,这又如何比较?


      最后一点,搜索引擎是可以针对特定的关键词进行结果优化的,评测的公正性谁来保证?如果其中某个被评测搜索引擎事先知道所用的关键词,那么只要轻松优化一下,冠军就非它莫属了。

    二:搜索速度

      比完了查全率,就该比搜索速度了,如果有搜索引擎索引的网页虽多,但是搜索一次要五、六秒或更长,直接请它出局吧,没有比下去的意义了。


      速度的问题首先还是在关键词,单关键词搜索快的不一定多关键词搜索快。
      然后是访问量的问题,对一个日访问量一亿以上的搜索引擎和一个日访问量几万的搜索引擎作同样的测试本身已是不公平。
      还有网页索引数量的问题,一个搜索引擎索引了10亿的网页,另一个搜索引擎索引了一千万的网页,让它们对同一个关键词在各自的数据库里搜索比搜索速度,这样的结果如何让人信服?


      除了事先优化的问题外,有的搜索引擎本就具有记忆搜索结果加速调用的能力,一个关键词哪怕第一词搜索花了10秒,第二次搜索也许就2秒了,第三次,第四次,到你去测试的时候已经永远是0.0001秒了。这样,如果你选常见词测试,它快得惊人,如果来个偏僻词,也许老半天出不来,到底该选什么关键词?常用和偏僻各占多少?这真是一笔糊涂帐。


      搜索引擎不是放在实验室的本地机上测试用的,而是给普通网友用的,所以这搜索时间应该还包括搜索界面和搜索结果的传输过程在内。一个搜索引擎搜索时间花了0.0001秒,但是传输结果网页花了3秒,另一个搜索花了0.5秒,但是传输网页结果花了一秒,你说哪个搜索引擎算快?真正用的时候,你选那个3.0001秒以后看到搜索结果的还是1.5秒以后看到搜索结果的?

    三:查准率

      这个相当重要,搜到的东西即使又多又快,但你想要的那条结果不知道要翻多少页才能找到,那这搜索结果要来何用?这样的搜索引擎只有在查稀罕东西时才有用,但是要查稀罕东西应该去元搜索引擎呀,干吗要用它?查准率的评价标准很难定,得看你查什么,你要查一个特定的网站和找一群相似网站根本就是两回事。查准率的关键还是在于要搜什么和选择什么关键词,评测人可以随意定夺的,然后影响到评测结果的可靠性。

    四:死链接

      普通搜索引擎总有些搜索结果是点不进去的,少到百分之一二,多到百分之八九,这个也常被用作评测条件之一。但是象google使用了网页快照功能,几乎不存在死链接问题,就算搜索结果中的那个网站已关闭,你还是可以看到google自己储存的网页。这种死链接怎么计算?

    五:用户负担

      还没见过国内搜索引擎评测有谁用过这一项,但它是评价搜索引擎优劣的重要因素,包括很多方面。搜索引擎是给人用的,一定要让人用得舒服方便快捷,任何妨碍和延迟用户到达最终搜索结果的都算用户负担。


      首先是搜索界面,一个只有搜索框的纯粹搜索引擎界面跟一个带有广告和大量网页内容的门户相比,它们带给用户的搜索负担是高下立判的。

      其次是搜索结果描述,搜索结果网页的文字描述是长还是短,网页文字描述采用索引带关键词的部分还是索引网页的开始几行还是索引网页的主要内容,关键词是否高亮显示又采用什么颜色,是否显示网页地址,还有搜索结果页面的布局,这些对于用户的搜索负担区别大大的有。

      再者就是对用户操作步骤的影响,是否可以用鼠标启动搜索,搜索结果每页显示数量是否只有10条,翻页的便捷与否,搜索框是两个还是一个,放在上边还是下边,一次搜索后关键词是否还在搜索框中显示,这些每一条都会影响搜索效率。

    六:其它还有

    是否支持本目录下搜索,
    internet索引数据库更新时间长短,
    搜索引擎的稳定性,
    对高级搜索的支持能力强弱等也应该加以评测。

      一个人想得不一定周到,可能还有其它重要评测要素没被我提及,网友若想到,望告知。看到这里,大家对目前常用搜索引擎评测方法的局限性一定有所了解了,当然最可笑的是,不知是无知还是猫腻还是选择标准比较特别,有的中文搜索引擎评测今年才做竟然没有包括google ,就好象排一长串小提琴名人却漏了帕格尼尼,呵呵。

    评测搜索引擎实在是件很难的事。

  • SQL查询重复记录

    2007-09-10 14:32:59

    SQL:

    select   cust_id,ISDELETED,count(*)   from   VEHICLE   
    group   by   cust_id ,ISDELETED
    having   count(*)>1

    oracle:

    select   rowid,bdsszd   from   TABLEAA   a   where   a.rowid   !=   (select   max(rowid)   from   TABLEAA   b   where   a.bdsszd   =b.bdsszd)     
     

  • 双机热备的基本概念

    2007-09-05 11:09:58

    问:能解释一下什么是双机热备吗?
        答:所谓双机热备,就是将中心服务器安装成互为备份的两台服务器,并且在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会迅速的自动启动并运行(一般为2分钟左右),从而保证整个网络系统的正常运行!双机热备的工作机制实际上是为整个网络系统的中心服务器提供了一种故障自动恢复能力。

        问:什么时候需要双机热备呢?
        答:这个问题其实比较简单,一般服务器要长年累月的工作,其备份工作就绝对少不了。所以,决定是否使用双机热备,笔者觉得应首先对系统的重要性,以及终端用户对服务中断的容忍程度进行考虑,然后再来决定是否使用双机热备。比如网络中的用户最多能容忍多长时间恢复服务?如果服务不能很快恢复会造成什么样的后果等等。

        问:已经采取了RAID技术和数据备份技术,还有必要做双机热备吗?
        答:这其实没有个明确的区分,RAID和数据备份都同等重要!数据备份只能解决系统出现问题后的恢复;而RAID技术,以笔者的使用经验来看又只能解决硬盘的问题。我们知道,当服务器本身出现问题时,不论是设备的硬件问题还是软件系统的问题,都会造成服务的中断,而RAID及数据备份技术恰恰就不能解决避免服务中断的问题。所以,对于高安全需求、持续可靠的提供应用服务的网络系统来说,双机热备还是非常重要的。其实我们可以这样想:如果你的服务器坏了,你要用多少时间将其恢复到能正常工作?这样你就能理解双机热备的重要性了!

        问:双机热备方案与集群的区别?
        答:从概念上来讲,双机热备属于集群中的一种。集群一般包括两类:一类是纯应用服务器的集群,即各个应用服务器都访问统一的数据库服务器,但彼些并不需要文件共享存储等,这种集群是比较简单的。另一类是数据库服务器的双机热备,这种双机热备实现,一般是两台服务器同时使用共享的存储设备,并且在普遍的情况下,均采取主、备的方式(也有高端的系统采用并行的方式,即两台服务器同时提供服务)。

        问:数据库服务如何使用双机热备?
        答:通过软件方式实现双机热备。即不采用共享的存储设备,而是本机数据可以直接在多台主机间流动。显而易见,此种方式最大的优点就是节约了昂贵的存储设备投资,而其缺点也不难发现:会产生数据的前后不一致、或者会影响数据库读取的速度。我们看看这样一个例子:如果在服务中断时切换到备份服务器,则可能有少量已经在主机完成的事务在备机上尚未实现。而与备份数据的恢复不同,备机启动后,后面的操作已经进行,因此丢失的数据包要找回就相当难。故此种方式适用于对于丢失少量数据不是非常敏感的系统。

        在这儿提一下标准的解决方法,即基于共享存储设备和双机软件实现双机热备。它可以在无人值守的情况下提供快速的切换,并且不会有数据丢失现象,而购买存储设备等投资也会比较高。

        问:如何选择与实施双机热备的配置方案?
        答:1. 以应用为主导,进行认真的分析。以高可用性为宗旨。
            2. 考虑是采用数据库双机热备还是应用服务器集群、还是软件备份方式。
            3. 选择确定具体的设备、软件的型号等。笔者在这里提醒大家,不同的软件或是硬盘等存储设备,他们之间存在兼容性的问题,因此在购买之前应咨询专业人员,不要出现采购了双机软件对相关的存储设备存在不兼容等现象。
            4. 在实施完成后,一定要进行测试,以确保工作正常,而且应注意在运行过程中定期的对系统是否能够正常切换进行测试


    该文章转载自网络大本营:http://www.xrss.cn/Dev/SERVER/200782315957.Html

  • 歌(转)

    2007-09-05 10:52:19

    一、THE SIGNIFICANCE OF FAILURE
      Robert H. Schuller
      Failure doesnt mean you are a failure,
      It does mean you havent succeeded yet.
      Failure doesnt mean you have accomplished nothing,
      It does mean you have learned something.
      Failure doesnt mean you have been a fool,
      It does mean you had a lot of faith.
      Failure doesnt mean youve been disgraced,
      It does mean you were willing to try.
      Failure doesnt mean you dont have it,
      It does mean you have to do something in a different way.
      Failure doesnt mean you are inferior,
      It does mean you are not perfect.
      Failure doesnt mean youve wasted your life,
      It does mean you have a reason to start afresh.
      Failure doesnt mean you should give up,
      It does mean you must try harder.
      Failure doesnt mean youll never make it,
      It does mean it will take a little longer.
      Failure doesnt mean God has abandoned you,
      It does mean God has a better idea.
      
      十大策略失败的意义
      罗伯特·H·舒勒
      
      失败并不代表你是个失败者,
      它只表明你尚未成功。
      失败并不代表你一无所获,
      它只表明你吸取了一次教训。
      失败并不代表你很愚蠢,
      它只表明你信心百倍。
      失败并不代表你无脸见人,
      它只表明你百折不回。
      失败并不代表你工夫白费,
      它只表明你的做事方法尚待改进。
      失败并不代表你低人一等。
      它只表明你并非完人。
      失败并不代表你浪费生命,
      它只表明你有理由重新开始。
      失败并不代表你应该放弃,
      它只表明你要加倍努力。
      失败并不代表成功永不属于你,
      它只表明你要付出更多的时间。
      失败并不代表上帝已经抛弃你,
      它只表明上帝还有更好的主意。
      
      

    二、FOLLOW YOUR OWN COURSE
      Neil Simon
      
      
      Dont listen to those who say,
      “Its not done that way.”
      Maybe its not, but maybe you will.
      Dont listen to those who say,
      “Youre taking too big a chance.”
      Michelangelo would have painted the Sistine Floor,
      and it would surely be rubbed out by today.
      Most importantly, dont listen
      When the little voice of fear inside of you
      rear its ugly head and says,
      “Theyre all smarter than you out there.
      Theyre more talented,
      Theyre taller, blonder, prettier, luckier and have connections...”
      I firmly believe that if you follow a path that interests you,
      Not to the exclusion of love, sensitivity, and cooperation with others,
      But with the strength of conviction
      That you can move others by your own efforts,
      And do not make success or failure the criteria by which you live,
      The chances are youll be a person worthy of your own respect.
      
      走自己的路
      尼尔·西蒙
      
      别听那些人的话,
      “这事不能那么做。”
      也许是不能那么做,可是也许你就会那么做。
      别听那些人的话,
      “你这个险冒得太大了。”
      米开朗琪罗可能在西斯廷教堂的地板上作过画,
      到今天肯定已经被抹掉了。
      最重要的是,
      当你心中恐惧的声音,
      抬起它丑陋的头说,
      “那边那些人都比你聪明,
      他们更有才华,
      他们更高大、皮肤更白、更漂亮、更幸运,
      并且认识各种各样的人…”
      你可千万别理会。
      我坚信只要选择一条你感兴趣的路,
      不排除爱情、敏锐以及与别人的合作,
      而是坚定地认为,
      通过你自身的努力能够感动他人,
      不把成功或者失败作为你生活的标准,
      那么你就可能成为值得自己敬佩的人。
      
      
    三、FAITH
      Napolean Hill
      
      
      Faith is the “eternal elixir”
      Which gives life, power, and action to the impulse of thought!
      Faith is the starting point of all accumulation of riches!
      Faith is the basis of all “miracles”,
      And all mysteries which cannot be analyzed by the rules of science!
      Faith is the only known antidote for failure!
      Faith is the element, the “chemical” which,
      When mixed with prayer, gives one direct communication with Infinite Intelligence.
      Faith is the element which transforms the ordinary vibration of thought, created by the finite mind of man, into the spiritual equivalent.
      Faith is the only agency through which
      the cosmic force of Infinite
      Intelligence can be harnessed and used by man.
      
      信念
      拿破仑·希尔
      
      信念是“永恒的万应灵药”,
      它赋予突发奇想以生命、力量和行动!
      信念是所有财富积累的起点!
      信念是一切“奇迹”
      以及所有科学法则无法分析的奥秘的根基!
      信念是惟一已知失败之解药!
      信念是重要元素、“化学物质”,
      一旦与祈祷结合便会使你与上帝直接沟通。
      人类的智慧固然有限,
      普通的灵感闪现一经信念指点,
      便会转换成精神震撼。
      信念是惟一的中介,通过它
      上帝的宇宙力会成为人类开发和利用的资源。
      
      
    四、ON CHANGES
      Irene Dunlap
      
      
      Change is the only absolute
      in the world,
      the only thing
      that you can depend on.
      Nothing stays the same.
      Tomorrow will come,
      bringing with it
      new beginnings and sometimes
      unexpected endings.
      You can hold on to the past
      and get left in the dust;
      or, you can choose to
      jump on the ride of life
      and live a new adventure
      with perseverance
      and an open mind.
      
      论变化
      艾琳·邓莱普
      
      变化是世界上
      惟一绝对的东西,
      是惟一
      你能相信的事情。
      没有什么能一成不变,
      明天将来临,
      它会带来
      新的开始,并且有时
      还会带来意想不到的结局。
      你可以抓住过去,
      蒙受遗弃;
      或者,你可以选择
      跃上生命之车
      进行一次新的冒险,
      凭借坚持不懈
      和广阔的胸怀。
      
      
    五、RESULTS AND ROSES
      Edgar Albert Guest
      
      
      The man who wants a garden fair,
      Or small or very big,
      With flowers growing here and there,
      Must bend his back and dig.
      
      The things are mighty few on earth,
      That wishes can attain,
      Whatever we want of any worth,
      Weve got to work to gain.
      
      It matters not what goal you seek,
      Its secret here reposes:
      Youve got to dig from week to week,
      To get results or roses.
      
      硕果和玫瑰
      埃德加·阿尔贝特·格斯特
      
      要想有个美丽花园,
      面积大小姑且不管,
      只要园中长满鲜花,
      就必须把汗水挥洒。
      
      有愿望就能实现,
      这样的事还真是少见,只要想要的东西有价值,
      就得靠努力去创造。
      
      目标是什么并不重要,
      秘诀终归只有一条:
      周复一周不怕劳累,
      才能收获硕果或者玫瑰。

    六、THE VALUE OF TIME
      Katharine Sun
      
      
      To realize the value of one year:
      Ask a student who has failed a final exam.
      To realize the value of one month:
      Ask a mother who has given birth to a premature baby.
      To realize the value of one week:
      Ask an editor of a weekly newspaper.
      To realize the value of one hour:
      Ask the lovers who are waiting to meet.
      To realize the value of one minute:
      Ask a person who has missed the train, bus or plane.
      To realize the value of one second:
      Ask a person who has survived an accident.
      To realaize the value of one millisecond:
      Ask the person who has won a silver medal in the Olympics.
      Time waits for no one.
      Treasure every moment you have.
      
      
      时间的价值
      凯瑟琳·桑陈采霞译
      
      要想知道一年的价值,
      那就去问期末考试不及格的学生。
      要想知道一个月的价值,
      那就去问生了早产儿的母亲。
      要想知道一周的价值,
      那就去问周报的编辑。
      要想知道一小时的价值,
      那就去问等待见面的恋人。
      要想知道一分钟的价值,
      那就去问误了火车、汽车或者飞机的人。
      要想知道一秒钟的价值,
      那就去问大难不死的人。
      要想知道一毫秒的价值,
      那就去问奥运会获得银牌的人。
      时间不等人,
      你拥有的每一刻都要珍惜。
      
      
      七、TODAY IS A NEW DAY
      Donna Levine
      
      
      Your tomorrows are as bright
      as you want to make them.
      There is no reason to carry
      the darkness of the past
      with you into today.
      Today is a wonderful new experience,
      full of every possibility to make
      your life exactly what you want it to be.
      Today is the beginning of new happiness,
      new directions and new relationships.
      Today is the day to remind yourself
      that you posses the power
      and strength you need
      to bring contentment, love and joy into your life.
      Today is the day to understand yourself
      and to give yourself the love
      and the patience that you need.
      Today is the day to move forward
      towards your bright tomorrow.
      
      今天是新的一天
      唐那·莱文陈采霞译
      
      你的明天充满阳光,
      如你心中所想。
      你没有理由,
      把昨天的黑暗,
      带到今天。
      今天是美妙的全新体验,
      有那么多种可能,
      使你的生活如你所愿。
      今天开始有新的幸福,
      新的方向和新的伙伴。
      今天你要提醒自己,
      你有足够的能力和力量,
      把满意、爱情和欢乐带进你的生活。
      今天你要了解自己,
      给自己足够的爱心和耐心。
      今天你会勇往直前,
      奔向那灿烂的明天。
      
      
      八、DREAMS
      Langston Hughes
      
      
      Hold fast to dreams
      For if dreams die
      Life is a brokenwinged bird
      That cannot fly.
      
      Hold fast to dreams
      For when dreams go
      Life is a barren field
      Frozen with snow.
      
      梦想
      兰斯顿·休斯陈采霞译
      
      紧紧抓住梦想,
      因为一旦梦想消亡,
      生活就象折断翅膀的小鸟,
      无法自由翱翔。
      
      紧紧抓住梦想,
      因为一旦梦想离开,
      生活就会变成贫瘠荒芜的土地,
      只有冰雪覆盖。
      
      
      九、THE ROAD NOT TAKEN
      Robert Frost
      
      
      Two roads diverged in a yellow wood,
      And sorry I could not travel both
      And be one traveler, long I stood
      And looked down one as far as I could
      To where it bent in the undergrowth;
      
      Then took the other, as just as fair,
      And having perhaps the better claim,
      Because it was grassy and wanted wear;
      Though as for that the passing there
      Had worn them really about the same,
      
      And both that morning equally lay
      In leaves no step had trodden black.
      Oh, I kept the first for another day!
      Yet knowing how way leads on to way,
      I doubted if I should ever come back.
      
      I shall be telling this with a sigh
      Somewhere ages and ages hence:
      Two roads diverged in a wood, and I
      I took the one less traveled by,
      And that has made all the difference.
      
      没有走过的路
      罗伯特·弗罗斯特陈采霞译
      
      金色的树林路分两条,
      遗憾不能两条都到。
      孤独的我长久亻宁立,
      极日眺望其中一条,
      直到它在灌丛中淹没掉。
      
      然后我公平地选择了另外一条,
      或许理由更加充分,
      因为它草深需要有人上去走走。
      说到有多少人从上面走过
      两条路磨损得还真是差不多。
      
      而且那天早晨两条路都静静地躺着,
      覆盖在上面的树叶都没有被踩黑,
      噢,我把第一条路留给了下一次!
      但我知道前方的路变幻莫测,
      我怀疑我是否应该回来……
      
      多年以后在某个地方,
      我将叹息着讲述这件事:
      树林里路分两条,而我——
      选择了行人较少的那条,
      就这样一切便发生了改变。
      
      
      十、WHAT IS SUCCESS
      Ralph Waldo Emerson
      
      
      What is success?
      To laugh often and love much;
      To win the respect of intelligent people
      And the affection of children;
      To earn the approbation of honest critics
      And endure the betrayal of false friends;
      To appreciate beauty;
      To find the best in others;
      To give ones self;
      To leave the world a little better,
      Whether by a healthy child,
      A garden patch,
      Or a redeemed social condition;
      To have played and laughed with enthusiasm
      And sung with exultation;
      To know even one life has breathed easier,
      Because you have lived...
      This is to have succeeded.
      
      成功的内涵
      拉尔夫·沃尔多·爱默生陈采霞译
      
      成功是什么?
      笑口常开,爱心永在,
      赢得智者的尊重,
      孩子们的爱戴;
      博得真诚的认可,
      容忍损友的背叛;
      欣赏美好的东西,
      发现别人的可爱。
      学会无私地奉献,
      给世界增添光彩:
      要么培育出健康的孩子,
      要么留下花园一块,
      亦或是改善社会条件;
      尽情娱乐、笑得畅快,
      把欢乐的歌唱起来;
      甚至知道一个生命活得自在,
      因为你的一路走来……
      这就是成功的内涵。

     

  • 什么是封装

    2007-09-04 14:37:18

    封装是面向对象技术中的一处重要概念,它体现了面向对象程序设计的思想.

    封装(encapsulation)的含义是:把类想象成一下黑匣子,上面有一小部分可视区,叫类的接口,其中定义了一些用于供其他程序访问该类中数据的方法,而类中的数据及大部分代码都是隐含的.

    封的好处是:

    (1)在封装的类面前,用户看不见,也不需要知道类中定义了哪些内部数据,因而没有办法直接对数据时行访问.这亲就避免了因使用类似全程量形式所带来的问题.

    (2)通过调用对象方法来访问类中数据,用户不必关心方法的实现细节.即使改变了类中的数据的定义,只要方法名不改变,就不会对使用该类的程序产生任何影响.反过来说,封装减少了程序对类中数据表达的依赖性.

    因此根据封装原则,类的内部数据不能由类的用户直接访问.

  • NBTSTAT命令详解

    2007-09-03 17:41:06

    NBTSTAT命令详解
    1. 具体功能

      该命令用于显示本地计算机和远程计算机的基于 TCP/IP.NetBT) 协议的.NetBIOS 统计资料、.NetBIOS 名称表和.NetBIOS 名称缓存。 NBTSTAT 可以刷新.NetBIOS 名称缓存和注册的 Windows Inte.Net 名称服务 (WINS) 名称。使用不带参数的 NBTSTAT 显示帮助。


    2. 语法详解

      nbtstat [-a remotename] [-A IPaddress] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [Interval]
      

    3. 参数说明

      -a remotename 显示远程计算机的.NetBIOS 名称表, 其中, remote name 是远程计算机的.NetBIOS 计算机名称。.NetBIOS 名称表是运行在该计算机上的应用程序使用的.NetBIOS 名称列表。

      -A IPaddress 显示远程计算机的.NetBIOS 名称表,其名称由远程计算机的 IP 地址指定 ( 以小数点分隔 ) 。

      -c 显示.NetBIOS 名称缓存内容、.NetBIOS 名称表及其解析的各个地址。

      -n 显示本地计算机的.NetBIOS 名称表。 Registered 中的状态表明该名称是通过广播或 WINS 服务器注册的。

      -r 显示.NetBIOS 名称解析统计资料。 在配置为使用 WINS 的 Windows 计算机上,该参数将返回已通过广播和 WINS 解析和注册的名称号码。

      -R 清除.NetBIOS 名称缓存的内容并从 Lmhosts 文件中重新加载带有 #PRE 标记的项目。

      -RR 重新释放并刷新通过 WINS 注册的本地计算机的.NetBIOS 名称。

      -s 显示.NetBIOS 客户和服务器会话,并试图将目标 IP 地址转化为名称。

      -S 显示.NetBIOS 客户和服务器会话,只通过 IP 地址列出远程计算机。

      Interval 重新显示选择的统计资料,可以中断每个显示之间的 Interval 中指定的秒数。 按 Ctrl+C 停止重新显示统计信息。如果省略该参数, NBTSTAT 将只显示一次当前的配置信息。
     

    例子  :显示.NetBIOS 计算机名为 suyupei 的远程计算机的.NetBIOS 名称表

          nbtstat -a suyupei

    例子  :显示 IP 地址为 192.168.1.6 的远程计算机的.NetBIOS 名称表

         nbtstat -a 192.168.1.6 


    该文章转载自网络大本营:http://www.xrss.cn/Info/13281.Html

1034/6<123456>
Open Toolbar