日历

« 2008-09-08  
 123456
78910111213
14151617181920
21222324252627
282930    

统计信息

  • 访问量: 1652
  • 日志数: 22
  • 建立时间: 2008-05-22
  • 更新时间: 2008-09-02

RSS订阅

迷迷糊糊,跌跌撞撞,也要向前冲

我的最新日志

  • 通用用例库以及通用测试数据库的建立

    2008-9-02

    我想问下,大家做测试久了,有没有积累自己的用例库和测试数据库?比如一些常用的用例,收集成一个常用的用例模板,以及常用的测试的数据的一个表,这样需要的时候,只要复制过来简单修改就可以了

        常用的用例模板我已经有了,常用的测试的数据的一个表准备建立。不知道大家有什么建议吗?
  • [转]软件的可测试性

    2008-7-21

         一次跟客户做测试交流,被问到一个关于软件可测试性的问题,一时间竟无语,以前了解过,却没有真正的关注过,项目马上要做客户需求书和产品需求书了,这个阶段需要做一些把握了,网上搜罗到了好东东,收藏在坛子了,也与各位同仁共享

     

    软件可测试性设计
    Author: Vince     

    1  概述
        随着软件行业的迅猛发展,软件测试也逐渐受到越来越多的软件公司所重视,然而开发出来的软件直接就可以拿出来做测试吗?根据近几年来的实践证明,在设计软件时事先没有对软件的可测试性进行周密设计和部署的软件在测试时总是很难于进行,直到测试无法进行下去为止。被测软件在编码时需要考虑给测试和后期的产品维护提供必要的手段和接口支持,即要求软件具有可测试性。基于可测试性的目标考虑,良好的架构设计,完备的接口,使得软件测试更加高效和可行,同时产品维护也更加便利。 【文章来源:文斯测试技术研究中心 http://blog.csdn.net/vincetest

        本文描述的范围:可测试性定义、可测试性特征、可测试性设计。

        读者对象:系统分析和设计人员、开发人员、测试人员。
     
        参考文献:
        1.《软件可测试性需求设计》               Vince
        2.《高质量C++/C编程指南》              林锐
        3.《软件工程思想》                          林锐

     

    2  软件可测试性定义
    2.1  可测试性定义
        软件的可测试性是指在一定的时间和成本前提下,进行测试设计、测试执行以此来发现软件的问题,以及发现故障并隔离、定位其故障的能力特性。简单的说,软件的可测试性就是一个计算机程序能够被测试的容易程度。
        一般来说可测试性很好的软件必然是一个强内聚、弱耦合、接口明确、意图明晰的软件,而不具可测试性的软件往往具有过强的耦合和混乱的逻辑。

    2.2  可测试性特征
      1.可操作性:“运行得越好,被测试的效率越高。”
        1)系统的错误很少;
        2)没有阻碍测试执行的错误;
        3)产品在功能阶段的演化(允许同时的开发和测试)。
       
      2.可观察性:“你所看见的就是你所测试的。”
        1)每个输入有唯一的输出;
        2)系统状态和变量可见,或在运行中可查询;
        3)过去的系统状态和变量可见,或在运行中可查询(例如:事务日志);
        4)所有影响输出的因素都可见;
        5)容易识别错误输出;
        6)通过自测机制自动侦测内部错误;
        7)自动报告内部错误;
        8)可获取源代码。

      3.可控制性:“对软件的控制越好,测试越能够被自动执行与优化。”
        1)所有可能的输出都产生于某种输入组合;
        2)通过某种输入组合,所有的代码都可能被执行;
        3)测试工程师可直接控制软件和硬件的状态及变量;
        4)输入和输出格式保持一致且有结构;
        5)能够便利地对测试进行说明、自动化和再生;
        6)接口和模块易控制;
        7)业务流程和场景易控制。

      4.可分解性:“通过控制测试范围,能够更快地分解问题,执行更灵巧的再测试。”
        1)软件系统由独立模块构成;
        2)能够独立测试各软件模块;
        3)业务流程和场景易分解。

      5.简单性:“需要测试的内容越少,测试的速度越快。”
        1)功能简单性(例如:特性集是满足需求所需的最小集合);
        2)结构简单性(例如:将体系结构模块化以限制错误的繁殖);
        3)代码简单性(例如:采用代码标准为检查和维护提供方便)。

      6.稳定性:“改变越少,对测试的破坏越小。”
        1)软件的变化是不经常的;
        2)软件的变化是可控制的;
        3)软件的变化不影响已有的测试;
        4)软件失效后能得到良好恢复和隔离。

      7.易理解性:“得到的信息越多,进行的测试越灵巧。”
        1)设计能够被很好地理解并遵循行业规范;
        2)内部、外部和共享构件之间的依赖性能够被很好地理解;
        3)设计的改变被通知;
        4)可随时获取技术文档;
        5)技术文档组织合理;
        6)技术文档明确详细;
        7)技术文档精确性稳定;
        8)相关环境配置说明与操作指导。

     【文章来源:文斯测试技术研究中心 3软件可测试性设计
    3.1可测试性设计
        软件的可测试性特征主要表现是设立观察点、控制点、观察装置、驱动装置、隔离装置。需要注意的是可测试性设计时必须要保证不能对软件系统的任何功能有影响,不能产生附加的活动或者附加的测试,采取合适的设计模式对软件进行设计。
      1.坚持测试驱动设计(测试先行)的方法。
        优先编写测试代码,这是标准的XP方法。不是说应该一次性编写全部测试代码后,再一次性全部实现。先写验收测试,再写单元测试,编写一些测试代码,实现它们,再编写一些测试代码,再实现它们等等是个更好的办法。设计以这种方式得以进展;在实现阶段捕捉错误并在下一组测试中改正它,以这种方式编写测试也更少会使人畏缩。【文章来源:文斯测试技术研究中心 http://blog.csdn.net/vincetest

      2.尽量做到每个操作对应一个函数,使函数小型化。
        使用小型函数说明和重载带缺省参数的函数将使在测试中调用这些函数变的愉快的多。否则,在测试这些函数时将不得不构造额外参数,如果参数很大,那么将很快导致代码膨胀。更糟的是,它会诱使你编写比在其它情况下更少的测试。

      3. 数据的显示与控制分离
        把代码移到 GUI 视图的外面。然后各种 GUI 动作就能成了模型上的简单方法调用。这样,对GUI测试者来说,通过方法调用测试功能比间接地测试功能容易的多。另一个好处是它使修改程序功能而不影响视图变的更容易。

      4.可控制性设计【文章来源:文斯测试技术研究中心 http://blog.csdn.net/vincetest
       1)全局变量的可控制性设计
         I.在外界使用适当的手段能够直接或间接控制该变量,包括获取、修改变量值等;
         II. 可以将全局类型的变量进行分类并封装到一个个接口中操作。
       2)接口的可控制性设计
         各接口在外界使用适当的手段能够直接调用对该接口进行操作,这里所谓的适当的手段主要包括使用测试工具和增加额外代码. 对于向外提供的接口的接洽处能够人为的对接,比如构造测试环境模拟接口对接,这里所指的开放接口主要是指相对于整个被测系统,即为被测系统以外提供的接口。接口接洽处人为对接时各接口所要求的条件和所需的参数人为的能够轻易达到和提供。
       3)模块的可控制性设计
         对于每个相对独立的模块设计好所需要的驱动和桩都能单独设计用例进行测试对应的功能,在测试运行期间模块异常时能够将其隔离而不影响测试。
       4)业务流程的可控制性设计
         在测试环境满足的情况下能够控制任一单独业务流程,各业务流程具有流通性。
       5)场景的可测试性设计
         将一场景所涉及到的业务和接口整合到一个统一的接口使其能够单独操作该场景。

      5.可分解性设计
        1)业务流程的可分解性设计
          对于复杂的业务流程需合理设定分解点,在测试时能够对其进行分解。
        2)场景的可分解性设计
          对于复杂的场景需合理设定分解点,在测试时能够对其进行分解。

      6.稳定性设计
        测试模块发布合理,不能在后期追加的模块为前期所测模块引入新的不必要的测试活动。【文章来源:文斯测试技术研究中心 http://blog.csdn.net/vincetest

      7.易理解性设计
        1)设计文档的易理解性
          I.设计参考标准
          II.内容描述主次要分清
          III.依赖关系描述明确
        2)接口的易理解性
          I.接口功能明确
          II.参数有意义
        3)业务的易理解性
        4)场景的易理解性

      8.可观察性设计
        1)业务执行状态和过程可观察性设计
        2)异常情况可观察性设计

      9.测试驱动和桩的设置
        为单个测试接口、测试业务、测试场景预留测试驱动和桩的接入点。

      10.适合增量式开发的可测试性设计
        在增量式开发过程中必须优先考虑测试桩和测试驱动实现的难易程度和真实性。

      11.可查询设计【文章来源:文斯测试技术研究中心 http://blog.csdn.net/vincetest
        1)对系统级别的全局变量或者状态设置查询接口;
        2)某一业务或场景调用接口设置接口路径查询

      12.自愈合功能
         在某一场景中的局部出现故障时设置多路选择或者其他干涉进行跳转执行气候的具有正常逻辑的功能。

      13. 输出结果
         对于任何一项操作都要能产生预期的输出,不管是正确的还是错误的甚至是异常的.测试结果的表现形式可以是数据、现象等,不管是以什么方式表现,都要有依可寻,在设计文档中要有说明。对于测试结果易于判断,具有可分析性、可获得性.在设置的各个控制点或观察点的结果易于查询、修改等。

      14.提供统一的操作执行面板
         操作面板元素主要由输入和输出元素组成,如所执行的操作和对应的输出,但可能被测系统是一个比较复杂的系统,由多个可以独立的模块组成,涉及到的操作和输出比较多,各操作之间的关联也比较复杂。在设计时统一的做一个操作面板,该操作面板成为一个可以操作整个被测系统的独立模块,一种是以命令的形式执行操作,直接以printf语句的形式输出查看,另一种是以GUI的形式,输入(执行的操作)输出均在界面上执行和体现,这样比较直观。如下图所示:


        特别对于执行某一场景时要跟踪该场景的关键过程和执行后的输出参数,给出一系列可以分析的数据,该场景可以以执行过程分阶段监控,将监控范围内的数据输出以供测试人员分析。

     【文章来源:文斯测试技术研究中心

    3.2  可测试性编码
      1.注释需要详尽。特别对于接口,要描述清楚功能、实现及参数;
      2.使用模块化方法,编码低耦合、高内聚;
      3.为集成测试与系统联调准备调测开关及相应打印函数,并且要有详细的说明;
      4.为单元测试选择恰当的测试点,并仔细构造测试代码、测试用例,同时给出明确的注释说明。测试代码部分应作为(模块中的)一个子模块,以方便测试代码在模块中的安装与拆卸(通过调测开关);
      5.使用断言来发现软件问题,提高代码可测试性;
      6.用断言来检查程序正常运行时不应发生但在调测时有可能发生的非法情况;
      7.为测试自动化工具提供所需要的特定“钩子(hook)”;
      8.对于每个功能,提供访问、修改“状态”变量的接口,包括提供查询、修改上层软件、软硬件接口、底层硬件状态的接口及打印;
      9.提供查询系统状态的接口。比如内存使用、程序使用进程数等;
      10.对于测试因为环境等因素而可能无法测试的功能,提供接口模拟软件实现该功能的过程;
      11.对于修改功能,提供修改功能参数单位的接口,以便于进行如软件性能等的测试;
      12.出错及异常处理保存记录,记录具有详细的属性,并且格式统一、意义明确;
      13.在程序异常时,除了保留日志,还需要提供观察、恢复的外部方法;
      14.对全局变量、特殊结构,提供查询的方法。

     

    3.3  可测试性调试与定位
      1.对于程序中所涉及到的变量尽可能的在调试过程中可以查询及修改;
      2.在整个软件系统执行过程中为每个关键业务或相对独立的业务设定一个调试点,便于系统集成和问题范围的定位;
      3.在设定好的调试点处对处理的业务输出数据和全局数据进行可视化输出,便于测试结果的分析。

     

    3.4  测试所需文档
      1.需求规格说明书
      2.概要设计说明书
      3.详细设计说明书
      4.系统功能清单
      5.系统运行环境搭建指导书
      6.系统操作指导书

  • [转]工程型软件项目的配置管理实例 (三) ——配置管理规范

    2008-7-21

    配置管理规范
      对于一个一般的项目来说,配置管理规范的内容至少需要包括以下的内容:
      1、配置项及其命名规则;
      2、配置库文件目录结构;
      3、角色和权限定义;
      4、配置项变更流程;
      5、配置项发布;
      6、基线定义和基线变更。
      配置项及其命名规则
      对我们的项目来说,配置项需要包括以下的内容:
      1、项目管理过程文档;
        a) 项目任务书;
        b) 项目计划;
        c) 项目周报;
        d) 个人日报和周报;
        e) 项目会议纪要;
        f) 培训记录和培训文档;
      2、QA过程文档;
        a) QA不符合报告;
        b) QA周报;
        c) 评审记录;
      3、工作产品
        a) 需求文档;
        b) 设计文档;
        c) 代码;
        d) 测试文档;
        e) 软件说明书和手册;
      4、项目中使用的第三方产品
      上文中用红色部分标识的是容易遗漏的配置项,尤其是第4个(项目中使用的第三方产品),实际上,一个工程型的项目会大量使用第三方的软件(例如,我们的产品中就使用了IBM的MQSeries、Oracle、一些第三方的开发控件),对这些产品的管理至少可以解决三个方面的问题:
      1、版本配合的问题:大部分的第三方软件在升级之后,并不能实现二进制层面上的兼容,需要对原有的代码重新编译;甚至有的第三方软件在升级之后,API层面上的兼容性都做不到;因此,在工程实施的过程中,版本的配合问题是一个需要关注的问题;
      2、发布的完整性问题:一般来说,比较大型的第三方软件在发布过程中都不会有遗漏,但对一些小的第三方软件来说,比如我们使用的许多perl的CPan模块,如果在开发过程中没有有意识的进行管理的话,很容易就会发生遗漏;
      3、在某些特殊条件下由于第三方软件的变化引起的基线变更:这种情况极少会发生,但在我们以前的项目中,确实还遇见过。一般是因为原来选型时使用的第三方软件不能满足要求,只能通过更换新的第三方软件,这就补课避免地需要变更基线(例如需求文档、设计文档等);将第三方软件纳入配置管理的范畴可以更方便地管理基线的变更。
    关于第三方软件产品配置项的管理还有一点需要说明:由于第三方软件有可能会比较大,而且相对我们的项目来说,是很少会发生变更的(一般在一个项目过程中,不会采用不同的配置项的命名可以便于查找相关配置项。配置项的命名包括两个方面的内容:
      1、配置项标识:在我们的项目中,一般使用“项目名_配置类别_配置项特殊标识”来命名。下表列出了我们在项目中使用的配置类别命名:

    配置类别 命名 配置类别 命名
    项目任务书 PT 项目计划 PP
    项目周报 PR 个人日报和周报 PER
    项目会议纪要 PM 培训记录和培训文档 TR
    QA不符合报告 QAP QA周报 QAR
    评审记录 RR 需求文档 REQ
    设计文档 DD 代码 CODE
    测试文档 TD 软件说明书和手册 MAN
    项目中使用的第三方产品 PART3    

      配置项命名中的“配置项特殊标识”根据配置类别的不同而不同。比如,对“设计文档”,如果细分的话,可以分为“概要设计”和“详细设计”;对“代码”,可以按照模块来命名配置项。
      2、配置项版本命名:配置项版本命名是针对配置项的版本进行命名,在我们的项目中,配置项版本通过对Project的Label操作来实现,配置项版本的命名需要能清楚标识配置项的状态。一般说来,配置库至少包括个人工作区、受控库、发布区三个部分,在我们的项目中,所有的配置项都保存在一个VSS库中,对这三个部分的划分是通过逻辑划分方式进行的,具体来说,就是通过配置项版本命名来划分的。因此,我们配置项的版本命名规定如下:
      a) 基线版本:按照基线的状态,我们这个项目中的基线有两个方面:一是作为里程碑的基线;另一个是模块的阶段性成果基线(对工作产品而言),由模块的负责人确定。
        里程碑基线――对我们的项目来说,采用的是迭代的开发过程,以一个迭代过程为例,分为需求、概要设计、详细设计、代码实现、单元测试、集成测试、系统测试七个阶段,每个阶段都需要产生里程碑。对每个里程碑都有明确的标识标明当前状态。
        阶段性成果基线――阶段性成果主要体现在代码过程中,比如代码进行到一个阶段,开发组长认为代码的这个状态可以保留,就可以确定为一个代码基线。这种基线一般不需要通过评审等正式手段来确定,但也必须有相应的验证手段;比如在我们的项目中,在代码阶段,确定代码基线的责任人是开发组长,但开发组长必须保证代码基线符合一定的条件。
      b) 其他版本:除基线版本外,有时候还需要在开发和维护过程中确定其他版本。例如,产品在测试过程中不断的问题修复过程中,可能会有多种反复,此时需要将每次修改的内容作为一个版本。
      关于版本,还有另一个需要注意的问题。一般来说,按照模块来划分,每个模块有自己的版本演进比较合理。首先,一个模块一般是由一个或两个开发人员完成的;其次,一个模块的功能会比较单一且独立,在版本的演化过程中便于控制,也不会和其他模块产生过于复杂的关系。而产品的版本则需要由各个模块的不同版本组成,这个纵横的关系需要很好地管理,我们的做法是在VSS库上用Label来标识,同时维护一张描述产品版本和模块版本关系的矩阵图便于追踪。
      配置库目录结构
      在确定了配置项之后,就可以确定配置库的目录结构了。配置库的目录结构直接关系到配置管理的工作量和使用的方便性,所以需要根据自己的需要确定一个合理的结构。
      在确定配置管理库目录结构的时候,我们曾经考虑过两种产品目录结构的方式:一种是按照模块划分,在模块下再划分诸如设计文档、代码等目录;另一种方式是按照产品类型划分,例如首先是文档、代码,然后在其下按照模块划分。这两种方式都有自己的优点,最终我们还是选择了前一种划分方式,一方面是考虑便于进行权限的分配,另一方面是考虑到便于将同一模块的所有内容组织起来进行版本的管理。
      下表是我们在实际中采用的配置库结构(部分):

    第一级 第二级 第三级 第四级 说明
    M       管理类文档
      PM     项目管理
        0-Init   初始阶段
          PC  
          PTR  
          PN  
        1-Plan   计划阶段
    …… …… …… …… ……
      QA      
        0-PPQAP   质量保证计划
    …… …… …… …… ……
    P       项目产品
      0-Req     需求阶段
        0-CRS   客户需求
        1-SRS   需求分析文档
        2-RTM   需求跟踪矩阵
      1-Des     设计阶段
        0-HLD   概要设计
        1-DBD   数据库设计
      2-Imp     实现/编码阶段
        0-Module1   模块1
          0-COD 代码
          1-DDS 详细设计
          2-HLD 概要设计
          3-UNT 单元测试
    …… …… …… …… ……
      3-Test      
        0-Int   集成测试
        1-Syt   系统测试
    …… …… …… …… ……
      4-Man     手册
    …… …… …… …… ……
      5-Others     其他
    …… …… …… …… ……
             

      从这里的配置库结构中可以看到,我们在最上层将配置项分为管理类和产品类:管理类中的项目管理部分基本是按照初始-计划-执行-收尾四个阶段来划分。在项目产品类别中,我们按照需求-设计-实现-测试四个阶段划分目录,在实现阶段,为每个模块划分了代码、详细设计、概要设计和单元测试四个目录,需要说明的是,在第三层中有一个HLD的目录,在模块下同样有一个HLD的目录,在我们的实际工作中,第三层的HLD目录用来存放系统级别的概要设计文档,而模块下的HLD目录用来存放模块级别的概要设计文档。
    当然,这里的配置库结构仅仅起到了示范作用,在实际使用中,可以根据自己的需要修改。例如,在Module的级别上可以增加一个SubSystem的层,便于在产品集成时更加方便。

      角色定义及权限分配
      角色是配置管理流程的执行者和参与者,定义明确的角色有利于实现明确的授权和明晰的流程,虽然在实际中可能多个角色由一个人担任,但还是应该保留角色的定义。
      下面是该项目中我们的角色定义:
      配置管理员
      整个配置管理库由配置管理员管理。配置管理员负责分配和修改其他成员的权限,要维护所有目录和配置项。
      开发经理
      开发经理在本项目中负责主导完成需求分析和系统总体设计,对项目的总体进度负责。开发经理拥有对管理类文档的读取权限,可以对项目类文档进行读写操作;
      开发组长
      开发组长对本小组的工作负有组织和管理任务,同时开发组长也需要承担一定的开发任务。开发组长对管理类文档有读取权限,对本组负责的模块有读取权限,对自己负责的模块有读写的权限;
      开发工程师
      开发工程师完成具体的开发任务,对自己负责的模块目录有读写权限,对管理类文档有读取权限;
      测试组长
      测试组长负责组织测试,给出测试计划和测试方案,并核定测试报告。测试组长对所有目录都有读取权限,对测试目录有读写权限;
      测试工程师
    测试工程师负责完成测试工作,包括测试用例开发和测试执行,测试报告编写。测试工程师对自己负责的模块有读取权限,对测试用例目录有读写权限。
      QA工程师
    QA工程师拥有对所有目录的读取权限,拥有对QA类文档目录的读写权限。
    〔说明〕除配置管理员外,其他所有成员都没有Destroy目录和文件的权限,这是为了防止误删除操作带来不可挽回的损失。如果需要对目录进行Destroy操作,必须由配置管理员进行。
    【小结】在本章中,我们介绍了配置管理规范的配置项及其命名、配置库的目录结构以及配置管理的角色权限分配。在下一章中,我们将介绍完配置管理规范的其他内容并给出配置管理实施过程中的一些心得体会。

  • [转]测试用例设计——功能和界面

    2008-7-21

    如何对文本框进行测试51Testing软件测试网`.RXH+mi

    F)D7Ec&?3a'G174528 a,输入正常的字母或数字。
    +q ~1C|{)@XP/['A174528 b,输入已存在的文件的名称;51Testing软件测试网H8@:r4\ p ?`3z
     c,输入超长字符。例如在“名称”框中输入超过允许边界个数的字符,假设最多255个字符,尝试输入 256个字符,检查程序能否正确处理;
    0qW,s f:R(T174528 d,输入默认值,空白,空格,或者文字中掺有空格;51Testing软件测试网Yh(_d%Z*f0?
     e,若只允许输入字母,尝试输入数字;反之;尝试输入字母;
    Xcl+D$m(u'b i174528 f,利用复制,粘贴等操作强制输入程序不允许的输入数据;51Testing软件测试网 Pq3lr9K n [O
     g,输入特殊字符集,例如,NUL及\n等;51Testing软件测试网6D.`#`0zn,fD-S{r
     h,输入超过文本框长度的字符或文本,检查所输入的内容是否正常显示;
    7U1pDmB3u$`174528 i,输入不符合格式的数据,检查程序是否正常校验,如,程序要求输入年月日格式为yy/mm/dd,实际输入yyyy/mm/dd,程序应该给出错误提示51Testing软件测试网:i)u#B6[/p

    jQ6VRx174528在测试过程中所用到的测试方法:
    8U7UW _`\17452851Testing软件测试网H b8U.O'W\"}
     1,输入非法数据;
    "v5k9VQ&f AM174528 2,输入默认值;
    HZ)RoZ174528 3,输入特殊字符集;
    )@)dM @5A1qa.UkG174528 4,输入使缓冲区溢出的数据;
    FmlE D`i174528 5,输入相同的文件名;
    *u?y8iZ4t174528

    命令按钮控件的测试51Testing软件测试网nk,uN"~+zqw+N
    51Testing软件测试网^*V.|m!fX
    测试方法:51Testing软件测试网+j.J/J@Gg'N

    9d cQ,l-M}9Gw174528 a,点击按钮正确响应操作。如,单击确定,正确执行操作;单击取消,退出窗口;
    `MZ1t;P)Q ]174528 b,对非法的输入或操作给出足够的提示说明,如,输入月工作天数为32时,单击”确定“后系统应提示:天数不能大于31;51Testing软件测试网/`N'T;K4sa:hz
     c,对可能造成数据无法恢复的操作必须给出确认信息,给用户放弃选择的机会;
    ]~GW ]a1P174528  d、检查执行操作的用户有没有使用权限。(比如删除,添加用户等)51Testing软件测试网 KdVjpk

    单选按钮控件的测试
    1Y/e%pjx%R*A8O1N[w174528
    ,tM,my1xs6x-|174528测试方法:51Testing软件测试网1b1e8Z yx7Oa/R

    1B8PM5s!@)`174528 a,一组单选按钮不能同时选中,只能选中一个。
    3hu\K]n.T+s}174528 b,逐一执行每个单选按钮的功能。分别选择了“男”“女”后,保存到数据库的数据应该相应的分别为“男”“女”;
    ,Yz!L7~X.c1d&n,WY8X174528 c,一组执行同一功能的单选按钮在初始状态时必须有一个被默认选中,不能同时为空;
    X6D1u)D(Uf174528

    up-down控件文本框的测试
    3L9?'S5qI4{W17452851Testing软件测试网[!Zlxe qp%O.aA8e
    测试方法:
    9]!|xKU17452851Testing软件测试网(C}DW4r(K
     a,直接输入数字或用上下箭头控制,如,在“数目”中直接输入10,或者单击向上的箭头,使数目变为10;
    *@@&F-N*`8B8f,mH~174528 b,利用上下箭头控制数字的自动循环,如,当最多数字为253时,单击向上箭头,数目自动变为1;反之亦适用;
    a0\,g*pn(Y,Vl.D"T~174528 c,直接输入超边界值,系统应该提示重新输入;
    v w)m.`.b174528 d,输入默认值,空白。如,“插入”数目为默认值,点击“确定”;或,删除默认值,使内容为空,单击“确定”进行测试;
    YiEw Y3~ cB6A174528 e,输入字符。此时系统应提示输入有误。
    q6z }/a$ej174528

    组合列表框的测试
    E l!f1^eolb%W P174528

    _9|HQM0jh#Z}174528测试方法:
    (L6j ?-If6A*U k17452851Testing软件测试网 HXdWz ~
     a,条目内容正确,其详细条目内容可以根据需求说明确定;51Testing软件测试网 T WvgA%|b)rA
     b,逐一执行列表框中每个条目的功能;
    F*yYf%EX*qH174528 c,检查能否向组合列表框输入数据;
    9QdBN_"Z9Gwv174528

    复选框的测试
    n jEb:KCYr L6p174528
    aZ3CN9f:Y3\174528测试方法:
    Y?*\/Ji.[y17452851Testing软件测试网'|_V3uJ,L6w
     a,多个复选框可以被同时选中;
    lvZ4] x'`q+{%y174528 b,多个复选框可以被部分选中;51Testing软件测试网7U,V&Nr$xfY
     c,多个复选框可以都不被选中;
    Q9v7Z8Q`*o$[174528 d,逐一执行每个复选框的功能;51Testing软件测试网5`&F4mc:C

    列表框控件的测试51Testing软件测试网/`hi*L V`?r

    X'_$L@#L}m3c&wq174528测试方法:
    jK8rFe7x174528
    L2yq6O7H174528 a,条目内容正确;同组合列表框类似,根据需求说明书确定列表的各项内容正确,没有丢失或错误;
    e J ~ A S j [}:b%G5l174528 b,列表框的内容较多时要使用滚动条;
    t/rS3_,Zv%F174528 c,列表框允许多选时,要分别检查shift选中条目,按ctrl选中条目和直接用鼠标选中多项条目的情况;
    |J6d}sz)yd$ndx*n&K174528

    滚动条控件的测试51Testing软件测试网 h Wx+\ m/qEB

    w RN\*} d5{9f174528要注意一下几点:
    )RR],s'wQ174528
    Z O6l*h,l6?174528 a,滚动条的长度根据显示信息的长度或宽度及时变换,这样有利于用户了解显示信息的位置和百分比,word中浏览100页文档,浏览到50页时,滚动条位置应处于中间;
    Z7zLko8|)qH0x174528 b,拖动滚动条,检查屏幕刷新情况,并查看是否有乱码;51Testing软件测试网6tk/u0? E\6R-z
     c,单击滚动条;51Testing软件测试网4GI$ogG5g`5u;Rk$C,NZ
     d,用滚轮控制滚动条;
    +qsD#J] l174528 e,滚动条的上下按钮。

    9_H2QX)SUQ ]8K174528

    各种控件在窗体中混和使用时的测试
    _ ]]wG(TLz X174528
    51Testing软件测试网G h-p(Q2wN1u9h n
     a,控件间的相互作用;51Testing软件测试网,zTH\%F4]tG4G
     b,tab键的顺序,一般是从上到下,从左到右;
    FQ[Du G9J1^Ed174528 c,热键的使用,逐一测试;
    u o0^9U sC&Q174528 d,enter键和esc键的使用;
    9]0\*^ k-l ??aS174528
      ps:密码输入框测试时要特别注意进行字母大写输入的测试。

    在测试中,应遵循由简入繁的原则,先进行单个控件功能的测试,确保实现无误后,再进行多个控件的的功能组合的测试。51Testing软件测试网#s5k ]#ZJ%s%u?X[*bf s9Z
    51Testing软件测试网U ~7RE0] H
    查找替换操作
    ^'c-xp yN'|174528 案例演示:打开word中的"替换"对话框51Testing软件测试网Kk J(n{)TTG"O&W9Fb
     测试本功能有通过测试和失败测试两种情况51Testing软件测试网? I(y,Wg3B
     通过测试:51Testing软件测试网Yd'q\l!s#c1`a
    51Testing软件测试网 LJ? ?{2\%T]
     1,输入内容直接查找,或查找全部51Testing软件测试网8O.nKON
     2,在组合框中寻找已经查找过的内容,再次查找并确认文档的内容正确,如,已经查找过"测试用例\",再次进入不用重新输入查找内容,直接在文档中搜寻就可以.51Testing软件测试网.p:gf!G0\c ~

    ,GP@,XoI"BAx174528  失败测试:
    j"{RHg174528 1,输入过长或过短的查询字符串.如,假设查询的字符串长度为1到255,那么输入0,1,2,256,255和254进行测试;
    7RZ+u%F_Gyp5R174528 2,输入特殊字符集,如,在word中.^g代表图片,^代表分栏符,可以输入这类特殊字符测试;
    AU'XJ_/b QC.O17452851Testing软件测试网#u oUyy;I3Y mOA
    替换测试大体相同.51Testing软件测试网+?aa?BT.p
     关于编辑操作窗口的功能测试的用例:
    #Vq me8R174528 1,关闭查找替换窗口.不执行任何操作,直接退出;51Testing软件测试网'AIy7PpB
     2,附件和选项测试.假如,设定"精确搜寻","向后"搜索等附件选项等等来测试;51Testing软件测试网G'A5[(Q`
     3,控件间的相互作用.如,搜寻内容为空时,按钮"搜寻全部","搜寻","全部替换","替换"都为灰色.51Testing软件测试网7_K hO9rG
     4,热键, Tab键.回车键的使用.
    0[ v4}o;^ h174528

    x%zkxY0t174528插入操作51Testing软件测试网zQ9b*XP;wlR
     1,插入文件51Testing软件测试网9q9^ko^k;a8t
     测试的情况
    wM e"pb G[;p174528 a,插入文件;51Testing软件测试网9b3z Y Uz!u
     b,插入图像;
    n$q+G |s7x r |O174528 c,在文档中插入文档本身;51Testing软件测试网+^Vv0EL(K5f|7y g!K;p
     d,移除插入的源文件;
    d W%XtX,RNbH?174528 e,更换插入的源文件的内容;
    g1@g|g.cu#Q174528
    X%Ow Oj?n174528 2,链接文件51Testing软件测试网~B7^7l J8d:K I
     测试方法:
    s:g8d*cjda174528 a,插入链接文件;51Testing软件测试网8O T I8Mv!Loze
     b,在文档中链接文档本身;
    f3W-Yo,BD174528 c,移除插入的源文件;51Testing软件测试网WYV qyYF
     d,更换插入的源文件的内容.
    l8t4k/i)p174528
    y"B*Dn;Pu(T174528 3,插入对象51Testing软件测试网f6EJW Q
     要测试的内容51Testing软件测试网8UE)Z;@U-l
     a,插入程序允许的对象,如,在word中插入excel工作表;51Testing软件测试网9G3}5P:\w ?0{3g
     b,修改所插入对象的内容.插入的对象仍能正确显示;
    $n k+E(];R unw'j174528 c,卸载生成插入对象的程序,如,在word中插入excel工作表后卸载excel,工作表仍正常使用.51Testing软件测试网3J6K zDMn O_
    51Testing软件测试网 M+Q/pD5[ T,b
    编辑操作
    e#V,n1A r:d ~174528 编辑操作包括剪切,复制,粘贴操作.51Testing软件测试网m:} LE$EFr9r(OR(q
    51Testing软件测试网-K9tp+X3]6Z#m
    测试剪切操作的方法
    `3BZ:} o8nz174528
     a,对文本,文本框,图文框进行剪切;51Testing软件测试网h Dl~*}h7`
     b,剪切图像51Testing软件测试网&y9TRd`Jz?0d
     c,文本图像混合剪切
    ^"O \m'^+j174528
     

    复制操作方法与剪切类似.
    {1D'f+ln(CQ/?&H$s17452851Testing软件测试网+L@ kh!nm#|%S$HO
    测试时,主要是对粘贴操作的测试,方法是:51Testing软件测试网H1q v,w.l"}-Jeu
     a,粘贴剪切的文本,文本框及图文框;
    r$J9]qL174528 b,粘贴所剪切的图像;51Testing软件测试网-\sm5r@G g
     c,剪切后,在不同的程序中粘贴51Testing软件测试网~ l/r#d({5^J0E
     d,多次粘贴同一内容,如,剪切后,在程序中连续粘贴3次;51Testing软件测试网3Z7n X$Tq$b?
     e,利用粘贴操作强制输入程序所不允许输入的数据.
    )u,hN;d5|bz174528

    %s6W8V@D;_]174528界面测试用例的设计方法51Testing软件测试网U8vJE+M
     1,窗体51Testing软件测试网xjg$W*F
     测试窗体的方法:
    *X7A Ue;E174528 a,窗体大小,大小要合适,控件布局合理;51Testing软件测试网;h.}g+w M;@.x t
     b,移动窗体.快速或慢速移动窗体,背景及窗体本身刷新必须正确;51Testing软件测试网1r']/YOW%E9~
     c,缩放窗体,窗体上的控件应随窗体的大小变化而变化;51Testing软件测试网4K w[0@T,K#|9` `Z
     d,显示分辨率.必须在不同的分辨率的情况下测试程序的显示是否正常;
    [#w1IRX}` a;j174528 进行测试时还要注意状态栏是否显示正确;工具栏的图标执行操作是否有效,是否与菜单懒中图标显示一致;错误信息内容是否正确,无错别字,且明确等等;51Testing软件测试网VJDwnw4u g Q9A

    0v8S`nUK;Yn%S174528  2,控件
    0{*B8OoN$~(A*C5t174528 测试方法:
    V3NJ9Y9G174528 a,窗体或控件的字体和大小要一致;51Testing软件测试网^7N2T.j3om
     b,注意全角,半角混合
    g/cn$yp'j174528 c,无中英文混合.51Testing软件测试网.O o9u {#n8hxj
    51Testing软件测试网_qTn+d"C
    菜单测试51Testing软件测试网{(d7F|-M#z5c'J+n

    M,]B'gY+F ec5Q%vb174528进行测试时要注意
    \E8|5]C0}q+U174528 a,选择菜单是否可以正常工作,并与实际执行内容一致;51Testing软件测试网Z5y Z8CI+_~2mQz
     b,是否有错别字:51Testing软件测试网?D!`+s QZ ri
     c,快捷键是否重复;
    J/t2uu`.{174528 d,热键是否重复;51Testing软件测试网1R G U@.wF
     e,快捷键与热键操作是否有效
    Oj])t+p174528 f,是否存在中英文混合51Testing软件测试网8Q~ ?S'ho'I
     g,菜单要与语境相关,如,不同权限的用户登陆一个应用程序,不同级别的用户可以看到不同级别的菜单并使用不同级别的功能;
    l|8Zi#A6`{\174528 h,鼠标右键快捷菜单
    P+O GB+XG q,\174528
    ,WU`(_1IE^ Lc174528
    特殊属性51Testing软件测试网 H0N+t(t H%zr+{jl
     1,安装界面应有公司介绍或产品介绍,有公司的图标
    1p7{D&jlp174528 2,主界面及大多数界面最好有公司图标51Testing软件测试网I-Gu(\*se'B:x'v0_8S E
     3,选择"帮助"->"关于"命令,应 看见相关版权和产品信息
    )M4i#Q b6M9_S2^^3T2| O174528
    51Testing软件测试网| eUKX,W'BQ,~ ms

  • (转)要做好性能测试,该掌握些什么?

    2008-7-11

    (转)要做好性能测试,该掌握些什么?

    今天有同行在blog上留言,问“想从功能测试转向性能测试,但不知道需要哪些了解哪些知识,及怎样进行一个系统的学习”。这类问题之前也被问到很多次了,所以这次干脆整理一下,发个主题供同行们参考。如果需要补充,也欢迎大家留言一起讨论。

    如果想真的做好性能测试,需要学习的东西还是比较多的。简单列一下吧。

    1. 精通性能测试的基本概念,过程,方法论,了解性能工程;
    e}YI~a)Z02. 精通1个商业性能测试工具+1个开源性能测试工具,知道工具可以做什么,不可以做什么,以及工具使用中常见的问题和解决思路;51Testing软件测试网c;t/Y+c"U D+N
    3. 扎实的计算机专业基础知识,包括计算机组成原理、操作系统数据库原理、计算机网络原理;
    ;o7A?u CLJE04. 熟悉至少1个常用的数据库产品,例如SQL Server或者 Oracle,能进行一般的数据库管理操作,熟悉SQL脚本的使用,熟悉常用的数据调优工具和常用的counter;
    :_X6mG$P9P05. 熟悉至少一个操作系统的原理,Windows或者Linux都可以,熟悉操作系统的体系架构、操作系统的重要基础概念,以及内存管理、存储/文件系统、驱动/硬件的管理、网络协议的实现及构成、性能的监控方法和原理,熟悉常用的counter;
    w/mj)mOd$y06. 熟悉至少一个web server 产品,例如apache,了解一般的配置和常用的counter;51Testing软件测试网$Ex5I)KJ:TPH?
    7. 熟悉至少一个应用服务器产品,例如tomcat,了解一般的配置,熟悉常用的服务器性能监控方法和原理,熟悉常用的counter;51Testing软件测试网.I#_xY'A0O
    8. 至少熟悉TCP/IP协议,熟悉HTTP协议,至少见过并了解三层、四层交换或者路由器的使用和配置。了解常用的与网络性能相关的counter;51Testing软件测试网q*n0xg:A,dJWFPR
    9. 了解一般的大型企业应用的部署架构和应用架构;51Testing软件测试网&UFm R(qz
    10. 了解知名大型web应用、高并发量、高流量、实时响应要求高的超大规模网站的架构和优化历程;51Testing软件测试网:BOC}/qI o
    11. 熟悉统计学的基础知识、常用分析方法以及实验设计方法,了解数学建模相关的知识;
    `B#F;b0z;VK}x012. 熟悉专属行业的业务知识和用户场景,例如电信行业的OSS系统所涉及的业务知识和用户场景,证券交易系统所涉及的业务知识和用户场景;
    S$A+{"v)CV4YM:n@!pv013. 大量的实际性能测试及优化经验;51Testing软件测试网} A8NJ3@s9DEI r
    14. 积极的参与到各类圈子、社团的讨论和交流、分享中。

    暂时先想到了这么多,有兴趣的朋友可以一起讨论一下,相信每个人都有自己不同的经历和感想,可以跟其他人分享一下,提供参考。
    T:Ze4` a { ]#},lI6@1}051Testing软件测试网*\1u5A-V? l
    另外,我之前也整理发布过不少性能测试方面的资料,从入门级的文章到 升级的必读都有一些,有兴趣可以参考。

    资料收集:高并发 高性能 高扩展性 Web 2.0 站点架构设计及优化策略 51Testing软件测试网R!aB8Ef!v.O
    http://www.cnblogs.com/jackei/archive/2007/10/07/915931.html

    最全,最强的软件测试资料汇总 (性能测试,性能调优,功能测试,自动化测试,测试管理,测试工具,测试用例设计,缺陷分析预防,前沿测试技术...)
    3QzkI(W \J {0http://www.cnblogs.com/jackei/archive/2007/02/06/641647.html

    (更新到 2007-6-14) 两个新的系列文章的写作计划——《LoadRunner 没有告诉你的》和《JMeter从入门到精通》
    ?xx#p&|~8I0http://www.cnblogs.com/jackei/archive/2006/12/04/558720.html

    不定期整理推荐 InfoQ 上面的优秀文章 ^_^ [UPDATED: 2008-6-20] —— 部分关于性能测试和优化,以及架构设计的优秀文章
    /w$q7Z skv3\)r0http://www.cnblogs.com/jackei/archive/2007/09/22/902401.html

    软件性能测试——blog上关于性能测试文章的全部列表
    %E{gl-Gi'vb7Yq0http://www.cnblogs.com/jackei/category/32808.html?Show=All

  • [转]TestDirector8.0数据库备份与还原

    2008-6-26

    备份文件

        后台数据库使用SQLServer2005

    一、数据库备份:从原服务器上备份出所有您要还原的TD系统数据库(在SQLServer2005中操作);

    二、文件备份:

        1TD_Dir整个文件夹;

        2、备份C:\Program Files\Common Files\Mercury Interactive\DomsInfo 文件夹中的所有文件;

    还原数据库

    一、将备份出来的DomsInfo文件夹的内容覆盖到C:\Program Files\Common Files\Mercury Interactive\DomsInfo 文件夹中, 这里进行项目配置的还原。

        1、用Access打开DomInfo文件夹下的doms.mdb数据库文件,默认口令为tdtdtd,进行以下修改:

         a)修改Admin数据表,打开该表并修改Admin_pswd 的密码,如果你不想修改以前的Admin用户的密码也可以不进行该步操作。

         b)修改DBServers数据表,打开该表并修改DBServer_Name字段的第二行值为新TD服务器名称。

         c)修改Params数据表,打开该表并修改ACIServerSiteScopeurl行对应的Param_Value字段值用新TD服务器名称替换旧TD服务器的名称。

         d)修改Projects数据表,打开并修改每个项目的Physical_Directory路径修改为:C:\TD_Dir\Default\项目名称;

         e)修改TDServers数据表,打开并修改TDServer_NameTD_IP_Address列的值为新TD服务器的服务器名称。

     2、修改old_DomSetup.ini文件中的:

          TDSQLSERVER=TD服务器名称

          Value_1=TD服务器名称:9999

          Value_3=http://TD服务器称称/TDBIN/Redist/SiteScope/SiteScope4TD.htm

          说明:把TD服务器名称替换为新的服务器名称或IP

    二、还原系统文件

    1、将备份出来的TD_Dir文件夹中的内容覆盖到C:\TD_Dir文件夹下(除所要还原的项目系统文件);

    2、说明:(“TEST”,“国家环保总局项目”2个文件夹)就是要还原的项目系统文件,所以覆盖时不能还原,要在TDSite Administrator页面中重新创建,创建成功后再C\TD_Dir目录下会生成该文件夹;

    三、项目名称的创建及数据库的还原

    1、在TDSite Administrator页面中重新建立所要还原项目的域名和工程名;

    2、创建成功以后在SQLServer2005中会创建 数据库,

    还原备份的数据库 ,还原后必须在查询分析器中执行以下2条语句:

        exec sp_change_users_login 'Report'

        exec sp_change_users_login 'Update_One','td','td'

        说明:这个脚本必须要执行,要不还原过来的项目不能激活,TDSQLServer不能建立链接。

    、在右下角的任务栏中停掉TD服务,在启动TD服务;

    、打开TDSite Administrator页面中的进行数据库连接测试,及对每个项目进行连接测试。

  • telelogic doors 需求管理工具

    2008-6-23

         随着学习测试的深入,越来越觉得需求的重要。可是公司写的需求文档相当的混乱。也没有专人写,你不可能从需求那里了解输入输出。问开发,他们会跟我说,你看代码去,或者是说,你自己试下就好了。很是郁闷的呢。觉得忍无可忍,就上网查询如何写需求了,o(∩_∩)o...,看来不上梁山是不行了

        在一个论坛找到了Telelogic Doors的介绍,觉得似乎不错,就去找了地址下下来。可惜资料不多,就下了个入门的,但是也不错了。工具不是最重要的,重要是要自己知道怎么写需求。呵呵求爷爷告奶奶的,终于有个网友给我一个范本,豁然开朗。照猫画虎,拿公司的论坛下手,写了客户需求,详细需求分析文档。呵呵,同事看了,觉得清晰了不少。心理得意不少。

        简单说下,telelogic doors 是多人协作的软件,可以进行用户权限设置,方便需求管理,可以快速了解需求的变化,以后需求的历史版本最终。还有个重要功能,可以方便了解需求的覆盖情况。不错,满足我们的需要了,o(∩_∩)o...

        恩,对客户需求,我根据公司情况,把功能简单描述,然后加上用例图和流程图。详细分析的就要求写的更加详细,有用例编号,详细说明,前置条件,后置条件,主要用户,事件流,界面设计以及说明,特殊需求等。写下来,需求会更加清晰,开发和设计的一看,就一下就明白要做的东西的是什么样子了。

       只是,写需求期间,公司高层叫程序自己做测试。也许是自己的沟通不到位,但是也没办法。比较的失望,哎。不过还是学习到不少东西,给我自己的测试道路又前进了一步。

      

  • testdirector

    2008-6-23

       呵呵,开始第一个误区是在LR,后面才知道,功能测试的管理工具主要是TD,而且TD还有编写测试需求,测试计划,BUG跟踪的功能。学习了这个软件这才把我学的测试的零零碎碎的东西串了起来。很不容易啊o(∩_∩)o...

        测试需求,我开始一直不明白,要写成什么样子。多亏了TD自身有的DEMO,而且还幸亏去参加培训。终于把这个家伙使用上了。测试需求通常我一般写上测试的一个大纲吧。测试的内容,例如,功能测试:论坛,后台啊,会员信息什么的;易用性测试、安全测试、性能测试,简单的描述一番。

        测试计划我会写得比较详细,例如功能测试,我会分比较细,例如注册就分为,检查用户名,检查邮件等等细分下去。在每个TEST的描述写上测试的目的,测试的要点,在STEP写上测试的步骤,输入,输出。

        BUG管理里,要注意的是,错误的描述信息要比较详细,包括错误的所在位置,操作,错误页面的截图,其他的按软件的要求写就好。在备注里,最好是加上开发软件的修改以后意见,方便管理。可惜公司的同事是不愿意去学习使用这个软件。虽然我写了使用手册,也做了简单的培训,但是公司对测试的不重视。使得我很郁闷

       不过,TD确实是个好软件。赞一个的说

     

     

      

  • Loadrunner

    2008-6-23

        开始学测试时,第一个接触的工具就Loadrunner ,以为测试的工具就他了。呵呵,深入进去才知道,LR是做自动化性能测试的。呵呵,看最近比较闲,写下自己的心得好了。

        下LR经历很多的曲折,在网上找的很多链接都已经失效了,超级郁闷,后来幸亏主管帮我找他以前的公司下了一个。呵呵,学习期间下了很多的文档,看了很多的东西,也遇到不少的问题。

        LR里面比较重要的是脚本和结果分析了吧。一般来说,简单的脚本录制,都不难,加上参数也容易。但是要自己写函数,我就没去了解。录制脚本期间,遇到的第一个问题首先是录制的脚本出现中文乱码的问题。后来查询了资料,因为我们公司的项目是采用UTF-8的,在VUG里就必须要在TOOL里修改下Recordding Option里修改下设置, 把Advance里的编码改为UTF-8就可以了。还有就,要注意事务和集合了。在关键的地方设置事务和集合才能看出来系统的系能变化的显著,这些也是要注意的啦。

        IP欺骗主要是模拟多人操作,不想都是同一个IP,为使场景更加真实。这个设置看手册还是比较简单的。我觉得比较麻烦的是结果的分析了。我测试的方案先是50,再到100,再150,200,以此类推,直到崩溃。

       这个时候,我一般看的是系统的相应时间,系统内存和CPU的变化情况。那些参数很痛苦,自己对硬件不是很有兴趣,所以分析得不是很好。

       希望自己有机会再能去尝试。o(∩_∩)o...

     

     

  • Loadrunner 9下载

    2008-6-13

    http://esd.mercury.com/akdlm/trial/lr/LR9Download.exe

     

    感谢测试群的朋友提供,分享给大家

Open Toolbar