发布新日志

  • 测试用例设计版块一些经典的帖子(持续整理ing)

    2007-06-15 10:00:37

  • 系统测试用例的设计

    2007-06-15 09:57:13

    系统测试用例的设计

    系统测试计划阶段:分析出测试子项
                               从ISO9126质量模型,分析出需要的测试项
    系统测试设计阶段:对测试项细分,开成测试子项
    系统测试实现阶段:对每个子项以应的需求规格进行分析,用各种用例设计方法,从不同的角度设计用例,进行需求的覆盖。
    1、等价类划分:对输入的各种有效和无效等价类进行覆盖
    2、边界值:保证边界的覆盖
    3、输出域:补充用全的覆盖。输出和种种情况
    4、流程分析法:流程角度覆盖
    5、状态迁移法:对状态条件组合都覆盖到
    6、正交分析法:两两组合输入覆盖
    7、错误猜测法:进行加强测试,达到用例密度
  • 综合设计测试用例

    2007-06-14 11:41:16

    1.测试方法的综合策略:
            1)  在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强。
            2)  必要时用等价类划分方法补充一些测试用例
            3)  用错误推测法再追加一些测试用例。
            4)  对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例。
            5)  如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法。


    2.测试用例的设计步骤
            1)  构造根据设计规格得出的基本功能测试用例;
            2)  边界值测试用例;
            3)  状态转换测试用例;
            4)  错误猜测测试用例;
            5)  异常测试用例;
            6)  性能测试用例;
            7)  压力测试用例。


    3.优化测试用例的方法
            1)  利用设计测试用例的8种方法不断的对测试用例进行分解与合并;
            2)  在测试时利用发散思维构造测试用例。

  • 黑盒测试方法揭密

    2007-06-12 08:55:02

    作者:陈樵 2002年04月08日 本文选自:中国计算机报

    一、黑盒测试在快速应用开发(rad)环境中的重要作用

      软件测试方法一般分为两种:白盒测试与黑盒测试。其中,白盒测试又称为结构测试、逻辑驱动测试或基于程序本身的测试,着重于程序的内部结构及算法,通常不关心功能与性能指标。黑盒测试又被称为功能测试、数据驱动测试或基于规格说明的测试,实际上是站在最终用户的立场上,检验输入输出信息及系统性能指标是否符合规格说明书中有关功能需求及性能需求的规定。

      随着rad环境的发展,软件工程面临新的挑战,其中包括:

      ●应用系统的规模越来越庞大,结构越来越复杂;

      ●开发团队人员越来越多,分工越来越细;

      ●项目投资日益提高,导致投资风险增大。

      在这样一种背景下,软件质量面临着更大的危机,而解决问题的关键正是黑盒测试,可是由于传统的黑盒测试往往局限于手工测试,凭借工程人员的经验自发地进行,缺乏严格的测试管理机制,因而效果并不明显。

      在分发一个应用系统之前,若没有经过科学、周密的黑盒测试,就相当于将大量隐含的缺陷(defect)交付到最终用户手中,这对于开发团队自身、项目投资方及最终用户来说都是不负责任的表现,也将严重损害三方的利益。

      今天,软件的质量要求越来越受到重视,在对软件的质量监督中,黑盒测试起着重要的、不可替代的作用;而随着软件开发平台及软件设计思想的进步和发展,特别是rad技术的发展,对黑盒测试提出了更明确的要求,人们发现,必须遵循一定的测试理论,依赖于优秀的测试工具,才能进行科学、完备的测试。

      二、黑盒测试的操作步骤

      在传统的软件开发生命周期当中,测试工作往往被搁置到整个开发过程的后期进行,也就是说,当应用程序的编码工作已经基本完成,才开始进行测试,这样做的缺点在于:

      a)由于应用程序庞大而复杂,测试工作千头万绪,测试人员难以组织科学、全面的测试用例,从而大幅度提高了测试成本,并严重影响测试的全面性和有效性;

      b)由于缺陷所涉及的模块从开发到测试之间的时间间隔较长,使得程序员的修改和维护工作要付出更大的代价;

      c)由于受到分发日期的限制,测试工作往往是在忙碌中结束的,而将大量的缺陷遗留给最终用户,也就是说,真正的测试工作实际上是由最终用户来完成的。

      因此,为了保证测试工作科学、精确、全面、有序地进行,应该采取一边开发一边测试的策略,使得开发工作与测试工作平行进行,这也就是俗话所说的“越早测试越好”的概念。

      一套完整的测试应该由五个阶段组成:

      1.测试计划

      首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准,以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。

      2.测试设计

      将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响到测试结果的有效性)。

      3.测试开发

      建立可重复使用的自动测试过程。

      4.测试执行

      执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理。测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。

      5.测试评估

      结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。

      显然,黑盒测试只有严格按照步骤进行,才可能对应用程序的质量进行把关。然而,如果没有一种优秀的测试工具的帮助,单纯凭借手工测试,不但将耗费大量的人力、物力和财力,而且有很多测试工作是难以实现甚至是无法实现的。

      三、手工测试与自动测试的比较

      手工测试无法保证黑盒测试的科学性与严密性,这是因为:

      ●测试人员要负责大量文档、报表的制订和整理工作,会变得力不从心;

      ●受软件分发日期、开发成本及人员、资源等诸多方面因素的限制,难以进行全面的测试;

      ●如果修正缺陷所花费的时间相当长,回归测试将变得异常困难;

      ●对测试过程中发现的大量缺陷缺乏科学、有效的管理手段,责任变得含混不清,没有人能向决策层提供精确的数据以度量当前的工作进度及工作效率;

      ●反复测试带来的倦怠情绪及其他人为因素使得测试标准前后不一,测试花费的时间越长,测试的严格性也就越低;

      ●难以对不可视对象或对象的不可视属性进行测试。

      因此,自动测试成为最佳的解决方案。所谓自动测试,实际上是将大量的重复性工作交给计算机去完成,一个优秀的自动测试工具,不但可以满足科学测试的基本要求,而且可以节约大量的时间、成本、人员和资源,并且测试脚本可以被重复利用(包括被不同的项目所利用)。
  • 修改版本的测试流程模版

    2007-06-09 08:37:35

    修改版本的测试流程模版

    ***测试任务

    一。测试环境
    (测试环境可能有很多机器,每个机器上也可能有很多测试版本,所以需要把这次用到的整套环境记录下来,下面是我所测试系统的环境模版)
    测试程序目录位置:
    数据库IP:
    后台IP:
    原始需求和修改内容文档位置:
    开发人员:(遇到问题时找谁问)
    测试时间:(好安排测试任务)

    二。原始需求
    (客户来函之类的,尽量避免使用开发人员编写的原始需求)

    三。修改内容
    (开发人员在测试版本中一般会写个modify文档,里面有具体修改的内容,如果没有该文档,只好麻烦你自己去问开发人员了然后记录下来)

    四。测试流程
    一)。需求理解
    (对原始需求文档不明确和不明白的地方询问相关人员之后在这里进行解释补充,做个记录防止忘记)
    二)。修改理解
    (对修改文档不明确和不明白的地方询问相关人员之后在这里进行解释补充,做个记录防止忘记)
    三)。测试范围及测试时间安排
    (规划好测试范围后,才好利用测试时间,保证测试整个进度正常)
    四)。测试用例设计
    分解测试功能模块:(功能模块A,功能模块B,..)
    (把需要测试的范围尽可能的划分出更小的功能模块,直到无法再细分为止)
    1.(功能模块A)
    功能点分解:(功能1,功能2,功能3,..)
    1)(功能1)
    需求和设计补充:(在测试过程中,有些功能细节部分不清楚的询问开发人员得到答案后在这里记录下来,或者是发现环境某些配置需要改动也记录下来)
    规则点:(功能的具体要求,为测试用例的设计提供依据,也可以称为测试点)
    观察点:(预期输出结果要看哪些地方正确才算测试通过?比如说某个数据库中的某个表有数据(不必写具体数据),某个后台中的某个文件变化了.如果没有必要写可以不写)
    测试数据:(对应于测试用例中的每一个用例,这里记录的是每个测试用例中使用到的输入数据和预期的输出数据,为了使测试用例简单易懂,记录测试数据是为了方便回归测试)
    用例编号   输入                                                   输出
    SC001    (不一定是真正的输入数据,可能是数据库某表中需要具备哪些数据)    (预期的结果具体数据)
    SC002
    测试用例
    (利用基本的黑盒测试方法,包括边界值,正常测试用例,备选测试用例,异常测试用例,错误推断等方法)
    用例编号     输入                          输出                      实际结果
    SC0001
    SC0002
    2)(功能2)
    需求和设计补充:
    规则点:
    观察点:
    测试数据:
    测试用例:
    用例编号     输入                          输出                      实际结果
    SCXXXX

    2.(功能模块B)
    (同上)

                          
    五)。测试用例执行及更新测试用例
    (若任务紧急,可以边写测试用例边执行测试,该项可以合并到上一步骤中去)
    六).回归测试
    (执行需要回归测试的测试用例)
    七)。BUG提交或问题
    1.BUG1(修改结果?)(在某个测试用例的实际结果中有写BUG1标记)
    2.BUG2(下一个版本再修改的原因?)

    五。经验总结
    (测试过程中,有什么新的测试想法,或者用了新的测试方法使得测试效率得到提高,都可以在这里记录下来,作为这次测试任务的经验收获)

  • 测试工具大全(各类测试工具简介)

    2007-06-08 11:41:04

    企业级自动化测试工具WinRunner

    图片可在新窗口打开 style="CURSOR: pointer" src="http://images.csdn.net/20061215/winrunner.jpg"> 

    提名理由:Mercury Interactive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。

    工业标准级负载测试工具Loadrunner

     

    提名理由:LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

    全球测试管理系统testdirector

     

    提名理由:TestDirector 是业界第一个基于Web的测试管理系统,它可以在您公司内部或外部进行全球范围内测试的管理。通过在一个整体的应用系统中集成了测试管理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪等功能,TestDirector极大地加速了测试过程。

    功能测试工具Rational Robot

     

    提名理由:IBM Rational Robot 是业界最顶尖的功能测试工具,它甚至可以在测试人员学习高级脚本技术之前帮助其进行成功的测试。它集成在测试人员的桌面 IBM Rational TestManager 上,在这里测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。这种测试和管理的双重功能是自动化测试的理想开始。

    单元测试工具xUnit系列

     

    提名理由:目前的最流行的单元测试工具是xUnit系列框架,常用的根据语言不同分为JUnit(java),CppUnit(C++),DUnit (Delphi ),NUnit(.net),PhpUnit(Php )等等。该测试框架的第一个和最杰出的应用就是由Erich Gamma (《设计模式》的作者)和Kent Beck(XP(Extreme Programming)的创始人 )提供的开放源代码的JUnit。

    功能测试工具SilkTest

     

    提名理由:Borland SilkTest 2006属于软件功能测试工具,是Borland公司所提出软件质量管理解决方案的套件之一。这个工具采用精灵设定与自动化执行测试,无论是程序设计新手或资深的专家都能快速建立功能测试,并分析功能错误。 

    性能测试工具WAS

     

    提名理由:Microsoft Web Application Stress Tool 是由微软的网站测试人员所开发,专门用来进行实际网站压力测试的一套工具。透过这套功能强大的压力测试工具,您可以使用少量的Client端计算机仿真大量用户上线对网站服务所可能造成的影响。

    自动化白盒测试工具Jtest

     

    提名理由:Jtest是parasoft公司推出的一款针对java语言的自动化白盒测试工具,它通过自动实现java的单元测试和代码标准校验,来提高代码的可靠性。parasoft同时出品的还有C++ test,是一款C/C++白盒测试工具。

    功能和性能测试的工具JMeter

     

    提名理由:JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现。

    性能测试和分析工具WEBLODE

     

    提名理由:webload是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;webload通过模拟真实用户的操作,生成压力负载来测试web的性能。

     测试工具大全

    Author: Vince

    工具类别 工具名称 生产厂商 相关网站
    通用功能自动化测试工具 Winrunner Mercury
    Quicktest pro Mercury
    Xrunner Mercury
    QARun Compuware
    TestPartner Compuware
    WebKing Parasoft http://www.parasoft.com
    Robot IBM Rational http://www.ibm.com/cn
    Visual Test IBM Rational http://www.ibm.com/cn
    Functional Tester IBM Rational http://www.ibm.com/cn
    SilkTest Segue
    SilkTest International Segue
    e-Tester Empirix
    WebFT Radview
    TestComplete AutomatedQA
    QA Wizard Seapine
    Software EggPlant RedStone
    Test Edition Microsoft Visual Studio
    PureTest Minq
    Autotester Autotester
    Testbench400 Original Software
    TestExpert VEReCOMM
    TestRunner Qronus
    TTCN suite Telelogic http://www.telelogic.com.cn
    QC/Replay Centerline
    Web AutoTester
    eValid Software Research
    WebART OCLC
    MaxQ 开源
    WebInject 开源
    Marathon 开源
    性能测试/监控工具  LoadRunner Mercury
    SiteScope Mercury
    Topaz Mercury
    QaLoad Compuware
    PerformaSure/benchmark Quest
    Silkperformer Segue
    Silkperformer Lite Segue
    SilkCentralTM Performance Manager Segue
    e-Load Empirix
    Robot IBM Rational http://www.ibm.com/cn
    Performance Tester IBM Rational http://www.ibm.com/cn
    WebLoad RadView
    Web applicaton stress tool  Microsoft
    Application center test Microsoft
    PureLoad Minq
    Athene APR Metron
    ForeCast Facilita
    Impact/Impact for CBT Cyrano
    Berkeley Laboratory sniffer Lawrence
    Jmeter 开源
    openSTA 开源
    Siege 开源
    StressMark 开源
    DBMonster 开源
    白盒测试/代码分析工具  VcTester ezTester http://www.eztester.com
    Jtest Parasoft http://www.parasoft.com
    C++test Parasoft http://www.parasoft.com
    SOA test Parasoft http://www.parasoft.com
    .test Parasoft http://www.parasoft.com
    Codewizard Parasoft http://www.parasoft.com
    Insure++ Parasoft http://www.parasoft.com
    DataRecon Parasoft http://www.parasoft.com
    Numega devpartner studio Compuware
    DevPartnerJavaEdition Compuware
    BoundsChecker Compuware
    SmartCheck Compuware
    DBPartner Compuware
    Bean-test Empirix
    Aqtime AutomatedQA
    QESatJava AutomatedQA
    Visual Unit Unitware
    PC-lint Gimpel Software
    Macabe Macabe
    Optimizeit Suite Borland
    JProbe Suite Quest Software
    Application assurance suite Quest Software
    Sql optimizer Quest Software
    Jprofiler ej-technologies
    workbench Cyrano
    Logiscope TeleLogic http://www.telelogic.com.cn
    rulecheck TeleLogic http://www.telelogic.com.cn
    SilkPerformer Component Test Edition Segue
    Purifyplus IBM rational http://www.ibm.com/cn
    Rational Test Realtime IBM rational http://www.ibm.com/cn
    junit 开源
    cactus 开源
    Hansel 开源
    TestNG 开源
    StrutsTestCase 开源
    JFCUnit 开源
    Httpunit 开源
    Dunit 开源
    cppunit 开源 http://sourceforge.net/projects/cppunit
    Nunit 开源
    Xunit 开源
    JTR 开源
    MallocDebug Linux平台工具
    Valgrind Linux平台工具
    Kcachegrind Linux平台工具
    dmalloc Linux平台工具
    ElectricFence Linux平台工具
    LeakTracer Linux平台工具
    memprof Linux平台工具
    ccmalloc Linux平台工具
    mprof Linux平台工具
    yamd Linux平台工具
    njamd Linux平台工具
    mpatrol Linux平台工具
    嵌入式测试工具 VcTester ezTester http://www.eztester.com
    codetest Metrowerks
    Cantata/cantana++ IPL
    IceMaster Reflex Technology
    System test Reflex Technology
    scorecast DDC-I
    Testquest Testquest
    UniText ATTOL
    vectorcast Vector software
    testrunner Qronus
    Logiscope Telelogic http://www.telelogic.com.cn
    测试管理工具 TestDirector(QualityCenter) Mercury
    QADirector Compuware
    certify Worksoft
    Product manager Aimware
    SilkCentral Test Manager Segue
    Doors Telelogic http://www.telelogic.com.cn
    e-manager Empirix
    testmanager IBM Rational http://www.ibm.com/cn
    TestView Manager RadView
    Professional T-Plan
    缺陷管理工具 TestDirector(QualityCenter) Mercury
    ClearQuest IBM Rational http://www.ibm.com/cn
    TrackRecord Compuware
    TestTrack pro Seapine
    TrueTrack McCabe
    Devtrack Techexcel
    Notes IBM Lotus
    SilkCentral Issue Manager Segue
    PVCS Tracker Merant
    AR System Remedy
    URTrack LealSoft
    Butterfly Hansky
    Bugzilla 开源
    Mantis 开源
    JIRA 开源
    BugFree 开源
    配置管理工具 ClearCase IBM Rational http://www.ibm.com/cn
    PVCS Version Manager Merant
    VCS Diamond
    StarTeam Borland
    Perforce Perforce
    TRUEchange McCabe
    SYNERGY CM  Telelogic http://www.telelogic.com.cn
    VSS Microsoft
    Firefly Hansky
    CVS Subversion
    SCCS RCS
    CCC/Harvest Computer Associates

  • 软件测试常用单词

    2007-06-08 11:35:57

    软件测试常用单词

    2007-06-06 17:03:13

    1.静态测试:Non-Execution-Based Testing或Static testing
            代码走查:Walkthrough
    代码审查:Code Inspection
    技术评审:Review
    2.动态测试:Execution-Based Testing
    3.白盒测试:White-Box Testing
    4.黑盒测试:Black-Box Testing
    5.灰盒测试:Gray-Box Testing
    6.软件质量保证SQA:Software Quality Assurance
    7.软件开发生命周期:Software Development
    Life Cycle
    8.冒烟测试:Smoke Test
    9.回归测试:Regression Test
    10.
    功能测试:Function Testing
    11.
    性能测试:Performance Testing
    12.压力测试:Stress Testing
    13.负载测试:Volume Testing
    14.易用性测试:Usability Testing
    15.安装测试:Installation Testing
    16.界面测试:UI Testing
    17.配置测试:Configuration Testing
    18.文档测试:Documentation Testing
    19.兼容性测试:Compatibility Testing
    20.
    安全性测试:Security Testing
    21.恢复测试:Recovery Testing
    22.
    单元测试:Unit Tes
    23.集成测试:Integration Test
    24.系统测试:System Test
    25.验收测试:Acceptance Test
    26.测试计划应包括:
    测试对象:The Test Objectives,
    测试范围: The Test  Scope,
    测试策略: The Test  Strategy
    测试方法: The Test  Approach,
    测试过程: The test procedures,
    测试环境: The Test Environment,
    测试完成标准:The test Completion criteria
                                           
    测试用例:The Test Cases
                                            测试进度表:The Test Schedules
                                            风险:Risks
                                            Etc
    27.主测试计划: a master test plan
    28.需求规格说明书:The Test Specifications
    29.需求分析阶段:The Requirements Phase
    30.接口:Interface
    31.最终用户:The End User
    31.正式的测试环境:Formal Test Environment
    32.确认需求:Verifying The Requirements
    33.有分歧的需求:Ambiguous Requirements
    34.运行和维护:Operation and Maintenance.
    35.可复用性:Reusability
    36.可靠性: Reliability/Availability
    37.电机电子工程师协会IEEE:The Institute of Electrical and Electronics Engineers)  
    38.要从以下几方面测试软件:
    正确性:Correctness
    实用性:Utility
    性能:Performance
    健壮性:Robustness
    可靠性:Reliability

    关于Bugzilla:
    1.Bug按严重程度(Severity)分为:
    Blocker,阻碍开发和/或测试工作
                  Critical,死机,丢失数据,内存溢出
                 Major,较大的功能缺陷
                 Normal,普通的功能缺陷
                Minor,较轻的功能缺陷
    Trivial,产品外观上的问题或一些不影响使用的小毛病,如菜单或对话框中的文字拼写或字体问题等等
            Enhancement,建议或意见
    2.Bug按报告状态分类(Status)
       待确认的(Unconfirmed)
             新提交的(New)
            已分配的(Assigned)
       问题未解决的(Reopened)
             待返测的(Resolved)
             待归档的(Verified)
             已归档的(Closed)
    3.Bug处理意见(Resolution)
                          已修改的(Fixed)
    不是问题(Invalid)
                           无法修改(Wontfix)
            以后版本解决(Later)
                     保留(Remind)
                            重复(Duplicate)
                     无法重现(Worksforme)

  • 软件测试之常用的功能测试方法解析

    2007-06-08 10:35:23

    【编者按】
      功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。常用的测试方法如下:页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。
    【正文】
      功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。常用的测试方法如下:

      1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。

      2. 相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确。

      3. 检查按钮的功能是否正确:如update, cancel, delete, save等功能是否正确。

      4. 字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度,会不会出错.

      5. 字符类型检查: 在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错.

      6. 标点符号检查: 输入内容包括各种标点符号,特别是空格,各种引号,回车键.看系统处理是否正确.

      7. 中文字符处理: 在可以输入中文的系统输入中文,看会否出现乱码或出错.

      8. 检查带出信息的完整性: 在查看信息和update信息时,查看所填写的信息是不是全部带出.,带出信息和添加的是否一致

      9. 信息重复: 在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理.

      10. 检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按”delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理.
     
     

    11. 检查添加和修改是否一致: 检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型.

    12. 检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错.

    13. 重复提交表单:一条已经成功提交的纪录,back后再提交,看看系统是否做了处理。

    14. 检查多次使用back键的情况: 在有back的地方,back,回到原来页面,再back,重复多次,看会否出错.

    15. search检查: 在有search功能的地方输入系统存在和不存在的内容,看search结果是否正确.如果可以输入多个search条件,可以同时添加合理和不合理的条件,看系统处理是否正确.

    16. 输入信息位置: 注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方.

    17. 上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。

    18. 必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加*

    19. 快捷键检查:是否支持常用快捷键,如Ctrl+C Ctrl+V Backspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。

    20. 回车键检查: 在输入结束后直接按回车键,看系统处理如何,会否报错。


  • 界面设计与测试规则

    2007-06-08 10:31:20

    界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。目前界面的设计引起软件设计人员的重视的程度还远远不够,直到最近网页制作的兴起,才受到专家的青睐。而且设计良好的界面由于需要具有艺术美的天赋而遭拒绝。
    目前流行的界面风格有三种方式:多窗体、单窗体以及资源管理器风格,无论那种风格,以下规则是应该被重视的。

          1:易用性:
         按钮名称应该易懂,用词准确,屏弃没楞两可的字眼,要与同一界面上的
    其他按钮易于区分,能望文知意最好。理想的情况是用户不用查阅帮助就能知道该界面的功能并进行相关的正确操作。

         易用性细则:
         1):完成相同或相近功能的按钮用Frame框起来,常用按钮要支持快捷方式。
         2):完成同一功能或任务的元素放在集中位置,减少鼠标移动的距离。
         3):按功能将界面划分局域块,用Frame框括起来,并要有功能说明或标题。
         4):界面要支持键盘自动浏览按钮功能,即按Tab键的自动切换功能。
         5):界面上首先应输入的和重要信息的控件在Tab顺序中应当靠前,位置也应放在窗口上较醒目的位置。
         6):同一界面上的控件数最好不要超过10个,多于10个时可以考虑使用分页界面显示。
         7):分页界面要支持在页面间的快捷切换,常用组合快捷键Ctrl+Tab
         8):默认按钮要支持Enter及选操作,即按Enter后自动执行默认按钮对应操作。
         9):可写控件检测到非法输入后应给出说明并能自动获得焦点。
         10):Tab键的顺序与控件排列顺序要一直,目前流行总体从上到下,同时行间从左到右的方式。
         11):复选框和选项框按选择几率的高底而先后排列。
         12):复选框和选项框要有默认选项,并支持Tab选择。
         13):选项数相同时多用选项框而不用下拉列表框。
         14):界面空间较小时使用下拉框而不用选项框。
         15):选项数叫少时使用选项框,相反使用下拉列表框。
         16):专业性强的软件要使用相关的专业术语,通用性界面则提倡使用通用性词眼。
         2: 规范性:
         通常界面设计都按Windows界面的规范来设计,即包含“菜单条、工具栏、工具厢、状态栏、滚动条、右键快捷菜单”的标准格式,可以说:界面遵循规范化的程度越高,则易用性相应的就越好。小型软件一般不提供工具厢。

         规范性细则:
         1):常用菜单要有命令快捷方式。
         2):完成相同或相近功能的菜单用横线隔开放在同一位置。
         3):菜单前的图标能直观的代表要完成的操作。
         4):菜单深度一般要求最多控制在三层以内。
         5):工具栏要求可以根据用户的要求自己选择定制。
         6):相同或相近功能的工具栏放在一起。
         7):工具栏中的每一个按钮要有及时提示信息。
         8):一条工具栏的长度最长不能超出屏幕宽度。
         9): 工具栏的图标能直观的代表要完成的操作。
         10):系统常用的工具栏设置默认放置位置。
         11):工具栏太多时可以考虑使用工具厢。
         12):工具厢要具有可增减性,由用户自己根据需求定制。
         13):工具厢的默认总宽度不要超过屏幕宽度的1/5。
         14): 状态条要能显示用户切实需要的信息,常用的有:
    目前的操作、系统状态、用户位置、用户信息、提示信息、错误信息等,如果某一操作需要的时间较长,还应该显示进度条和进程提示。
         15):滚动条的长度要根据显示信息的长度或宽度能及时变换,以利于用户了解显示信息的位置和百分比。
         16):状态条的高度以放置五好字为宜,滚动条的宽度比状态条的略窄。
         17):菜单和工具条要有清楚的界限;菜单要求凸出显示,这样在移走工具条时仍有立体感。
         18):菜单和状态条中通常使用5号字体。工具条一般比菜单要宽,但不要宽的太多,否则看起来很不协调。
         19):右键快捷菜单采用与菜单相同的准则。

         3:帮助设施:
         系统应该提供详尽而可靠的帮助文档,在用户使用产生迷惑时可以自己寻求解决方法。

         帮助设施细则:
         1):帮助文档中的性能介绍与说明要与系统性能配套一致。(我们的系统帮助文档都是系统的祖先时期的说明,让人困惑)。
         2):打包新系统时,对作了修改的地方在帮助文档中要做相应的修改。
         3):操作时要提供及时调用系统帮助的功能。常用F1。
         4):在界面上调用帮助时应该能够及时定位到与该操作相对的帮助位置。也就是说帮助要有即时针对性。
         5):最好提供目前流行的联机帮助格式或HTML帮助格式。
         6):用户可以用关键词在帮助索引中搜索所要的帮助,当然也应该提供帮助主题词。
         7):如果没有提供书面的帮助文档的话,最好有打印帮助的功能。
         8 ):在帮助中应该提供我们的技术支持方式,一旦用户难以自己解决可以方便的寻求新的帮助方式。

         4:合理性:
         屏幕对角线相交的位置是用户直视的地方,正上方四分之一处为易吸引用户注意力的位置,在放置窗体时要注意利用这两个位置。

         合理性细则:
         1):父窗体或主窗体的中心位置应该在对角线焦点附近。
         2):子窗体位置应该在主窗体的左上角或正中。
         3):多个子窗体弹出时应该依次向右下方偏移,以显示窗体出标题为宜。
         4):重要的命令按钮与使用较频繁的按钮要放在界面上注目的位置。
         5):错误使用容易引起界面退出或关闭的按钮不应该放在易点位置。横排开头或最后与竖排最后为易点位置。
         6):与正在进行的操作无关的按钮应该加以屏蔽(Windows中用灰色显示,没法使用该按钮)。
         7):对可能造成数据无法恢复的操作必须提供确认信息,给用户放弃选择的机会。
         8):非法的输入或操作应有足够的提示说明。
         9): 对运行过程中出现问题而引起错误的地方要有提示,让用户明白错误出处,避免形成无限期的等待。
         10):提示、警告、或错误说明应该清楚、明了、恰当。
         5:美观与协调性:
         界面应该大小适合美学观点,感觉协调舒适,能在有效的范围内吸引用户的注意力。

         美观与协调性细则:
         1): 长宽接近黄金点比例,切忌长宽比例失调、或宽度超过长度。
         2): 布局要合理,不宜过于密集,也不能过于空旷,合理的利用空间。
         3): 按钮大小基本相近,忌用太长的名称,免得占用过多的界面位置。
         4): 按钮的大小要与界面的大小和空间要协调。
         5): 避免空旷的界面上放置很大的按钮。
         6):放置完控件后界面不应有很大的空缺位置。
         7): 字体的大小要与界面的大小比例协调, 通常使用的字体中宋体9-12较为美观,很少使用超过12号的字体。
         8): 前景与背景色搭配合理协调,反差不宜太大,最好少用深色,如大红、大绿等。常用色考虑使用Windows界面色调。
         9): 如果使用其他颜色,主色要柔和,具有亲和力与磁力,坚决杜绝刺目的颜色。
         10): 大型系统常用的主色有"#E1E1E1"、"#EFEFEF"、"#C0C0C0"等。
         11): 界面风格要保持一致,字的大小、颜色、字体要相同,除非是需要艺术处理或有特殊要求的地方。
         12): 如果窗体支持最小化和最大化或放大时,窗体上的控件也要随着窗体而缩放;切忌只放大窗体而忽略控件的缩放。
         13):对于含有按钮的界面一般不应该支持缩放,即右上角只有关闭功能。
         14): 通常父窗体支持缩放时,子窗体没有必要缩放。
         15):如果能给用户提供自定义界面风格则更好,由用户自己选择颜色、字体等。

         6:菜单位置:
         菜单是界面上最重要的元素,菜单位置按照按功能来组织。

         菜单设
    测试细则:
         1):菜单通常采用“常用--主要--次要--工具--帮助”的位置排列,符合流行的Windows风格。
         2):常用的有“文件”、“编辑”,“查看”等,几乎每个系统都有这些选项,当然要根据不同的系统有所取舍。
         3):下拉菜单要根据菜单选项的含义进行分组,并切按照一定的规则进行排列,用横线隔开。
         4): 一组菜单的使用有先后要求或有向导作用时,应该按先后次序排列。
         5): 没有顺序要求的菜单项按使用频率和重要性排列,常用的放在开头, 不常用的靠后放置;重要的放在开头,次要的放在后边。
         6): 如果菜单选项较多,应该采用加长菜单的长度而减少深度的原则排列。
         7): 菜单深度一般要求最多控制在三层以内。
         8): 对常用的菜单要有快捷命令方式,组合原则见8。
         9):对与进行的操作无关的菜单要用屏蔽的方式加以处理,如果采用动态加载方式——即只有需要的菜单才显示——最好。
         10):菜单前的图标不宜太大,与字高保持一直最好。
         11):主菜单的宽度要接近,字数不应多于四个,每个菜单的字数能相同最好。
         12):主菜单数目不应太多,最好为单排布置。

  • 构造朴实的测试用例

    2007-06-08 10:29:59

     测试用例这种东西对于刚入行的人来说是一种诱惑,初入测试的人急于掌握这门学问,所以一开始就会问测试用例怎么写,问的同时或许还包含了一些期望。其实测试用例就是一个测试矩阵,任何人没有必要注重形式问题,如果你现在或者未来的公司有套非常完善的文档管理体系,那么你可以参考标准模版,如果没有你们大可跟我一样使用下面的格式:

    -------------------------------------------------------------------------
    - ID-ACT-DATA-EXPECTED-ACTUAL-T/F-DATE
    -------------------------------------------------------------------------

        我认为没有什么问题,ID代表标号(如果你愿意可以用这个ID对应需求文档的ID或者使用详细设计的文档的ID,间接连接需求),ACT代表一种动作,因为测试动作非常复杂,如果手动执行或者自动执行,或者或者是一种异常状态都可以占用此位置,但是注意不能使用性能、数据或者安全测试替代,为什么请各位自己考虑。DATA代表数据,很多的测试类书籍中虽然没有直接讲明测试数据的划分,但是通常我们引用三种数据“正常”、“异常”、“错误”,分别对应关键字“PASS”、“ERROR”、“FAIL”,对于数据的划分我以前曾经说过这里不再细谈,为什么会在一个文档中体现着点,主要是为了以后数据程序化作接口,一个不能将手动测试转为自动测试的人员注定是平庸的。EXPECTED、ACTUAL分别代表期望和实际,我们做这一行的经常对这两种值的差异感到困惑,是不是“正常”、“异常”、“错误”就看个人的经验了。T/F的引入是因为有这样的一种情况介入,如果EXPECTED、ACTUAL是不同的,但是我们还是要给个T,因为对于单项的是否通过测试人员有着使用权,但决定权在于市场或者高层决策。DATE是一种好习惯,通常记为发现“PASS”、“ERROR”、“FAIL”的时间,很多人会忽略这个值,当然对于我们来说没什么损失,对于QA团队来说,仅仅提供给他们T/F是不够的。

        我觉得这就是一种构造朴实的测试用例的方式,不要过于在意一份文档的表现形式,如果你有很多的时间,如果你一年才写一个这样的文档,那么你可以从互联网上下在很多的资源把这份文档修饰的像APPLE一样。

        入行的人员会更进一步的发挥测试偏执狂的能力,这时候他们急需一种数量,例如:我们一个动态库的测试用例就有3000多个厉害吧?厉害,我当然说你厉害,你难道不厉害吗?我记得有个500强的
    面试题就是你能为LOGIN动作写多少的测试用例?我想了半天我说就三个,或者四个,在听到了一声深深叹息后,我惶恐的说大概我能写5个吧?!当然我自己也没底,我就能写出三个。LOGIN/PASS、LOGIN/ERROR、LOGIN/FAIL,所有的测试用例就是他们的衍生,一种本源的问题。我们继续讨论3000多个测试用例的事情,有人明眼就会说:这家伙肯定是微软的,没错,除了这种大公司有了充足的资源和技术支持,哪家公司能跟他们一样呢?当然了,写3000个我想入行久了谁都可以,并且跟你对系统的熟悉程度,工作经验有莫大的关系,但是这里我又想说说关于构造朴实的测试用例的问题了。

       
    单元测试、集成测试这些说明的是测试范围,功能测试性能测试这些说明的是测试的手段,也可以这样说某个功能测试包含了若干个功能测试也内隐含了若干个单元测试的联动,当你开始测试的时候,实际上最终是对代码设定路径的一种验算,如果我们都生活在单线程、无UI的年代你可以更清楚的看到“PASS”、“ERROR”、“FAIL”三种状态,可我们已经错过了这个年代,我们有了包装的UI,有了封装的API,有了各种各样的MESSAGE,所以你就要承受更多ERROR的打击。这个时候有人就会通过增加测试用例的数量来回避这些陷阱,出发点是好的做法是累死人的,如果你愿意你可以为机器码写1亿个测试用例,如果你还是很偏执,你可以为门电路写上1万亿个测试用例,你有命执行吗?

        我通常不愿意写太多的测试用例,很多人认为我工作态度有问题,我认为这更能说明我的态度:我愿意朴实的构造我的测试用例,但是我有原则来保证我的测试用例:

    1。接到任务不急于作而在于多思考,首先在纸上构造一个大致的业务流图
    2。流图构造好,快速剔除公用的测试用例
    3。构造测试用例先写符合主路径的三种“PASS”、“ERROR”、“FAIL”
    4。精化测试用例努力为ERROR多构造1-7种假设
    5。执行测试用例强化FAIL的标准化失败输出,但是对应减少PASS测试用例
    6。进一步精化测试用例,使“PASS”、“ERROR”、“FAIL”所占的比例分别为%20、%70、%10


        如果我还是测试,我将继续我的朴实理论,多出来的安全时间我可以看看蓝天享受享受生活!

     

    我很同意楼上的说法,作为测试人员,当设计测试用例时一定要首先从大处入手。架构的搭建才决定了用例的有效性和覆盖面,假若1000个用例中有1/3个用例和其他用例所起到的作用重复,那么每作一次回归测试所花费的时间和人力就会成倍数增长;其次,对整个系统来讲,最重要的是尽可能将功能覆盖地广,其次才是粒度问题。这也取决于企业对软件产品质量的要求,我相信大多数的企业都不倾向于打造品牌,而更倾向于满足客户的基本需求,能够赚钱就好。所以像微软那样的测试用例设计模式对国内中小企业实际上是不适用的。
    回过头来再重申一下,我认为测试用例的设计比用例的数量更应该受到人们的关注,不能仅凭用例的个数来判断一个测试人员的能力,像楼主的提出思路才是测试人员应该去学习和掌握的。

  • 界面设计规范

    2007-06-08 10:27:11

    界面设计规范

    字体:        | 上一篇 下一篇 | 打印

    界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。设计良好的界面能够引导用户自己完成相应操作,起到向导作用。

    界面设计主要是为了达到以下目的:

    1. 1) 以用户为中心。设计由用户控制的界面,而不是界面控制用户。
    2. 2) 清楚一致的设计。所有界面的风格保持一致,所有具有相同含义的术语保持一致,且易于理解和使用。
    3. 3) 拥有良好的直觉特征。以用户所熟悉的现实世界事务的抽象来给用户暗示和隐喻,来帮助用户能迅速学会软件的使用。
    4. 4) 较快的响应速度。
    5. 5) 简洁、美观。

    以下规则应该重视:

    界面风格一致性

    操作项

    基本规范

    UI色彩与字体

    1. 1) UI 字体,色彩要一致。
    2. 2) 整体色彩搭配要融为一体,同时诸如CaptionButton 起提示、提交作用的部分要清楚,醒目。
    3. 3) 不可修改的字段,统一使用灰色文字显示。(例:浏览页面、删除页面均需显示灰色)

    窗口风格

    1. 1) 所有窗口最大化、最小化风格要一致。
    2. 2) 报错页面的风格一致,最好有统一的报错页面。
    3. 3) 类似功能的窗口打开的风格要一致。
    4. 4) 相同功能在不同模块的名称要一致。
    5. 5) 子窗体应尽量在显示在主窗体的左上或居中放置。
    6. 6) 弹出式窗口应尽量在不借助水平和垂直滚动条的情况下显示所有内容。
    7. 7) 窗体支持最小化和最大化或放大时,窗体上的控件也要随着窗体而缩放;不能只放大窗体而忽略控件的缩放。
    8. 8) 父窗体支持缩放时,子窗体不必缩放。
    9. 9) 实现自定义界面风格(可参考电子社区系统)

    布局与间距(待定)

    1. 1) 窗体控件布局和间距尽量与Windows标准保持一致。
    2. 2) 按钮与窗体上、下、左、右之间的间距为
    3. 3) 按钮之间的间距为
    4. 4) ……

    菜单深度

    1. 1) 菜单深度一般不要超过三层
    2. 2) 菜单层次太多时,应给出返回主窗口、主分支的快捷链接。

    1. 1) 按钮风格相同,大小相似,标题字体保持一致,在整个系统中的显示位置要统一。
    2. 2) 无效按钮要屏蔽。

    1. 1) 各复选框和选项框按选择几率的高低而先后排列。
    2. 2) 复选框和选项框要有默认选项,并支持Tab选择。
    3. 3) 界面空间较小时使用下拉框而不用选择框。
    4. 4) 选项数较少时使用选项框,相反使用下拉列表框。

    文本框输入

    操作项

    基本规范

    必 输 项

    1)必输项中不可为空,不可输入空格

    2)必输项给出必输项标识(*)。

    3)非必输项字段,Null 插入数据库时不会出错,在数据库中设置默认值。

    字段长度

    超过数据库规定长度时不允许输入,自动截断超长部分(注:2字符=1字)

    格式校验

    1)身份证号、E-MAIL、邮箱等特定字段的格式要符合需求的规定。

    日期格式

    1. 1) 日期显示格式一致,为 :yyyy-mm-dd
    2. 2) 使用日期控件,则不可手工录入。
    3. 3) 若允许手工输入:需做格式校验。不可输入字符串、汉字、特殊字符。
    4. 4) 若允许手工输入:对于日期段,需在截止日期小于开始日期时给出提示。

    特殊字符

    1)输入区域输入特殊字符,插入数据库时不出错或提示不允许输入特殊字符。特殊字符包括:‘ “ = @ ` ~ $ % ^ % & # @

    英文输入

    英文输入不区分大小写,不可输入汉字、数字及特殊字符

    数值字段

    只能输入+ ,— ,0~9及功能键(BackSpace 光标) 。数值不能为负数。

    字符字段

    字符字段中只能输入字符,非法字符如单引号、数字均不可输入

    单行文本框/多行文本框

    1. 1) 长度合适,可以容纳相应文字,但不能超过数据库该字段长度,最好将可以输入的最大字符数标在旁边。建议单行文本框中当输入的字符超过一定长度时再输入无效;对于多行文本框给出最大字符数标识

    附件

    1. 1) 可正常添加符合格式的附件。
    2. 2) 附件可正常打开和保存,附件名较长时可正常操作。
    3. 3) 直接输入错误的附件地址,保存时应给出提示信息。
    4. 4) 附件打开和保存到本地时,文件名要显示原文件的文件名。

    密码输入

    1. 1) 需在需求中定义密码是否允许为空或空格;密码是否允许特殊字符;是否区分大小写,密码的可输入长度。
    2. 2) 程序中应给出文字说明密码的可输入长度。

    用户界面行为

    操作项

    基本规范

    1)鼠标为不可点击状态时显示箭头,可点击状态显示手型;系统忙时显示沙漏形状

    光标定位

    1. 1) 打开新增(修改)页面时,光标初始定位在第一个待输入的文本区
    2. 2) 因输入不正确提示用户重新输入时,光标默认focus在出错的输入区,并高亮全选该错误输入。
    3. 3) 若必输项未填写完毕就提交,应给出说明信息并能自动获得焦点;
    4. 4) 可写控件检测到非法输入后应给出说明并能自动获得焦点

    TAB

    1. 1) 界面支持键盘自动浏览按钮功能。即TAB的自动切换功能。
    2. 2) Tab键的顺序与控件排列顺序要一致,一般情况下总体从上到下,同时行间从左到右的方式。

  • 边界值分析法实例

    2007-06-08 10:26:00

    实例:
    “某一为学生考试试卷评分和成绩统计的程序,其规格说明指出了对程序的要求:
    程序的输入文件由80个字符的一些记录组成,这些记录分为三组:
    (1)标题:这一组只有一个记录,其内容为输出报告的名字。
    (2)试卷各题标准答案记录:每个记录均在第80个字符处标以数字“2”。该组的第一个记录的第1至第3个字符为题目编号(取值1—999)。第10至59个字符给出第1至第50题的答案(每个合法字符表示一个答案)。该组的第2,第3,等等记录相应为第51至第100,第101至第150,等等题的答案。
    (3)每个学生的答卷描述:该组中每个记录的第80个字符均为数字“3”。每个学生的答卷在若干个记录中给出。如甲的首记录第1至第9字符给出学生姓名及学号,第10至59字符列出的是甲所做的第1至第50题的答案。若试题数超过50,则其第2,第3,等等记录分别给出他的第51至第100,第101至150,等等题的解答。然后是学生乙的答案记录。
    若学生最多为200人,输入数据的形式如下图所示:
    该程序应给出4个输出报告,即:
    按学生学号排序,每个学生的成绩(答对的百分比)和等级报告。
    按学生得分排序,每个学生的成绩。
    平均分数,最高与最低分之差。
    按题号排序,每题学生答对的百分比。
    以下两个表分别针对输入条件和输出条件,根据其边界值设置了
    测试用例。(共43个测试用例)
    输入条件 测试用例 
    输入文件 空输入文件 

    标题 无标题记录
    只有1个字符的标题
    具有80个字符的标题 

     

    出题个数 出了1个题
    出了50个题
    出了51个题
    出了100个题
    出了999个题
    没有出题
    题目数是非数值量 

    答案记录 标题记录后没有标准答案记录
    标准答案记录多1个
    标准答案记录少1个 


    学生人数 学生人数为0
    学生人数为1
    学生人数为200
    学生人数为201 

    生答题 某学生只有1个答卷记录,但有2个标准答案记录
    该学生是文件中的第1个学生
    该学生是文件中的最后1个学生 

    学生答题 某学生有2个答卷记录,但仅有1个标准答案记录
    该学生是文件中的第1个学生
    该学生是文件中最后1个学生 

    输出条件 测试用例 

    学生得分 所有学生得分相同
    所有学生得分都不同
    一些学生(不是全部)得分相同(用以检查等级计算)
    1个学生得分0分
    1个学生得分是100分 
    输出报告
    (1)(2) 1个学生编号最小(检查排序)
    1个学生编号最大
    学生数恰好使报告印满1页(检查打印)
    学生人数使报告1页打印不够,尚多1人 
    输出报告
    (3) 平均值最大值(所有学生均得满分)
    平均值为0(所有学生都得0分)
    标准偏差取最大值(1学生得0分,1学生得100分)
    标准偏差为0(所有学生得分相同) 
    输出报告
    (4) 所有学生都答对第1题
    所有学生都答错第1题
    所有学生都答对最后1题
    所有学生都答错最后1题
    报告打印完1页后,恰剩1题未打
    题数恰好使得报告打印在1页上

  • 从测试用例看测试的问题及变化

    2007-06-08 10:02:33

     本文为dionysus在51testing论坛上发表的一篇文章
        对于一个测试人员来说测试用例的设计编写是一项必须掌握的能力。但有效的设计和熟练的编写却是一个十分复杂的技术,它需要你对整个软件不管从业务还是从功能上都有一个明晰的把握。

    一、问题:
        许多测试类书籍中都有大幅的篇章介绍用例的设计方法,如等价类划分,边界值,错误推断,因果图等。但实际应用中这些理论却不能给我们很明确的行为指导,尤其是业务复杂,关联模块紧密,输入标准和输出结果间路径众多时,完全的遵循这些方法只能让我们在心理上得到一种满足,而无法有效的提高测试效率。有时我们只有依靠以前项目的用例编写经验(或习惯),希望能在这一个项目中更加规范,但多数情况下我们规范的只是“书写的规范”,在用例设计上以前存在的问题现在依旧。
        当好不容易用例基本完成,我们却发现面对随之而来的众多地区特性和新增需求,测试用例突然处于一种十分尴尬的境地:
     从此几乎很少被执行
     已经与程序的实现发生了冲突(界面变动,功能变动)
     执行用例发现的bug很少
     根本没有时间为新的功能需求增补用例
     有时间补充,但用例结构越来越乱,
     特性的用例与通性用例之间联系不明确(以新增需求为主线列出所有涉及到的更改,但特性与通行之间的数据或业务联系在用例中逐渐淡化)
     知道怎样执行这个用例,但它要说明什么呢?(多数用例给我们的感觉是只见树木,不见森林,只对某一功能,无法串起)

        通过上面的一系列问题可以看到,似乎测试用例给我们带来的问题远多于益处,也正是因为在实际过程中遇到的问题积累,导致我们有很充分的理由忽视或拒绝用例的应用。
    但没有用例或简略用例的编写我们又会舒服很多么?不言自明,谁也不想倒退发展吧。

    二、原因:
        事实上我们在测试用例编写和设计上遇到的一系列问题只是一种表面的呈现,究其原因我认为有如下几点:

    1、没有适合的规范
        “适合的规范”或称“本地化的规范”。这是我们在测试过程中遇到的第一个问题,通常也是很容易习惯且淡忘的。我们拥有相当多的流程文档、书本上的定义,但它适合我们当前的项目么?
    每一个测试工程师在进入这个职业的初期都会了解一些测试上的概念和术语,进入公司或项目组后也会进一步学习相应的文档,例如怎样规范编写,怎样定义bug级别,软件实现的主要业务等。但当测试经理开始给我们分配某一模块的用例编写时,又有多少人知道该怎样去写,怎样写算是好?
    在测试论坛中常能看到介绍用例编写方法的帖子,而迷茫于怎样应用到实践的回复也不为少数。为何我们无法在公司和项目组内找到明确且适合的规范?于是我们只得选择从书本或之前的用例中复制,不管是结构还是方式都依赖于以往•的经验,我并不是说这样就是错误的,但不能总结成文的经验无法给予测试更多帮助。
    我们有太多经验,但却没有形成适合的规范。

    2、功能与业务的分离
        我们知道怎样列举一个输入框的用例,但却很少考虑说明这个输入框是用来做什么的,如果仔细分析不难发现,用例中这种功能与业务的分离越来越普遍也越来越明显。
    边界值、等价类划分、因果图,这些用例方法是一种高度提纯的方法,本身就很偏向于功能及代码,所以怎样编写业务的用例我们就从理论上失去了参考。
        复杂的业务会贯穿于整个软件,涉及众多功能点,里面组合的分支更不可胜数。测试用例务求简洁、明确,这一点也与业务“格格不入”。功能用例依赖程序界面,业务描述依赖需求文档。于是我们更偏向于根据已实现的界面编写功能用例,列举出众多的边界值、等价类。流程的操作只有凭借经验和理解,这时测试出的bug是最多的,但我们却无法使这个bug对应到一个用例中(点击一个按钮报出的错误有时原因并不在这个按钮或按钮所在的窗体)。正因为我们没有很好的积累业务上的用例,才使得我们感到执行用例时发现的bug不多。
    用例结构的划分一定程度上也造成了功能和业务的分离,依照界面模块建立文件夹,并在其中新建不同用例,这使得用例从结构上就很难联通起来。

    3、测试未能跟上变化
        变化!想象一下,当我们越来越多的听到开发人员在那里高呼“拥抱变化”“敏捷开发”的时候,测试又有什么举措呢?当地区特性,软件版本越来越多的时候,测试是否在积极响应呢?变化是我们面临的最大挑战,我认为测试未能跟上变化是造成测试过程中遇到种种问题和矛盾的主要原因。
    对需求和程序的变化测试人员的感受是非常深的,测试总是跟在需求和开发后面跑,使得所有风险都压在自己身上。不断压缩的时间和资源使我们只能放弃那些“不必要”的工作:尽快投入测试,尽快发现bug,而非从整体把握软件的质量情况,统筹策略。
    疲于应对的直接影响就是程序质量无法准确度量,进度无法控制,风险无法预估。用例与程序脱节,新增用例混乱和缺少。长此以往我们只得放弃修改、增补用例,甚至放弃之前积累的所有成果。用例变为程序变更的记录摘要,没有测试数据的保留,测试步骤和重点无法体现,新加功能与原来的程序逐渐“脱离”,可能还会出现相互违背的情况,但这我们却无法很快发现。
    永远是变化决定我们的下一步工作,这也是混乱的开始。

    三、可能的解决办法:
        在这里我希望以探讨的方式提出一些可能的解决办法,因为上面的问题也许在成熟的公司和项目组内很少遇到,而遇到问题的也需根据不同的情况单独考虑。不用拘泥形式,最适合的就是最好的。

    1、测试驱动开发,用例指导结果,数据记录变化
        “测试驱动开发”(TDD)是一个比较新的概念,在网上可以看到很多介绍文章,它主要讨论如何让开发的代码更奏效(Work)更洁净(Clean),“测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码”。可以看到,TDD是建立在“代码”级别的驱动,但目前我们需要探讨的问题是怎样在黑盒测试中做到“测试驱动开发”。
    首先我们需要纠正一个态度,很多人认为黑盒测试的技术含量不高,可思考可拓展的内容不多,主要的工作就是用鼠标在那里瞎点,于是很多“高级”的技术方法都试图与黑盒测试划清界限。但测试人员发现的bug有80%以上都是黑盒测试发现的,手工操作软件仍是目前检验软件质量最有效的一种方法。
        如何在黑盒测试中做到测试驱动开发?我认为可以从用例级别做起,以业务用例指导过程和结果。
    开发人员通常比较关注技术,对于业务上的理解容易忽视并出现偏差,而需求文档又不会很明确的指出应该实现怎样的结果,这使得从业务到功能出现一个“阅读上的障碍”,如果最后程序错误了还需返工,这样耗费的人力物力就非常大了。使用业务用例驱动开发,就是一个比较好的方法,同样这也需要运用测试中的各种方法,列举出业务流程里数据的等价类和边界值。
    业务用例的构造要先于程序实现,与需求和开发人员沟通一致,并以此作为一个基准,保证程序实现不会错,还能对整个软件的进度和质量有一个很好的估计和度量。业务用例可以不关注程序的界面,但一定要有数据的支持。这就是测试主导变化的另一点“数据记录变化”。
    我们不仅要应对变化,还要记录变化,使测试用例成为对程序持续性的监控,数据可以作为最基本、最简单的支持。当一个业务很复杂时可以拆分成段(业务段与程序中以窗体或页面的划分是不一样的),使用典型的用例方法列出实际输入和预期结果。我们希望数据能做到通用和共享,最理想的情况就是建立一个“数据库”,每个业务用例都从“数据库”中取得输入数据和预期结果,这个数据只是针对业务入口和出口的,当程序内部设计变更时,保留的数据不会因此而作废。举一个例子,例如我的程序要从某种文件中读取数据并计算结果,一段时间后程序内部字段增加了,如果是以保存的文件附件方式提供数据,则现在程序很可能就打不开这个文件了。使用“数据库”指导测试人员可以在变化的程序里直接针对业务输入,而不关心程序内部结构。
        再进一步的话“数据库”就开始涉及到程序内部的接口了,这需要开发人员的配合。

    2、为用例标明时间(版本)和优先级
        为测试用例标明时间或版本可以起到一种基准的作用,标明项目进度过程中的每一个阶段,使用例直接和需求基线、软件版本对应。同样这需要规范流程,也是对变更的一种确认和控制。或者可以为用例增加一个状态,指明这个用例目前是否与程序冲突,当程序变更时改变用例的状态,并更新用例版本。
        为测试用例标明优先级可以指出软件的测试重点、用例编写的重点,减少用例回归的时间,增加重点用例执行的次数,帮助项目组新人尽快了解需求,在自动化测试的初期也可以参考这个优先级录制脚本。

    3、功能用例与业务用例分开组织
        将功能用例与业务用例分开组织,按照不同关注点列举执行路径。业务用例应在开发前或同期编写,帮助测试人员和开发人员明确业务,了解正确流程和错误流程。功能用例更依赖于程序界面的描述,但功能用例并不等于使用说明。对某些模块的等价类、边界值测试会发现很多严重的bug,也许与业务无关,但用户往往很容易这样操作(例如登录名,你是否考虑到很长的名字,或者用户的键盘有问题,总是敲入n多空格在里面,这与业务无关,但程序将会怎样处理?)。

    4、审核用例,结对编写
        测试组长或经理对用例进行审核可以做到用例的补充和校对,但一般情况下是很难做到的,我们可以采用另一种方法,就是结对编写测试用例(前提是你有两个以上的测试人员),内部审核。
    测试用例不是一个人编写一个人执行,它需要其他测试人员都能读懂且明白目标所指。结对编写可以尽量减少个人的“偏好习惯”,同时也能拓展思维,加强测试重点的确认,小组内部达到统一。一定程度上结对编写也可以减少组长或经理对用例的管理,提高组员的参与积极性。

    四、发展
        上面的这些解决方法只是一种建议,具体怎样实施到项目中还需根据情况而定。可以看到测试的发展方向是很多很广的,传统的黑盒测试并不是毫无新意,测试工作怎样适合我们而发展,将给予我们更多的思考
  • 登陆、添加、删除、查询模块的测试点

    2007-06-08 09:40:47

    这是在51testing论坛上一位会员提供的关于登陆、添加、删除、查询模块的测试.原始链接:http://bbs.51testing.com/thread-47421-1-1.html一下是他写的内容:
        以前在这里看到一篇文章说,要积累各个常用模块的测试点,然后到需要测试的时候就根据这些测试点设计测试用例,我觉得这是一个好方法,就决定总结一下。我的实际经验不多,根据我在论坛中学到的零散的东西和自己的想象,总结出以下几点,欢迎各位继续补充。
    1.        登陆
    2.        添加
    3.        查询
    4.        删除


    1.        登陆
    ①        用户名和密码都符合要求(格式上的要求)
    ②        用户名和密码都不符合要求(格式上的要求)
    ③        用户名符合要求,密码不符合要求(格式上的要求)
    ④        密码符合要求,用户名不符合要求(格式上的要求)
    ⑤        用户名或密码为空
    ⑥       
    数据库中不存在的用户名,不存在的密码
    ⑦        数据库中存在的用户名,错误的密码
    ⑧        数据库中不存在的用户名,存在的密码
    ⑨        输入的数据前存在空格
    ⑩        输入正确的用户名密码以后按[enter]是否能登陆

    2.        添加
    ①        要添加的数据项均合理,检查数据库中是否添加了相应的数据
    ②        留出一个必填数据为空
    ③        按照边界值等价类设计测试用例的原则设计
    其他输入项的测试用例
    ④        不符合要求的地方要有错误提示
    ⑤        是否支持table键
    ⑥        按enter是否能保存
    ⑦        若提示不能保存,也要察看数据库里是否多了一条数据

    3.        删除
    ①        删除一个数据库中存在的数据,然后查看数据库中是否删除
    ②        删除一个数据库中并不存在的数据,看书否有错误提示,并且数据库中没有数据被删除
    ③        输入一个格式错误的数据,看是否有错误提示,并且数据库中没有数据被删除。
    ④        输入的正确数据前加空格,看是否能正确删除数据
    ⑤        什么也不输入
    ⑥        是否指出table键
    ⑦        是否支持enter键

    4.        查询
    精确查询:
    ①        输入的查询条件为数据库中存在的数据,看是否能正确地查出相应得数据
    ②        输入正确的查询条件以前加上空格,看是否能正确地查出相应的数据
    ③        输入格式或范围不符合要求的数据,看是否有错误提示
    ④        输入数据库中不存在的数据
    ⑤        不输入任何数据
    ⑥        是否支持table键
    ⑦        是否支持enter键
    模糊查询:
    在精确查询的基础上加上以下一点
    ①        输入一些字符,看是否能查出数据库中所有的相关信息
     
  • 界面测试经验总结

    2007-06-08 09:39:42

    1.应验证界面显示内容的完整性:

    a) 报表显示时应考虑数据显示宽度的自适应或自动换行。

    b) 所有有数据展现的界面(如统计、查询、编辑录入、打印预览、打印等),必须使测试数据的记录数超过一屏/一页,以验证满屏/页时其窗体是否有横向、纵向滚动条或换页打印,界面显示是否正常;

    2.应验证界面显示内容的一致性:

    a) 如有多个系统展现同一数据源时,应保证其一致性;

    3.应验证界面显示内容的准确性:

    a) 对于报表中的所有字段值都应该有明确的定义,对于无意义的字段值,不应该显示空,应显示“--”或“/”,表示该字段值无意义。

    4.应验证界面显示内容的友好性:

    a) 对统计的数据应按用户习惯进行分类、排序。

    b) 某些重要信息在输入、修改、删除时应有“确认”提示信息;

    c) 界面内容更新后系统应提供刷新功能。

    d) 用户在退出系统后重新登陆时应考虑是否需要自动返回到上次退出系统时的界面;

    5.应验证界面提示信息的指导性:

    a) 在多个业务功能组成的一个业务流程中,如果各个功能之间的执行顺序有一定的制约条件,应通过界面提示用户。

    b) 用户提示信息应具有一定的指导性,在应用程序正在进行关键业务的处理时,应考虑在前台界面提示用户应用程序正在进行的处理,以及相应的处理过程,在处理结束后再提示用户处理完毕。

    c) 在某些数据输入界面,如果要求输入的数据符合某项规则,应在输入界面提供相应的规则描述;当输入数据不符合规则时应提示用户是否继续。

    d) 在对任何配置信息修改后,都应该在用户退出该界面时提示用户保存(如果用户没有主动保存的情况下);

    6.应验证界面显示内容的合理性:

    a) 在对某些查询功能进行测试时,应考虑查询条件的设置的合理性以及查询结果的互补性。如某些后台处理时间不应该作为查询条件。

    b) 界面测试时,应考虑某一界面上按钮先后使用的顺序问题,以免用户对此产生迷惑。例如只能在查询成功后显示执行按钮。

    c) 界面测试时,应验证窗口与窗口之间、字段与字段之间的浏览顺序是否正确;

    7.界面测试时,应考虑用户使用的方便性:

    a) 在某些对数据进行处理的操作界面,应考虑用户可能对数据进行处理的频繁程度和工作量,考虑是否可以进行批量操作。

    8.界面测试时,应考虑界面显示及处理的正确性:

    a) 界面测试时应验证所有窗体中的对象状态是否正常,是否符合相关的业务规则需要。

    b) 应验证各种对象访问方法(Tab 健、鼠标移动和快捷键)是否可正常使用,并且在一个激活界面中快捷键无重复;

    c) 界面测试不光要考虑合理的键盘输入,还应考虑是否可以通过鼠标拷贝粘贴输入。

    d) 对于统计查询功能的查询结果应验证其是否只能通过界面上的查询或刷新按键人工触发,应避免其他形式的触发。

    e) 对界面上的任何对象进行拖拉,然后进行查询、打印,应保证查询打印结果不变;

    9.界面测试时,应考虑数据显示的规范性:

    a) 确保数据精度显示的统一:如单价0元,应显示为0.00元;

    b) 确保时间及日期显示格式的统一;

    c) 确保相同含义属性/字段名的统一;

    d) 对所有可能产生的提示信息界面内容和位置进行验证,确保所有的提示信息界面应居中。

  • 功能测试用例的书写方式(适于新手学习)

    2007-06-08 09:38:43

    功能性测试用例

    1. 测试的来源,即测试的需求

      测试用例的主要来源有:
    1) 需求说明”及相关文档
    2)相关的设计说明(概要设计,详细设计等)
    3)与开发组交流对需求理解的 记录(可以是开发人员的一个解释)
     4)已经基本成型的UI(可以有针对性地补充一些用例)
           简而言之,所有你能得到的项目文档,都尽量拿到。 从所得到的资料中,分解出若干小的“功能点”,理解“功能点”,编写相应的测试用例。

    2. 用例的组织方式

    不同的公司有不同的做法,原则上,只要方便管理和跟踪,怎么组织都可以的。
    用例可以按大的功能块组织,如查询功能模块的用例,可以组织在一起,打印模块的测试用例,可以另外组织在一起。
         在没有专门的测试用例管理工具的情况下,用例执行后会产生2种状态:“通过”、“失败”——这样加上“未 执行”的用例的状态,共3种状态。
        即从“未执行”用例中执行一个用例后,该用例状态应为“失败”或“通 过”。将同一状态的用例组织在一起。
      至于用例文件格式,可以是.DOC或.XLS(如果有专门的测试用例管理工具另当别论)。

    3. 用例与其他材料的关联方式,即如何解决用例跟踪的问题

    测试用例面临的比较大的风险有:需求的变更、设计的修改、需求的错误和遗漏等等。
    由于用例的主要来源是需求和设计的说明,所以对用例的跟踪其实就是对需求和设计的跟踪,需求和设计的 变更势必引起测试用例的变更。
      如前所说,将分解的功能点编号,与相应的用例联系起来。例如,你可以列一个表格,列出各个(编号的)功 能点和测试用例间的关联关系。
     这样,当需求和设计发生变化时,你只需要跟踪“功能点”是否变化,是否增加了新的功能点。
      4. 一个好的用例的表述要点,即用例中应当包含的信息

    一个优秀的测试用例,应该包含以下信息:
    1) 软件或项目的名称
    2) 软件或项目的版本(内部版本号)
     3) 功能模块名
     4) 测试用例的简单描述,即该用例执行的目的或方法
     5) 测试用例的参考信息(便于跟踪和参考)
     6) 本测试用例与其他测试用例间的依赖关系
     7) 本用例的前置条件,即执行本用例必须要满足的条件,如对数据库的访问权限
    8) 用例的编号(ID),如可以是 软件名称简写-功能块简写-NO.。
    9) 步骤号、操作步骤描述、测试数据描述
    10)预期结果(这是最重要的)和实际结果(如果有BUG管理工具,这条可以省略)
    11)开发人员(必须有)和测试人员(可有可无)
    12)测试执行日期

    5. 给出一个测试用例的例子该范例已经包含一个测试用例的模板。

     备注:本用例未考虑“企业代码”的输入情况;测试用例并未涵盖所有的非法输入,如非法输入中可能会有 “user=*,pw=*”的组合,对回车的默认操作,空格输入,对输入上溢的处理的处理(可能会跳过身份验证) 等等。
     如果你有兴趣,至少可以再补充5-10条左右的输入组合(当然,如果步骤超过15步,用例的易操作 性就降低,你可以再创建一个测试用例如TC-TEP_Login_2)

  • 测试用例容易遗漏的内容

    2007-06-08 09:37:51

    大家在编写测试用例的时候往往把输入数据、操作步骤、输出、结果、以及一些过程信息等都包含很全,但是往往忽略掉对执行该测试的检查点,这些检查点往往是测试用例设计和编写的人的经验或对被测对象的深入的理解基础上,很多检查内容参加我写的测试检查点的文章。

    因此我建议在描述操作步骤的时候还要把检查点列上去,如下:

    VP即时Verifacation Point: 

    VP1(重点检查点):每个列表列出的人员、机构信息是正确的,没有重复、不缺少用户

    VP2: 组合这两部分的接收者,比如:用户user1在机构1 user2属于本公司人员
        选择user1、无群组: user1能收到刚才发布的文件,user2没有
        选择user1、本公司人员:user1、user2都能接收到刚才发布的文件
        选择user3、本公司人员:user1不能接收到,user2能收到
    VP3:坚持非空域,标题、时间必须为非空等
    VP4:附件,测试各种格式,如doc、gif、xls、ppt、pdf格式的文件,文件大小分别为100k、1M、5M、10M
    VP5:添加图片,浏览gif、tif、jpg、bmp格式的图片,查看现实上传是否正确。
    VP6:检查文件状态,如暂存文件显示 “审核中“,发布文件显示”已审核“。

  • 设计功能和界面测试用例

    2007-06-08 09:36:30

    设计功能和界面测试用例

    字体:        | 上一篇 下一篇 | 打印

    1.1 文本框、按钮等控件测试

    1.1.1 文本框的测试

    如何对文本框进行测试
    a,输入正常的字母或数字。
    b,输入已存在的文件的名称;
    c,输入超长字符。例如在“名称”框中输入超过允许边界个数的字符,假设最多255个字符,尝试输入     256个字符,检查程序能否正确处理;
    d,输入默认值,空白,空格;
    e,若只允许输入字母,尝试输入数字;反之;尝试输入字母;
    f,利用复制,粘贴等操作强制输入程序不允许的输入数据;
    g,输入特殊字符集,例如,NUL及\n等;
    h,输入超过文本框长度的字符或文本,检查所输入的内容是否正常显示;
    i,输入不符合格式的数据,检查程序是否正常校验,如,程序要求输入年月日格式为yy/mm/dd,实际输入yyyy/mm/dd,程序应该给出错误提示

    在测试过程中所用到的测试方法:

    1,输入非法数据;
    2,输入默认值;
    3,输入特殊字符集;
    4,输入使缓冲区溢出的数据;
    5,输入相同的文件名;

    命令按钮控件的测试

    测试方法:

    a,点击按钮正确响应操作。如,单击确定,正确执行操作;单击取消,退出窗口;
    b,对非法的输入或操作给出足够的提示说明,如,输入月工作天数为32时,单击”确定“后系统应提示:天数不能大于31;
    c,对可能造成数据无法恢复的操作必须给出确认信息,给用户放弃选择的机会;

    单选按钮控件的测试

    测试方法:

    a,一组单选按钮不能同时选中,只能选中一个。
    b,逐一执行每个单选按钮的功能。分别选择了“男”“女”后,保存到数据库的数据应该相应的分别为“男”“女”;
    c,一组执行同一功能的单选按钮在初始状态时必须有一个被默认选中,不能同时为空;

    up-down控件文本框的测试

    测试方法:

    a,直接输入数字或用上下箭头控制,如,在“数目”中直接输入10,或者单击向上的箭头,使数目变为10;
    b,利用上下箭头控制数字的自动循环,如,当最多数字为253时,单击向上箭头,数目自动变为1;反之亦适用;
    c,直接输入超边界值,系统应该提示重新输入;
    d,输入默认值,空白。如,“插入”数目为默认值,点击“确定”;或,删除默认值,使内容为空,单击“确定”进行测试;
    e,输入字符。此时系统应提示输入有误。

    组合列表框的测试

    测试方法:

    a,条目内容正确,其详细条目内容可以根据需求说明确定;
    b,逐一执行列表框中每个条目的功能;
    c,检查能否向组合列表框输入数据;

    复选框的测试

    测试方法:

    a,多个复选框可以被同时选中;
    b,多个复选框可以被部分选中;
    c,多个复选框可以都不被选中;
    d,逐一执行每个复选框的功能;

    列表框控件的测试

    测试方法:

    a,条目内容正确;同组合列表框类似,根据需求说明书确定列表的各项内容正确,没有丢失或错误;
    b,列表框的内容较多时要使用滚动条;
    c,列表框允许多选时,要分别检查shift选中条目,按ctrl选中条目和直接用鼠标选中多项条目的情况;

    滚动条控件的测试

    要注意一下几点:

    a,滚动条的长度根据显示信息的长度或宽度及时变换,这样有利于用户了解显示信息的位置和百分比,如,word中浏览100页文档,浏览到50页时,滚动条位置应处于中间;
    b,拖动滚动条,检查屏幕刷新情况,并查看是否有乱码;
    c,单击滚动条;
    d,用滚轮控制滚动条;
    e,滚动条的上下按钮。

    各种控件在窗体中混和使用时的测试

    a,控件间的相互作用;
    b,tab键的顺序,一般是从上到下,从左到右;
    c,热键的使用,逐一测试;
    d,enter键和esc键的使用;

    在测试中,应遵循由简入繁的原则,先进行单个控件功能的测试,确保实现无误后,再进行多个控件的的功能组合的测试。

    ps:密码输入框测试时要特别注意进行字母大写输入的测试。

  • 覆盖率测试用例设计

    2007-06-08 09:29:43

    1,  语句覆盖:程序中每个语句必须执行一次

    2判定覆盖

    3条件覆盖

    第一条件判定判定:

    设条件 A>1 取真 记为 T1

                       T1

      条件 B=0 取真 记为 T2

                       T2

    第二条件判定:

    设条件 A=2 取真 记为 T3

                       T3

      条件 X>1 取真 记为 T4

                       T4

    测试用例ABX

    通过路径

    满足的条件

    覆盖分支

    1  0  3

    abe

    T1,T2,T3,T4

    b,e

    2  1  1

    abe

    T1,T2,T3,T4

    b,e

  • 前期测试用例编写规范和流程

    2007-06-08 09:23:10

    前期测试用例编写规范和流程

    字体:        | 上一篇 下一篇 | 打印

    1.编制目的

       本文件作为编写前期测试用例期间的规范和流程,旨在合理有效的对该阶段质量进行控制,同时为编写前期测试用例的人员提供参考。

     2.主要内容与适用范围

    2.1主要内容

         本标准规定了编写前期测试用例时的书写规范和操作流程。

    2.2适用范围

      本标准适用于项目提交测试后进行的路径分析和前期测试用例编写。

    3.前期测试用例编写流程

    4.路径图制作规范

    4.1 所用工具及模型

    l         制作路径图一律使用office_2003_visio_pro进行,所用模型可以在两种中选择其一:

    1. 基本流程图;

    2.UML模型图;

    4.2 制作方法及原则

    l         路径图的制作完全依照《需求规格书》中的相关业务逻辑描述来完成,一般情况下一个模块的业务逻辑用一个路径图来进行分析,如果该模块业务逻辑过于复杂,可以拆分为若干块进行分析。

    l         所画出的路径图必须包括所有业务逻辑,考虑到任何可能的分支。

    l         路径图命名必须可以完全说明该图所分析的是什么业务

    5.前期测试用例编写规范

    5.1 前期测试用例所包含的项

    l       用例编号

    l       类型

    l       设计人

    l       用例标题

    l       测试方法

    l       所属项目

    l       测试点

    l       步骤

    l       期望结果

    l       覆盖路径

    5.2 各项的编写规范

    l       用例编号:项目英文缩写+3位流水号

        例:测试POS支付核销系统,第一个用例的编号为 POS001

    l       类型 该用例岁对应的测试方法类型这里一般都写“前期测试用例

    l       设计人:编写改测试用例的人员

    l       用例标题:对该用例究竟测试什么而定义的描述语句,一般为疑问句

    例:输入正常值,是否可以成功新增销售订单

    l       测试方法 :对该用例是用什么测试方法所设计的描述,关于测试方法的种类和方法请参见《测试方法举例》

    l       所属项目:该用例所在项目

    l       测试点:一般为所测试的模块

    l       步骤:对用例如何执行的描述。具体描述时分为步骤1、步骤2……….等,对于所操作步骤的描述,应清晰准确,包括登陆系统,输入什么值等。

    例:

    步骤1

    打开POS刷卡机

    步骤2

    选择进入“IC卡支付”

    步骤3

    输入操作员号01,密码 1111,登陆

    步骤4

    按提示插入IC

    步骤5

    查看界面中显示的IC卡余额

     

    l       期望结果 :按步骤中描述操作后所应该得到结果

    例:正确显示IC余额且金额正确

    l       覆盖路径 :即该用例是按哪个路径所设计

854/5<12345>
Open Toolbar