细心地、耐心地、快乐地完善我的测试工作!

发布新日志

  • Bugzilla(转载)

    2008-02-29 15:38:46

    什么是Bugzilla

    Bugzilla是一个错误跟踪系统,用于对软件产品程序开发过程的错误跟踪。它的强大功能表现在以下几个方面:

    1.         强大的检索功能

    2.         用户可配置的通过Email公布Bug变更

    3.         历史变更记录

    4.         通过跟踪和描述处理Bug

    5.         附件管理

    6.         完备的产品分类方案和细致的安全策略

    7.         安全的审核机制

    8.         强大的后端数据库支持

    9.         Web,Xml,Email和控制界面

    10.     友好的网络用户界面

    11.     丰富多样的配置设定

    12.     版本间向下兼容

    为什么使用Bugzilla

    Bugzilla是一个拥有强大功能的错误跟踪系统。它可以使我们更好的在软件开发过程中跟踪软件错误的处理过程,为开发和测试工作以及产品质量的度量提供数据支持,从而有效的保证软件产品的质量。

     

    Bugzilla使用指南

    新建一个Bugzilla账号

    1.       点击“Open a new Bugzilla account”链接,输入你的Email地址(如:XXX@office)然后点击“Create Account”。

    2.       稍候,你会收到一封邮件。邮件中包含你的登录账号(与你的Email相同)和口令,这个口令时Bugzilla系统随机生成的,你可以根据你的需要进行变更。

    3.         在页面的黄色页角中点击“Log In”链接,而后输入你的账号和口令。最后点击“Login”

    产品和结构(Product and Component)

    Bug记录按产品分类,每种产品按功能拆分成几类。以Bugzilla产品为例,它由以下几部分构成:

    l          Administration

    l          Bugzilla-General

    l          Creating/Changing Bug

    l          Documentation

    l          Email

    l          Installation

    l          Query/Buglist

    l          Reporting/Charting

    l          User Accounts

    l          Changing Passwords

    l          User Interface

    Bug报告状态分类和Bug处理意见(Status and Resolution):

    1.       Bug报告状态分类(Status)

    l          待确认的(Unconfirmed)

    l          新提交的(New)

    l          已分配的(Assigned)

    l          问题未解决的(Reopened)

    l          待返测的(Resolved)

    l          待归档的(Verified)

    l          已归档的(Closed)

    2.       Bug处理意见(Resolution)

    l          已修改的(Fixed)

    l          不是问题(Nvalid)

    l          无法修改(Wontfix)

    l          以后版本解决(Later)

    l          保留(Remind)

    l          重复(Duplicate)

    l          无法重现(Worksforme)

    指定处理人(Assigned To)

    l          可以指定一个处理人

    l          如不指定处理人,则系统指定管理员为默认处理人

    超链接(URL)

    l          输入超链接地址,引导处理人找到与报告相关联的信息

    概述(Summary)

    l          概述部分“Summary”的描述,应保证处理人在阅读时能够清楚提交者在进行什么操作的时候发现了什么问题。

    l          如果是通用组件部分的测试,则必须将这一通用组件对应的功能名称写入概述中,以便今后查询。

    硬件平台和操作系统(Platform and OS)

    l          测试应用的硬件平台(Platform),通常选择“PC”

    l          测试应用的操作系统平台(OS)

    版本(Version)

    l          产生Bug的软件版本

    Bug报告优先级(Priority)

    l          分五个等级即P1-P5,P1的优先级别最高之后逐级递减

    Bug状态(Severity)

    l          Blocker,阻碍开发和/或测试工作

    l          Critical,死机,丢失数据,内存溢出

    l          Major,较大的功能缺陷

    l          Normal,普通的功能缺陷

    l          Minor,较轻的功能缺陷

    l          Trivial,产品外观上的问题或一些不影响使用的小毛病,如菜单或对话框中的文字拼写或字体问题等等

    l          Enhancement,建议或意见

    报告人(Reporter)

    l          Bug报告提交者的账号

    邮件抄送列表(CC List)

    l          Bug报告抄送对象,该项可以不填

    l          如需要抄送多人,可将邮件地址用“,”分隔

    从属关系(Bug “ID” depends on,Bug “ID” blocks)

    l          “Bug “ID” depends on”如果该Bug必须在其他Bug修改以后才能够修改,则在此项目后填写那个Bug的编号

    l          “Bug “ID” blocks”如果该Bug的存在影响了其他Bug的修改,则在此项目后填写被影响的Bug编号

    附加描述(Additional Comments)

    l          在Bug跟踪过程中测试与开发人员通过这里进行沟通

    l          开发人员可以在这里填写处理意见和处理记录

    l          测试人员可以在这里填写返测意见和对在返测过程中发现的新问题进行描述

    Bug查找

    l          可以通过页脚中的“Query”链接进入查找界面

    l          根据查找的需要在界面中选择对象或输入关键字

    l          查找功能能够进行字符或字串的匹配查找

    l          查找功能具有布尔逻辑检索功能

    l          你可以通过在查找页面中选择“Remember this as my default query”将当前检索页面中设定的项目保存。以后可以从页脚中的My bugs中直接调用这个项目进行检索

    l          你还可以通过在“Remember this query, and name it:”后面输入字符,将你当前检索页面中设定的项目保存命名,同时选中“and put it in my page footer”。则以后这个被命名的检索将出现在页脚中。(有关如何在页脚中设定显示的项目请参见1.5.3)

    Bug列表

    l          如果你运行了Bug检索功能,系统会根据你的需要列出相关的项目

    l          你可以通过列表页脚附近的“Change Columns”设定在列表中显示的Bug记录中的字段名称

    l          如果你拥有必要的权限,你还可以通过“Change several bugs”修改列表中罗列出的Bug的记录。例如:修改Bug的所有者

    l          通过“Send mail to bug owners”你可以给列表中罗列的Bug记录的所有者发信

    l          如果你对查找的结果不满意,希望重新调整检索设定。你可以通过“Edit this query”实现

    l          通常情况下,检索结果中只显示最基本的信息。你可以通过“Long Format”显示更详细的内容

    用户属性设置(Edit prefs)

    1           账号设置(Account Settings)

    l          在这里你可以改变你账号的基本信息,如口令,Email地址,真实姓名

    l          为了安全起见,在此页进行任何更改之前你都必须输入你当前的口令

    l          当你变更了你的Email地址,系统会给你的新老Email地址分别发一封确认邮件,你必须到邮件中指定的地址对你的更改进行确认

    2           Email设置(Email Settings)

    l          你可以在此通过选择告诉系统,你希望在什么条件下收到和你相关的邮件

    3           页脚(Page Footer)

    l          设定“Preset Queries”是否在页脚中显示

    4           用户权限(Permissions)

    你可以在此查看自己账号现在的权限
  • 转载:循序渐进学习QTP三步曲

    2008-02-29 11:42:32

    循序渐进学习QTP--初级篇
          我们使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。
          强烈建议你按照版主oldsidney 写的 Tutorial_oldsidney_cn.pdf 文件来认认真真、从头到尾地执行一遍,包括录制脚本、分析脚本、增加check point、Split Action等。我想这会减少你在学习QTP过程中的不少困惑和疑虑。
          这篇文档对如何使用QTP写的非常详细,是QTP初学者的经典教材。我就是看了这篇文档后才对QTP的整个测试流程有了一个初步的认识。在此,我对oldsidney表示感谢。
         注意:
          1,确保你的IE运行正常,依次点击菜单 查看 --> 工具栏,一定要上网助手等插件卸载掉,特别3721这个垃圾网站和其它拦截广告的插件(它也把测试过程中弹出的窗口当成广告,一样会拦截的!)!
        2,如果是按照Tutorial_oldsidney_cn.pdf 文件 中的订购飞机票的例子来练习 QTP的使用,那么只需选择Web 插件就可以了。如果是测试其它的应用程序或系统,就要根据需要来选择相应的插件了。

    循序渐进学习QTP---中级篇

    在这个阶段你就要自己针对某个系统去录制脚本、维护脚本了。在录制后的回放过程中,你可能会遇到各种问题,这个时候就需要发挥你的主观能动性来解决遇到的问题。我想你可以按照下面的方法去解决:

           1,查看QTP的有关文档,包括Help 、QTP User’s Guide等文档。这些都是比较系统全面的学习材料。你该好好利用呀。
           2,在本论坛上查看以前别人是如何解决此类问题的(如果有的话)或者是发新贴寻求帮助,也可以搜索Google 等网站寻找问题的解决方法;
          3,与自己部门的同事交流,例如与测试人员交流他们是如何解决的,与开发人员交流某个QTP无法识别的控件具体是用什么属性来识别的等。毕竟他们对测试的环境和测试的软件比论坛上的人熟悉呀。
          4,自己通过学习VBscrīpt 等方式来提高自己的管理QTP scrīpt的能力。

    或许你会发现许多问题都是由提出问题的人来解决的,因为他们希望问题得到解决的迫切心比谁都强烈。

    循序渐进学习QTP---高阶篇

    如果你对VB scrīpt 、QTP和需要测试的程序或系统非常熟悉,你可能就想直接写QTP scrīpt来表现一下了。如果你能达到这个水平,那么恭喜你---你就是真正的高手了。这个时候你已经可以从宏观上把握QTP了,也能灵活自如地使用QTP了。偶离这个阶段还好远呢。
     



     
  • 测试工具大全

    2007-08-06 16:57:17

    企业级自动化测试工具WinRunner

     

    提名理由: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

  • TD安装成功,可以使用了~

    2007-08-04 17:43:01

       昨天把TD总算安装成功了,可是连接数据库又出了点问题。

       没办法了,今天上午我又把它卸载了。重新安装了一遍。不过就比之前安装时改动了一些东西。

       因为我没有邮件服务器,就没有设置了  就跳过了那个选项。之后的选择数据库服务器,我就指定我本机的数据库的服务器名,不在另外去指定它的别名了。呵呵……然后停掉一切无关的程序,继续下一步的操作。

       呵呵……没想到后来,运行TD都没有数据库连接错误了!真是开心阿……以后就好好的学习TD把它给掌握了~~

  • 为什么我安装TD7.6版本的时候,电脑那么卡?

    2007-07-20 15:56:23

       我在XP的系统下面安装TD7.6,电脑几乎陷入卡机状态,但是察看CPU使用也就那么一点阿?很奇怪,并且安装TD7.6的时候等了半天它还是3%

      不知道你们安装TD7.6的时候是否也出现和我一样的情况?

  • ERP测试群号码:15484764

    2007-07-10 10:44:11

        终于开通erp测试交流群了.开心………………                           

        希望erp测试的同行高手、新手们都加进来,为我们的erp测试更辉煌的未来Fighting……………………

  • 商业环境中的信息系统类型简介

    2007-05-22 15:23:45

      商业环境中的信息系统类型包括:

    1.事务处理系统(TPS)

    2.管理信息系统(MIS)

    3.决策支持系统(DSS)

    执行信息系统(EIS)

    商业智能系统(BIS)

    4.其他系统

    专家系统(ES)

    办公自动化系统(OAS)

    事务处理系统(TPS)

    正如标题所示,事务处理系统的主要作用是各种规模的事务。事务处理系统通过自动化商业流程来提升公司运作的效率。商业机构中使用的事务处理系统类型有:

    销售和市场系统

    制造业系统

    人力资源系统

    金融和统计系统

    事务处理系统也可基于互联网技术。这些互联网技术允许同一个公司内的不同区域的办公室能轻松处理各类事务,这适用于各类商业模型,如B2B和B2C。事务处理系统是管理信息系统的基础。

    管理信息系统(MIS)

    管理信息系统提供了不同时间段中执行用例商业功能所需的信息。这些信息包括了历史信息和当前信息,可以按周报告、月报告和季度报告的形式存在。例如某季度中每个星期销售额与去年同一时间段的销售额对比。可以使用历史数据来分析历史趋势,使用当前诗句来分析当前销售趋势并预测未来的销售趋势。

    此外,管理信息系统还为制造业的管理层提供了关于订单前置期(lead-time)的报告。接着制造工厂就会完成这个订单。

    管理信息系统还可提供关于人力资源方面的信息,如平均人员缩减率、员工人数最多的部门和平均工资幅度,人力资源部门可以使用这些信息来制定策略、找出需要关注的区域并分别解决这些问题。

    决策支持系统(DSS)

    管理信息系统提供关于事务、事务总结和计划外时间的报告,而决策支持系统则通过提供决策需要的数据和模型来为管理者提供支持。决策支持系统使用复杂的建模工具和分析工具来表示数据,以便管理者能给予可靠的数据作出决策

    一个决策支持系统结合了数据u、工具和软件来执行这些功能。与管理信息系统不同的是,决策支持系统中的数据并不时都来自事务处理系统,还来自生产、统计和存货数据库。据测支持系统可能自带有工具,如电子表格软件和模拟软件来帮助用户分析数据和对数据建模。通过使用这些工具,用户可以执行‘what-if’和'regression(回归)'分析

    决策支持系统还提供了一个用户界面,来允许用户选择数据库中的相关数据,以及用来建模和模拟的工具。

    决策支持系统有以下两种类型:

    EIS

    EIS致力于输出那些资深管理人员所需要的影响企业发展的关键因素相关的信息。虽然决策管理人员要作出具体决定。但资深管理人员需要作出战略性的决策。EIS主要为战略性决策服务,因此可以按照管理人员的风格来进行定制

    BIS

    商业智能系统被设计来从不同商业系统一段时间收集到的海量数据中提取需要的信息。商业机构使用BIS来获取会影响决策指定流程的潜在因素。

    其他系统

    ES

    ES是最高级别的基于知识的系统。他被用来设计来帮助管理人员解决问题或指定更好的决策。ES在我们称为人工智能的区域内运行。

    办公自动化系统(OAS)

    通过使用OAS,许多办公活动都可以通过电子方式进行

    在商业中实施信息系统

    随着全球化的新经济模式的诞生,企业们纷纷开发和采用新的工作模式。为了提高效率和更有竞争力,很多公司开始规划上午流程。为了支持这样的流程重设计和管理,有两类信息系统是广泛使用的。分别是;

    工作流管理系统(WFMS)

    企业资源计划系统(ERP)

    这两类系统可以独立运行,也可以结合起来解决企业及应用程序的整合问题。这些致力于实现商业流程自动化、数据传输和企业内的信息共享。实施这些系统可以帮助管理者和企业制定更为精确的决策并管理好他们的商务

    工作流管理系统(WFMS)

    工作流管理系统是基于工作流(workflow)这个概念的,一个工作流一般包括了一些任务、任务之间的依赖性、运行规则和参与者。一个任务可能需要人员的参与或由IT应用程序来自动执行。工作流管理系统通过协调信息的共享与传输来自动操作、处理和管理工作流。在处理任务时,会在不同用户间传输信息和文档。自动操作工作项目能提高流程效率。例如,请假管理系统和凭证处理系统(Voucher Processing System)被用来有效的管理员工记录。

    企业使用工作流管理系统来获得竞争力优势,改善客户服务,提升生产力并保持与标准的一致性。工作流管理系统就是一组允许定义、创建和管理与商业流程中工作流相关活动的应用程序和工具。工作流实例运行在工作流引擎上,工作流引擎能阐释工作流定义,与工作流参与者互动,如果需要的话,调用外部工具和应用程序。

    假设有一家企业,这里的工作产品,如文档,会从一个人传送到另一个。参与的人员知道商业规则并理解处理程序和如何协调各管理商业流程。在这个案例中,可以使用工作流管理系统来实现流程自动化。而与流程相关的任务计划和执行也会得到解决。

    ERP

    ERP系统被用来自动化商业功能和提供基于整个企业架构的整合数据解决防范。ERP系统是可配置的信息系统,它可以整合功能区域内或供能区域之间的信息和基于信息的流程

    假设有一个企业为每个部门开发了一个独立的应用程序,如会计、购买、存货和规划部门。最终,这些系统会生成独立但不准确的报告,因为这些系统没有共享数据。在这种情况下,企业需要一个能整合这些不同部门系统的信息系统。

     

     

     

  • 不忽视手工测试

    2007-05-18 10:15:15

    1不现实的高期望。期望通过所使用的工具解决遇到的所有问题。
    2)期望自动化测试工具完全能取代手工测试。不可能期望自动测试工具完全取代所有的手工测试。例如:测试结果需要人来判断;色彩模式的适合程度、页面结构的直观效果等
    3)期望自动化测试发现新的缺陷。测试专家的经验指出:在新缺陷的发现当中,85%是靠手工测试发现的,只有15%是靠自动化测试找出来的
  • 测试用例之性能测试用例

    2007-05-11 10:33:49

     

    注:本文摘自作者正在编写的《Web性能测试实战》一书,曾经在程序员杂志2004年第10期上发表过。

    性能测试、压力测试、负载测试、强度测试、稳定性测试、健壮性测试、功能测试、接口测试……,这么多眼花缭乱的测试类型名称,估计很少有人能准确的区分并说出定义来,至于对应的测试用例如何编写和执行,就更不用说了。

    如果问测试工程师测试用例如何编写,就象是问程序员如何编写代码得到的答案一样,每个人都会给出不同的编写方法,但实用的测试用例却象优秀的程序一样难以编写。

    目前国内,测试工程师却时常要面对“已经延期几倍计划时间的项目”,测试用例如何发挥更大的作用,是一个迫切需要解决的问题。事实上,完全可以把测试用例看成是测试工程师编写的程序:这个“程序”是为了辅助测试工作的进行而开发的,目的是为了发现软件问题,同时“顺便”证明软件功能是否符合要求。

    本文针对上面的问题,以设计性能测试用例为示范,讲解在企业实际工作中,如何有效划分测试种类和编写对应的测试用例,使测试工作更加合理、高效率的开展。

    1测试种类和阶段

    1.1 测试种类

    对于测试种类的说法多种多样,最多的能达到30多种测试类型。而实际工作中很多测试是互相包含的。按照企业中实际工作需要,通常主要进行下面几种类型的测试:功能测试、健壮性测试、接口测试、强度测试、压力测试、性能测试、用户界面测试、可靠性测试、安装/反安装测试、文档测试。

    下面介绍几种重要的测试种类及其测试的内容:

    功能测试:功能测试主要针对产品需求说明书的测试,是验证功能是否否合需求,包括原定功能的检验、是否有冗余功能、遗漏功能。这类测试应由测试员做,这并不意味着程序员在发布前不必检查他们的代码能否工作,他们也需要进行基本功能的测试。

    接口测试:程序员对各个模块进行系统联调的测试,包含程序内接口和程序外接口测试。这个测试,在单元测试阶段进行了一部分工作,而大部分都是在集成测试阶段完成的。由开发人员进行。

    性能测试:在交替进行负荷和强迫测试时常用的术语。性能测试关注的是系统的整体。它和通常所说的强度、压力/负载测试测试有密切关系。所以压力和强度测试应该与性能测试一同进行。

    用户界面测试:对系统的界面进行测试,测试用户界面是否友好、是否方便易用、设计是否合理、位置是否正确等一系列界面问题

    安装/反安装测试:安装测试主要检验软件是否可以正确安装,安装文件的各项设置是否有效,安装后能否影响原系统;反安装是逆过程,测试是否删除干净,是否给影响原系统等。

    文档测试:主要测试开发过程中针对用户的文档,以需求、用户手册、安装手册等为主,检验文档是否和实际应用存在差别。文档测试不需要编写测试用例。

    测试种类的划分不要拘泥于上面的形式,总体来说应该服从于测试策略,可以根据具体工作的特点进行安排,为了工作更容易开展,完全可以把一些测试合在一起进行。在后面的性能测试用例的编写上,充分体现了这一思想。

    1.2 测试阶段

    和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段。对应关系如图1所示:

    需求开发

     

    高层设计

    详细设计

    编程

    单元测试

    集成测试

    系统测试

    验收测试

     


    图1 开发与测试的“V”型关系

    单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。

    集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。。

    系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。

    验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。

    尽管测试阶段的划分十分明确,但是在具体的项目和产品的测试中,尤其在执行测试时,会根据实际需要来开展。

    1.3 测试种类、阶段和用例的关系

    为了便于在实际工作中提高效率,同时方便测试用例的编写和执行,可以把上面提到的各个测试类型与对应的测试用例合并。合并后的测试用例主要有以下几种:

    1.  功能测试用例:包含功能测试、健壮性测试、可靠性测试

    2.  性能测试用例:包含性能测试、压力测试、强度测试

    3.  集成测试用例:包含接口测试、健壮性测试、可靠性测试

    4.  安全测试用例:安全测试用例

    5.  用户界面测试用例:包含用户界面测试用例、少量功能测试用例

    6.  安装/反安装测试用例:安装/反安装测试用例

    综合上面的分析,测试种类、测试阶段以及执行人员具体的关系如表1所示。

    测试阶段

           测试类型

    执行者

    单元测试

    模块功能测试,包含部分接口测试、路径测试

    开发工程师

    集成测试

    接口测试、路径测试,含部分功能测试

    开发工程师(如果测试人员水平较高,可以由测试人员执行)

    系统测试

    功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试

    测试工程师

    验收测试

    对于实际项目来说基本同上,并包含文档测试;对于软件产品,主要测试相关的技术文档。

    测试工程师(根据实际需要,可能包含用户)

    表1 测试的种类、阶段和执行人员的关系

    总之,测试的种类应该尽量的少,这样每次都可以执行更多的测试内容。例如在进行功能测试的同时,完全可以进行健壮性的测试。(当然如果产品健壮性方面要求较高,就可以把健壮性测试作为独立的测试。)

    2性能用例编写方案

    性能测试在软件测试中占有重要的地位,而性能测试又关联很多内容。例如压力和强度测试就与性能测试密切相关:针对一个网站进行测试,模拟10到50个用户就是在进行常规性能测试,用户增加到1000乃至上万就变成了压力/负载测试,如果同时对系统进行大量的数据查询操作,就包含了强度测试。

    为了便于性能测试工作的实施,这里的性能测试综合了性能、强度、压力、负载等多方面的测试内容,主要包含的内容有:预期性能指标测试、用户并发性能测试、疲劳强度测试、大数据量测试和速度测试、网络、服务器等方面的内容。

    性能测试不同的系统有不同的要求,编写方法要根据实际要求进行编写,本文提出一个常见的参考方案,在实际工作中,可以根据需要加入其它例如内存泄露等和性能相关的测试用例。

    下面介绍各个部分性能测试用例包含的内容:

    2.1预期性能指标测试用例

    通常系统在设计前都会提出一些性能指标,这些指标是性能测试要完成的首要工作之一。针对每个指标都要编写多个测试用例来验证是否达到要求,并根据测试结果来改进系统的性能。

    这类通常以单用户为主,如果遇到并发用户的情况,可以归到并发用户测试用例中。这类用例通常都是可以通过手工来执行的用例,例如示例中的上传一份文件,期望的性能为2M/S,完全可以手动上传文件,同时用秒表计时。这些内容通常在需求说明书中可以显而易见的查到。不过当看到如支持并发用户300人,就应该放到后面进行。测试结果也是直接记录是否达到要求,如果系统没有达到要求则进行改善。

    2.2用户并发性能测试用例

    用户并发测试是性能测试的最主要部分,包含了负载测试和压力测试的过程。主要是逐渐增加用户数量来加重系统负担,直到出现不能接收的性能点或者瓶颈。一般要测试正常数量的用户并发和极限数量下用户并发的情况。

    并发用户测试主要是对系统的核心功能和重要业务进行测试,要以真实的业务数据作为输入,选择有代表性和关键的业务操作来设计测试用例。主要编写以下两个方面的用例:

    核心模块的测试(可以理解为“单元性能测试”):对核心功能模块进行并发用户测试,测试系统是否能够稳定运行。例如对于互联网的公用邮件系统,每天早上9点左右可能是收发邮件的高峰,这时候上千的用户都要在上班后进入邮件系统,系统这个时候需要接收和发送大量的邮件。所以邮件系统这一功能模块要进行并发测试。通过测试可以知道数据库服务器、操作系统、网络设备等是否能够承受住考验,同时可以对瓶颈进行分析。

    表2列出来一些常见的参数(表格中的数据为示例的测试用例和测试结果),可以根据实际需要进行增加和删除,其中磁盘I/O、数据库相关测试参数要根据实际情况进行选择,因此没有列出。

    功能

    在线用户达到高峰时,发送和接收普通邮件正常,保证200个以内用户可以同时访问邮件系统,能够正常发送和接收邮件。

    目的

    测试系统200个以内的用户同时在线能否正常发送邮件。

    方法

    采用LoadRunner的录制工具录制一个邮件发送过程,然后利用其完成测试,要监视数据库服务器和web服务器的性能。其中发送的邮件为普通的邮件,附件大小不超过1M.

    并发用户数与事务执行情况

    并发用户数

    事务平均响应时间

    事务最大响应时间

    平均每秒处理事务数

    事务成功率

    每秒点击率

    平均流量(字节/秒)

    100

    1.344

    2.078

    5

    100%

    102

    5177

    并发用户数与数据库主机

    并发用户数

    CPU利用率

    MEM利用率

    磁盘I/O参数

    DB参数1

    其它参数

    100

    23%

    11%

     

     

    并发用户数与应用服务器的关系表

    并发用户数

    CPU利用率

    MEM利用率

    磁盘I/O参数

    100

    32%

    27%

    表2 核心模块的性能测试用例

    在编写这类用例时,要进行综合分析,选出系统中的各个核心模块,分别设计每个模块的测试用例:把模块划分成小的“事务”进行测试,这样在测试分析中便于定位问题究竟出现在哪里。例如邮件系统可以划分成:接收邮件、发送邮件、打开邮件等小的事务进行测试用例的编写,每个操作做为一个用例来执行。

    业务组合性能测试(可以理解为“集成性能测试”):所有的用户不会只使用核心模块,通常每个功能都可能被使用到,所有既要模拟多用户的“相同”操作,又要模拟多用户的不同操作,对多个业务进行组合性能测试。

    业务组合测试是更接近用户实际操作系统的测试,因此用例编写要充分考虑实际情况,选择最接近实际的场景进行设计。这里的业务组成单位以不同模块中的“子操作事务”为单位,进行各个模块的不同业务的组合。例如在办公自动化系统中就可以选择“公文模块中的发送公文、电子公告模块中的查看公告信息、网上论坛模块中的上传文件”等事务作为一组组合业务进行测试,用例设计信息如下:

    功能:在线用户达到高峰时,用户可以正常使用系统,保证500个以内用户可以同时在线使用系统。

    目的:测试系统500个以内的用户同时在线能否使用比较常见的模块:公文系统、电子公告、网上论坛。

    方法:采用LoadRunner的录制工具录制三个业务:

    业务1––在公文系统内,进行打开、修改等操作;

    业务2––在电子公告系统内,查看、发布公告;

    业务3––在网上论坛系统内发布帖子,查看文章。每个业务分配一定数目的用户,利用LoadRunner来完成相关参数的测试。

    其它部分设计可以参考表2。执行时要分别记录各个事务的执行情况。

    多用户并发性能测试是性能测试的核心内容,包含了全部与多用户相关的测试。因此设计时要全面考虑,不要有遗漏。在测试执行时,本部分通常是采用性能测试工具例如LoadRunner来进行测试的,因此更容易执行和提高效率。

    2.3疲劳强度与大数据量测试

    疲劳强度测试是在系统稳定运行下模拟最大用户数量、并长时间运行系统,通过综合分析执行指标和资源监控来确定系统处理最大业务量时的性能。

    疲劳强度测试的目的就是检验系统长时间运行后的性能,因此设计用例时,需要编写不同参数或者负载条件下的多个测试用例,对服务器、软件、网络进行不同条件下的综合测试分析,测试时要记录系统发生故障的信息作为测试结果。疲劳强度测试也是采用测试工具进行的。

    大数据量测试分为两种:一个是针对某些系统存储、传输、统计查询等业务进行大数据量的测试;另一个是与前面并发测试相结合的综合数据测试。编写用例时主要编写前一部分,后一部分尽量放在并发测试中。

    大数据量测试一般是针对那些对数据库有特殊要求的系统进行测试,例如电信业务系统的手机短信息表,由于有的用户关机或者不在服务区,每秒钟需要有大量的短信息保存,同时在用户联机后还要及时发送,因此对数据库性能有极高的要求,需要专门测试。

    本部分用例设计表格可以参考用户并发性能测试部分。

    2.4网络性能测试

        网络性能测试主要是为了准确展示带宽、延迟、负载和端口的变化是如何影响用户的响应时间的。在实际的软件项目中,主要是测试用户数目与网络带宽的关系。

    编写用例的格式如表3(表格中的数据为示例数据):

    目的

    测试系统运行网络在不同并发用户条件下的使用情况

    方法

    在不同的广域网带宽下(例如256K)使用LoadRunner录制邮件系统的相关事务操作脚本,以不同的并发用户数进行测试,记录各种用户连接数下,不同并发请求的性能变化;同时记录路由器端口的流量和其他数据。

    运行时间

    10小时

    用户并发数

    事务平均响应时间

    服务器端口流量

    丢报率

    100

    2.816

    50.2M/S

    0.001%

    500

    3.876

    98.2M/S

    0.002%

    表3 网络性能测试

    本部分可以独立测试,也可以和用户并发性能测试、疲劳强度与大数据量性能测试结合起来,在原有的基础上采用工具来调整网络设置,从而达到监视网络性能的目的。通常网络性能都是采用工具进行性能评估,由系统集成工程师来进行。

    2.5服务器性能测试

    本部分的测试用例不必独立编写,或者根据实际需要编写少量的测试用例,建议这部分的用例编写和前两部分结合起来,在用户并发性能测试、疲劳强度与大数据量性能测试时完成对服务器性能的监控,完成对服务器性能的评估。

    2.6性能分析基本策略

    在上面的用例执行完成后,接下来要进行性能分析。性能分析是性能测试的最终目的,否则测试出的指标就不会有实际意义,这里主要介绍一下性能分析的基本思路。性能分析通常要围绕三个方面进行:软件、服务器、网络。

    软件主要是分析具体事务执行时间,尤其并发用户部分,根据测试工具测试出的结果分析那些事务执行的慢,然后可以分析执行较慢的代码,针对网页可以分析具体的页面元素执行情况。

    服务器的分析要结合软件的运行情况进行分析,着重分析硬件的执行参数,CPU、硬盘、内存、中断、内存等情况,分析尤其要注意对这些参数进行综合分析,往往各个参数之间会互相影响,最后在调查、分析整体系统的基础上,找出影响服务器整体性能的瓶颈,确定相应的升级需求:

    1. 服务器硬盘负载较重,需增加硬盘。

    2. CPU整体性能偏低,需增加或更新CPU。

    3. 网卡性能偏低,需更换光纤网卡。

    4. 硬盘I/O负载任务繁重,需使用高转速硬盘或采用RAID卡。

    5. 内存资源短缺,需增大内存。

    6. 其他方面,需要升级软件系统、合理进行子网划分、加强管理等。

    网络性能分析要结合结合服务器和测试目标软件,通常网络传输慢会有软件和服务器方面的原因,甚至有时候会有客户端方面的原因。不过目前网络的环境普遍可以,不管是局域网还是广域网,网络的环境越来越好。

    3用例管理

    测试用例的管理我们可以借鉴开发过程中对程序的管理方法,我们可以把测试用例看成程序––测试工程师编写的程序,这个程序也要经过“设计”、“开发”、“测试”、“版本管理”、“发布”、“维护”等一系列操作,然后按照管理软件程序的方法来管理测试用例。

    用例管理主要包含评审、修改、执行用例、用例版本维护、用例升级方面的内容。

    3.1  用例评审

    测试用例评审是测试用例不可缺少的一个环节,这是对“测试部门开发出的产品”进行的“测试”。基本思路是对测试准备阶段的成果进行分期评审,依次评审系统/验收测试用例、集成测试用例、单元测试用例。

    评审用例在比较正规的公司更容易实施,要求相应的软件开发团队必须在实际工作中对测试给予足够的重视,才可以把这项工作做好,否则只是走走形式。有效的用例评审通常由下面两种形式组成:

    测试部门外部评审––主要是由开发部、项目实施部、甚至销售人员参加的评审,目的主要是查找测试工程师编写的用例是否缺少内容。建议采用非正式评审的形式进行,因为我们很难把开发人员组织在一起,一般来说他们的开发进度压力很大,能够抽出时间看文档已经是“很给面子了”。当然不统一进行评审会耽误工程的进度,所以在实际工作中如果时间紧迫,可以提前启动测试实施工作,待评审完成后进行用例的修改工作。通常测试工作进行一段时间评审就会结束,这个时候测试执行人员可以在工作中对测试用例的内容进行动态的调整,再次执行被修改过的部分用例(如果能够采用正式评审,效果肯定会更好。)。

    外部评审主要工作方式是用文档直接记录评审结果,测试人员根据评审结果对用例进行升级修改。

    测试部门内部评审––部门内部同行对测试策略的评审,评审的核心内容是测试策略和用例编制思路是否正确,以此来保证测试用例的有效性。可以组织正式的评审,由用例的设计人员进行讲解,然后大家共同评审;也可以把文档发给部门的同事进行评审。内部评审有些象开发人员在单元测试中的交叉测试。

    内部评审的主要工作方式是项目会议,大家可以进行激烈的讨论,共同探讨用例编写、交流经验,这样用例的编写水平才能提高,同时可以进行一些创新。

    评审方式中的外部评审最为重要。因为开发人员很容易发现用例中遗漏了什么内容,同时还可以发现错误的用例––因为存在对需求理解的偏差。用例外部评审可以理解为开发人员在查找测试人员编写的“程序”缺陷。

    通常情况下先执行内部评审,然后执行外部评审。很多时候,内部评审会被忽略,建议要进行内部评审。这样至少有两个好处:集思广益和提高测试小组输出文档的质量。

    3.2  管理方案

    国内大多数IT公司在测试用例的发展经历了以下几个阶段:

    Ø         无用例而执行测试:测试的初级阶段,完全手工测试,测试执行工程中没有测试用例作为执行依据,可能会按照需求进行测试;

    Ø         有用例而不使用用例执行测试:已经编写测试用例,但是受各种环境的影响,例如需求变动频繁、编写的用例过于简单等,测试用例编写后在实际工作中不能使用;

    Ø         按照部分用例执行测试:随着用例编写水平的提高,部分测试用例可以在测试中发挥作用;

    Ø         完全按照用例执行测试:组织建立了规范的项目管理过程,对测试用例进行规范的管理,执行测试用例以用例为准则来执行测试。

    完全按照测试用例执行测试是一个公司测试水平的体现,测试用例管理成为这一阶段的主要内容。测试用例管理的核心内容是版本管理。如果测试用例是采用文字编辑软件例如word编写,建议采用工具(例如Visual SourceSafe)对用例进行控制。可以参照图2进行。

    编写用例

    用例评审

    进入版本控制库

    用例修改

    使用用例&维护&升级

     

     

     

     

     

     

     

     

     

     

     

     

     


    图2 测试用例管理示意图

    1、  编写用例:测试工程师根据需求分析、概要设计、详细设计等文档编写测试用例。

    2、  用例评审:3.1小结说明了用例的评审。原则上用例像程序一样,要经过多次的修改才可以通过,而实际工作中只进行一到两次。

    3、  用例修改:评审结束后,需要根据评审意见进行修改,修改后通常不再进行评审。建议在时间和人力资源比较充裕的情况下,对用例的评审要像测试开发部门的产品一样,经过反复的评审和修改,然后正式投入使用,因为每次评审可能都有新的发现。

    4、  使用用例:在执行任务时,从版本控制库取出用例,执行时建议直接在用例上记录测试结果。这样做会带来两个好处:首先是下次测试时可以看见上次测试的结果记录,可以起一个提醒的作用;其次可以一次性的把发现的缺陷输入到缺陷跟踪数据库中,在输入时可以进行综合统计,避免输入重复的缺陷。每次使用后送入版本控制库中,进行版本的管理。

    5、  用例升级/维护:随着软件产品的不断修改、升级,对应的用例也需要升级和维护。针对同一个项目,可以根据需求的变更不断进行维护;如果是产品,用例的维护则更加重要,要达到用例和产品的版本一一对应。

    测试用例的管理还可以采用专门的测试软件例如TestDirector等来进行管理,测试工具通常会具备上面的功能。如果有条件,建议采用集成华的测试工具,这样更容易对测试执行全程进行监控,可以把测试需求、测试用例、缺陷管理统一起来,大大提高测试效率。

    在测试用例管理规范化并成为测试的执行准则后,管理测试用例带来的巨大好处开始逐渐显现出来,测试用例成为评估测试和改进测试工作的主要依据,可以给工具带来巨大的方便。例如可以通过测试用例的执行情况来统计分析执行结果,编写测试报告,判断软件测试是否完成,通过统计测试覆盖率、测试合格率、重要测试对象的合格率是多少来完成对软件质量的评估;尤其是新员工到岗后,可以更容易介入工作。

    总之,不管是性能测试还是其它测试都要本着“一切从实际出发”的原则,根据不同产品的特性进行用例编写,最后按照要求完成测试,达到提高产品质量的目的。在测试用例的编写过程中,尤其要记得“创新”,如果长期依靠某一测试用例编写模式、采用某些固定的模板,测试用例编写工作肯定会停滞在某一层次上不再发展,一定要跟着测试对象的不断变化来调整策略,在具体的工作中改进和提高,才能“开发”出优秀的测试用例!

  • 黑盒测试的测试用例设计方法

    2007-05-11 10:21:34

    一、黑盒测试的测试用例设计方法 
       1. 等价类划分方法 
       2. 边界值分析方法 
       3. 错误推测方法 
       4. 因果图方法 
       5. 判定表驱动分析方法 
       6. 正交实验设计方法 
       7. 功能图分析方法


    二、等价类划分
    等价类划分方法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的、常用的黑盒测试用例设计方法。

     

    1. 等价类的概念

    等价类:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定,测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。

    有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

    无效等价类:与有效等价类的定义恰巧相反。

    设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。

    2. 划分等价类的方法

    下面给出六条确定等价类的原则:
    1) 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
    2) 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。
    3) 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
    4) 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
    5) 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
    6) 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。

    3. 设计测试用例

    在确立了等价类后,可建立等价类表,列出所有划分出的等价类:
    输入条件有效等价类无效等价类
    。。。。。。。。。
    。。。。。。。。。
    然后从划分出的等价类中按以下三个原则设计测试用例:
    1) 为每一个等价类规定一个唯一的编号。
    2) 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步。直到所有的有效等价类都被覆盖为止。
    3) 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步。直到所有的无效等价类都被覆盖为止。


    三、边界值分析法
    边界值分析方法是对等价类划分方法的补充。

    边界值分析方法的考虑:
    长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
    使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。


    基于边界值分析方法选择测试用例的原则:
    1) 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
    2) 如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
    3) 根据规格说明的每个输出条件,使用前面的原则1)。
    4) 根据规格说明的每个输出条件,应用前面的原则2)。
    5) 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
    6) 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
    7) 分析规格说明,找出其它可能的边界条件。


    四、错误推测法
    错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。

    错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如,在单元测试时曾列出的许多在模块中常见的错误。以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行。这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。


    五、因果图方法
    前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型)。


    因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。

    利用因果图生成测试用例的基本步骤:
    1) 分析软件规格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件),并给每个原因和结果赋予一个标识符。
    2) 分析软件规格说明描述中的语义。找出原因与结果之间,原因与原因之间对应的关系。根据这些关系,画出因果图。
    3) 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。
    4) 把因果图转换为判定表。
    5) 把判定表的每一列拿出来作为依据,设计测试用例。
    从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加。

     

    六、判定表驱动分析方法
    前面因果图方法中已经用到了判定表。判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具。在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了。由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。


    判定表通常由四个部分组成。
    条件桩(Condition Stub):列出了问题得所有条件。通常认为列出得条件的次序无关紧要。
    动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
    条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。
    动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。
    规则:任何一个条件组合的特定取值及其相应要执行的操作。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。


    判定表的建立步骤(根据软件规格说明):
    1) 确定规则的个数。假如有n个条件,每个条件有两个取值(0,1),故有n2种规则。

    2) 列出所有的条件桩和动作桩。
    3) 填入条件项。
    4) 填入动作项。等到初始判定表。
    5) 简化。合并相似规则(相同动作)。


    Beizer 指出了适合使用判定表设计测试用例的条件:
    1) 规格说明以判定表形式给出,或很容易转换成判定表。
    2) 条件的排列顺序不会也不影响执行哪些操作。
    3) 规则的排列顺序不会也不影响执行哪些操作。
    4) 每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
    5) 如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。

  • QTP基础代码

    2007-05-11 09:57:56

    1 生产随机数列
    第一种方法
    randomize'更新反回的数据
    funcation rand(k,n)
    n="int((k-1)*rnd+1) rand=n
    end funcation
    第二种方法
    n="randomnumber.value(1,255)

    2  当运行到表中的某一行,自动导出表中的所有数据
    row=datatable.getcurrentrow
    if row="5" then
      datatable.export("d:\data.xml")
    end if

    3 参数化密码
    webedit("txtpass").setsecure"sdsdf...."
    如果参数化密码,可以直接在数据表中写入未加密的密码,它会自动识别,即不用把setsecure改为set

    4 如果弹出对话框就获取上面提示信息并与表中的信息对比,不统一证明弹出的提示出错,主要用来验证
    if browser("web_name").dialog("dialog_name").exist(1) then'如果不出现="false     error_message=browser("web_name").dialog("diaglog_name").static("用户密码错误!".getRoproperty("text")
       if error_message<>(datatable.value("error_info"))then
             msgbox(error_message)
          end if
         browser("web_name").dialog("diaglog_name").close
      end if
    这里我总结了两点技巧:
      一是:对于dialog中,虽然提示信息对象名称是"用户密码错误",但如果信息对象名称是“该用户不存在”,不用更改会自动识别,我想主要是录制第一遍时,“用户密码错误”只是让运行时能找到这个控制,而不管它是什么内容,因为在对象仓库中,text不是决定该对象的属性
         二是:如果对于提示信息比较长的,可以用mid(error_message,n,m)取一部份特征提示信息进行验证,这样我想可以节省处理时间,又可以避免长度以及空格等字符的处理

    5  datatable.value("num")只在global形式下的一种省略形式;完整形式是:
    datatable.value("num",dtlocalsheet)
    -----向某一列的单元格赋值:
    datatable.value("column_name",dtlocalsheet)="nanjing"
    -----取得某一行具体值:
    datatable.setcurrentrow(n)
    msgbox(datatable.getsheet("global").getparameter("column_name").Rawvalue)
    或者kk=datatable.Rawvalue("column_name","action1")
    ----在run-time时,动态添加表格与数据
    kk=datatable.addsheet("sheet_name").addparameter("column_name","value").name;

    7   wintreeview一些操作
    选择一个条目:wintreeview.select(item)'根是0
    根的名称:wintreeview.getitem(0)

    8   数据库检查点模块:
    sub database_check
    set con="createobject(""adodb.connection")
    con.open "Descrīption="IBM_ODBC;DRIVER=SQL" Server;SERVER="IBM;UID=sa;""&_
                     "PWD="123456;APP=Quick" Test Pro;WSID="IBM;DATABASE=IBM_table""
    'access方式:con.open "DRIVER="{Microsoft" Access Driver (*.mdb)};DBQ="d:\test.mdb""
    'Orocle方式:con.open "DRIVER="{Oracle" in OraHome92};SERVER="CESHI;UID=CND_TEST;PWD=CND;DBQ=CESHI;DBA=W;APA=T;

    EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BA

    M=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;""
    set record="createobject(""adodb.recordset")
    sql="select*from ibm_one_table"
    record.open sql,con
    DO
    if(record("ibm_table_column")="kai")then'//查找表格中有多少kai
    num=num+1;
    end if
    record.movenext
    loop until record.eof="true record.close
    set record="nothing con.close
    set con="nothing end sub

    9   换行符
    vbcr----chr(13)回车符// vblf----chr(10)换行符
        vbcrlf----chr(13)+chr(10)结合//type(chr(13)就相当于按了一上键盘上的enter

    10  Run from step有两种方式:
    在Keyword View模式会从本步骤运行到所有action结束
    在expert view模式仅会将本action运行结束

    11  由于对象属性原因,无法识别对象
    -----对于对象属性是变化的,可以参数化/或者用正则表达式
    -----报匹配多个对象错误,可以spy查看对象,添加一个该对象另一个唯一标识属性
    -----有时可以删除对象的变化的属性来解决识别问题
    ------对于多个完全相同的对象,可以采用添加index,location,createtime等特殊属性来识别
      (index:按照程序源码,绘制对象的先后标识对象,所以与其它相同对象是相互依赖,当其它对象发生
      变化后,原先的所有对象index属性要发生变化,开始是0;如index:="0;         location:根据对象的位置进行确定,从上到下,从左到右;
      CreateTime:按照对象被浏览器打开的先后标识对象)
    ------另外换一种思维方式,采取等效的方法;比如用键盘代替鼠标或用操作系统本身特性去解决问题

     

    12  对系统文件的操作
    -------从系统的文件中获取信息及删除文件
      get_file_infor("c:\she.mpg")
       function get_file_infor(url)
        dim fso,f
        set fso="createobject(""scrīpting.filesystemobject")
        set f="fso.getfile(url)"
        f.name:f.size:f.type:f.datacreated'///获取文件信息
        fso.deletefile(url)'/////删除文件
       end function
    --------获取文件夹里所有文件信息
    get_folder_infor("c:\kai")
    function get_folder_infor(folder)
    dim fso,f,f1,n
    set fso="createobject(""scrīpting,filesystemobject")
    set f="fso.getfolder(folder) set fc="f.files for each f1 in fc
    select case f1.name
    case"kai.mpg","she.mpg","dd.mp3"'//检查文件夹里是否含有这些文件
    end select
    next
    end function

     

    13   等待某个对象出现方法
    y="......waitproperty(""visible",true,10000)

     

    14   防程序中断方法
    On error resume next
    On error goto handle

    15  数组的应用:
    name="array(1,2,""aa","bb")
    name(2)="aa"

    16  正则表达式应用模板
    进行日期YYYY-MM-DD的格式检查 :
    Function RegExpTest(patrn, strng)
      Dim regEx, Match, Matches      ' Create variable.
      Set regEx = New RegExp         ' Create a regular expression.
      regEx.Pattern = patrn         ' Set pattern.
      regEx.IgnoreCase = True         ' Set case insensitivity.
      regEx.Global = True         ' Set global applicability.
      Set Matches = regEx.Execute(strng)   ' Execute search.
      For Each Match in Matches      ' Iterate Matches collection.
        RetStr = RetStr & "Match found at position "
        RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
        RetStr = RetStr & Match.Value & "'." & vbCRLF
      Next
      RegExpTest = RetStr
    End Function
    date_pattern="^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$"
    result_message=RegExpTest(date_pattern, inputbox("请你输入要检查的时间:"))'用其它正则表达式更改此处
    Select case result_message
    Case ""
             msgbox("你输入的日期格式与标准不匹配")
    case else  MsgBox(result_message)
    end select

    17   返回一个字符串在另一字符串中的位置
    instr(string1,string2)

    18   有时回放出现找不到对象时,可能不是由于你的代码问题,而是由于你的操作系统等设置问题;
    举例说明1:
    比如:你录制一个选择磁盘中的文件动作
    会录制为:
    .winlistview("  ").drap 46,99
    .winlistview("  ").draponitem "she.mp3"
    下次录制的时候,如果你的系统文件改为不显示扩展名,下次执行的时候,QTP就找不到she.mp3,只能找到she;
    举例说明2:
    有时由于不同操作系统以及不同的ie,导致有些窗口不能识别,比如在2000下弹出的网页对话框的标题是:
    “web对话框",而在2003上是”网页对话框"

    19  "is+*"类型function
    isarray'是否是数组
    isconnected'判断QTP是否连接到TD
    isdate'是否是合法的日期类型
    isempty'判断是否初始化
    isNull'判断是否为空值
    isNumeric'判断是否是数字型
    isobject'判断是否一个功能对象
    isready'判断设备是否准备就绪
    isRootFolder'是否是根目录

    20 Action之间的参数传递
    例如:在Action1中,有如下代码:
    out_str="This is out_string"
    RunAction "Action2",oneIteration,out_str
    在Acton2中,在其step->Action Properties中的,input参数栏,加入out_str后,
    msgbox(parameter("out_str")),就能正确显示参数了 

    21 Wscrīpt.Shell的一些应用
    set WshShell ="CreateObject(""Wscrīpt.Shell")
    WshShell.SendKeys "{ENTER}"     '模拟键盘进行操作
    WshShell.AppActivate "Calculator"             '启动应用程序

    22 获取对象属性名称用法:
    GetRoProperty----从应用程序界面上获取对象属性(即,是脚本运行时,获取的对象动态属性值)例如:获取对象库中index属性值,似乎只能用GetToProperty,因为应用程序界面上对象没有该属性,只是QTP为识别该对象创立的描述属性;
    GetToproperty----从对象库中描述对象的属性,静态值
    GetToProperties----获取用于标识对象的属性集;对于这个集合,有count等属性方法

    23 FireEvent的使用可以对一个对象进行更复杂的操作
    如:FireEvent("onfocus")   '使一个控件获取焦点
         FireEvent("ondblclick")  '实现双击/也可以在事件设定中针对该对象事件响应  

    24 模板的应用
    -----新建一个文本,输入一些新建Action时常包含的信息,然后保存为ActionTemplate.MST文件,
     并复制到QTP/dat目录下;这样每次新建action都会包含固定的信息了;
    例如:
    '-------------------脚本说明---------------
    '产品版本:      __Build(  )
    '测试员:
    '编写日期:
    '测试功能:
    '脚本类型:
    '被测试对象初始状态:
    '进展程度:
    '基本思路:
    '主要功能函数:
    '历史修改:
    '没解决的问题:
    '--------------------脚本内容-------------

    25 在对象库中,两个对象有时不能通过更改属性或命名来达到两个对象完全一致的替换;
    在web-mod项目中,我在对象库里添加了一个自动含有index标识属性的对象,然后每次通过SetToproperty来改变
    index值,对对象进行数据驱动,使其操作另一个对象,但脚本始终操作原先index属性值的对象;后来,把该对象
    删除掉,重新添加一个不自动含有index标识属性的该类对象,然后,手工添加,index标识属性,后来脚本能正常工作了,可见两次的对象属性完全一致,但形成方式不一样,导致的结果往往也不一样;

    26 childobject的应用
    childobject可以返回界面上满足条件的对象集合,而且与对象库里是否有这些对象无关,这就可以简化对象库;
    返回的对象集合的count方法可以返回对象个数,这就可以通过下标对单个对象进行操作;在出现index标识对象时
    可以进行运用
    如:Set m_WinCheck="Descrīption.Create()       m_WinCheck("nativeclass").Value="Button"
          set All_WinCheck="Window(""").Dialog("").Childobject(m_WinCheck)
          n="All_WinCheck.Count()      for i="0" to n-1
          All_WinCheck(i).Set "ON"
         next

  • 一个优秀的测试用例,应该包含的信息

    2007-05-11 09:35:13


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

    2007-05-11 09:19:38

    从标题来看大家可能会觉得晕,这里说到的不可复现是指这些Bug有时出现,有时候不出现。相信大家在测试过程中肯定遇到过这种Bug,不少这种不可复现的Bug定位起来非常困难,可能很长时间都不能得到解决。能否复现这些不可复现的Bug成为大家关注的一个话题,最近国外的测试专家James Bach、Jonathan Kohl等对这个话题进行了一些探讨,这里把他们的一些思路理出来和大家分享。
          要想复现不可复现的Bug,需要先提到一个概念就是ET(Exploring Test),也就是探索式测试,这种测试方法是由James Bach首先提出来的,在所掌握的被测对象的信息不是很充分的情况下,这是一种很有效的测试方法.
          在给大家阐述如何复现不可复现的Bug的思路之前,先说说为什么要复现这些不可复现的Bug。对于整个项目或者产品而言,如果这些不可复现的Bug是很严重的Bug,比如导致系统崩溃等,如果不能及时、准确的定位和解决,最终发布出来的软件到达用户手中后,一旦出现势必会影响软件已经公司在用户心中的形象,严重的会“迫使”用户选择竞争对手的产品,这些显然都是公司所不愿看到的。而对于测试人员而言,出现了这些不可复现的Bug,实际上是一次很好的锻炼和提高机会,如果只是提交缺陷报告将这个大皮球踢给开发人员,不仅丧失了一次提高测试水平的机会,还有可能破坏和开发人员之间的关系。
          现在进入正题。当出现不可复现的Bug时,大家可以从以下五个方面来进行考虑:
    1、被测对象的版本信息
          我测试的到底是哪个版本,这主要是有两个作用:一是确认我测试的是正式的软件版本,如果不是就先记录下该问题,然后选择正式的版本进行测试(开发人员基于尝试的一次非正规的修改可能会导致不可复现的Bug);二是可以和其它版本进行对比,如果其它的版本没有类似的问题,就可以去对比这两个版本之间的区别。
    2、环境
          这里的环境是指出现不可复现的Bug时所对应的测试环境等,比如测试所用的计算机,如果出现不可复现的Bug,那我换一台机器是不是还会出现类似的问题,也就是说通过环境的改变来进一步搜集不可复现Bug的相关信息。
    3、模式
          这里的模式是指我对这个Bug如何出现的一个理解,先给这个Bug设定一个模式,比如是不是数据库通信中断,然后再进行测试,收集更多的信息去修改和完善这个模式,这样不断进行,最终直到Bug能完全复现为止,这个时候只要使用这个模式就可以复现出Bug了。
    4、人
          这里提到的人有两个含义:一是测试是由人来进行的,人的操作、人的思维方式会有不同,通过分析这些信息也有可能找到这些不可复现的Bug的蛛丝马迹;二是想复现不可复现的Bug,往往需要多个人之间的相互协作,比如测试人员、开发人员等,通过大家的沟通和协作就能更容易去复现了。
    5、测试工具
          通过一些debug工具或者log工具等搜集内存等信息,根据这些信息来进行分析,找出不同信息之间的共同点,比如某一块内存始终都会被改写等,通过这种方式来去复现Bug。
          上面的五个方面都是和ET的思想紧密相关的,通过不断的测试和不断的信息收集和分析,逐步的把模糊的、不确定的测试变成清晰的、确定的测试,这样就能复现那些不能复现的Bug了。考虑信息时可以从以上五个方面来进行考虑。
  • 测试工程师工作流程概论

    2007-05-11 09:17:06

     

    测试工程师的工作流程,与公司的整体工作流程,项目的测试要求等因素相关。本文主要讨论测试工程师的一般工作流程。

    做好测试准备

    1)明确测试任务的范围

    测试文档通常包括测试目的、测试环境、测试方法、测试用例、测试工具等。测试工程师首先要通读文档,对整个测试要求形成整体认识,明确测试目的,以及测试要求和测试重点,明确软件测试方法和使用的测试工具。 

    2)明确测试时间

    明确测试周期和测试时间进度。如果是多人合作完成一个软件,则要首先明确属于自己的测试内容、根据测试内容和测试周期,估算自己每日应该完成的工作量。此外由于软件测试是群体协作的测试活动,需要明确哪些测试内容要与其他测试工程师协作才能完成。 

    3)设置测试环境

    根据测试文档要求,设置测试需要的软件和硬件环境,包括操作系统,要测试的软件和其他必要的测试工具软件等。所有这些完成后,分别运行,查看是否能正确运行,保证符合测试文档要求的测试环境。 

    4)学习被测试软件

    对于不太熟悉的软件,可以通过阅读软件自身的教程和帮助文件,学习本软件的一般操作方法,也可以参照相关的书籍资料等。另外,向熟悉测试软件的其他同事请教软件使用方法,也是学习软件的一条捷径。对软件使用越熟练,测试过程越顺利,测试效果越理想。 

    5)确认完全理解测试任务

    软件测试最重要的要求就是确实明确了测试任务和要求,这包括正确理解了测试文档,确认可以按照测试进度要求,完成测试。对于测试工具要正确安装,熟练使用。如果有任何不明白之处,向软件测试负责人询问。切忌凭自己的理解和主观推测,自行其事。当然,真正测试中,往往会遇到各种新的小疑难问题,也需要及时向测试负责人请教,以保证测试顺利进行。

    执行软件测试任务

    1)按照测试文档要求,逐项认真测试

    根据测试文档测试要求,按照测试步骤,逐项进行。通过运行软件,观察测试结果,与软件需求说明书的内容进行比较,找出软件错误。对于需要调用测试用例的测试,保证正确地调用了测试用例,注意观察和分析测试结果。某些不容易重复的错误,需要反复测试,总结重复该错误所需要的测试步骤,直到确认可以重复出现为止。 

    2)记录发现的错误,填写软件问题报告

    为了纠正软件中的错误,测试工程师要正确记录发现的错误,将错误再现的步骤写入测试报告中,测试报告是程序测试的重要组成部分,正确书写测试报告是对测试工程师的基本要求。采用软件缺陷数据库管理测试中发现的软件缺陷,每一条错误作为数据库的一条记录,方便记录、修改、查询。 

    3)填写测试进度表和必要的测试内容记录表

    每天将测试内容写入测试进度表文档,可以使测试负责人了解测试进度,控制测试周期内测试的连续性,增强测试过程控制性,保证测试的正常进行。测试记录要准确完整,实事求是,必要时插入测试注释,解释测试中的特殊问题。测试进度表是评价测试质量和工作内容的重要凭证,对于测试后发现的测试错误和失误,可以通过检查测试记录,寻找产生错误的原因。 

    4) 测试中发现疑难及时请教

    测试是一个动态的过程,可能由于自己的错误操作或者测试文档内容的错误,使得测试过程中出现自己不能解释的现象或结果,出现与测试要求不符合的情形,这时可能需要与其他测试者协商或求助,如果问题仍然不能解决,应该及时请教,听取意见和建议,必要时反复讨论直到问题全面解决。

    全面检查测试结果

    1)对照测试文档要求,检查测试内容是否完整

    测试完成后,要对照测试文档检查测试是否全部完成,保证没有丢失测试内容。如果某些内容,由于测试环境的要求不满足,或者由于测试时间短没有进行,则要写入测试进度表文档。 

    2)检验书写的软件问题报告的记录,使之确切、规范

    正确书写测试记录是保证迅速定位软件错误,加快改正错误的必要前提。专业规范的软件记录报告是体现公司测试水平和专业实力的外在体现。认真检查书写的每条记录是否符合规范,格式、步骤、内容一一检查,必要时补充或删减。   

    上述三个阶段,相互联系紧密,其中准备是基础,测试是重点,检查是保证,应该根据测试的软件特点合理安排。
  • 中文测试网站

    2007-05-10 12:02:09

    无忧软件测试网:http://www.51testing.com/  


    一起测试网:http://www.17testing.com/


    中国软件测试基地:http://bbs.cntesting.com/?u=69 

    软件测试时代:http://www.testage.net/Index.htm

    天天测试网:http://www.tttest.com/

    UML软件工程组织http://www.uml.org.cn/Test/test.asp

  • 63个国外优秀测试网站地址

    2007-05-10 11:58:34


     

    http://bdonline.sqe.com/ 一个关于网站测试方面的网页,对这方面感兴趣的人可以参考
    http://citeseer.nj.nec.com/ 一个丰富的电子书库,内容很多,而且提供著作的相关文档参考和下载,是作者非常推荐的一个资料参考网站
    http://groups.yahoo.com/group/LoadRunner 性能测试工具LoadRunner的一个论坛
    http://groups.yahoo.com/grorp/testing-paperannou-nce/messages 提供网站上当前发布的软件测试资料列表
    http://satc.gsfc.nasa.gov/homepage.html 软件保证中心是美国国家航天局(NASA)投资设立的一个软件可靠性和安全性研究中心,研究包括了度量、工具、风险等各个方面
    http://seg.iit.nrc.ca/English/index.html 加拿大的一个研究软件工程质量方面的组织,可以提供研究论文的下载
    http://sepo.nosc.mil 内容来自美国SAN DIEGO的软件工程机构(Sofrware Engineering Process Office)主页,包括软件工程知识方面的资料
    http://www.asq.org/ 是世界上最大的一个质量团体组织之一,有着比较丰富的论文资源,不过是收费的
    http://www.automated-testing.com/ 一个自动化软件测试和自然语言处理研究页面,属于个人网页,上面有些资源可供下载
    http://www.benchmarkresources.com/ 提供有关标杆方面的资料,也有一些其它软件测试方面的资料
    http://www.betasoft.com/ 包含一些流行测试工具的介绍、下载和讨论,还提供测试方面的资料
    http://www.brunel.ac.uk/~csstmmh2/vast/home.html VASTT研究组织,主要从事通过切片技术、测试技术和转换技术来验证和分析系统,对这方面技术感兴趣的人是可以在这里参考一些研究的项目及相关的一些主题信息
    http://www.cc.gatech.edu/aristotle/ Aristole研究组织,研究软件系统分析、测试和维护等方面的技术,在测试方面的研究包括了回归测试、测试套最小化、面向对象软件测试等内容,该网站有丰富的论文资源可供下载
    http://www.computer.org/ IEEE是世界上最悠久,也是在最大的计算机社会团体,它的电子图书馆拥有众多计算机方面的论文资料,是研究计算机方面的一个重要资源参考来源
    http://www.cs.colostate.edu/testing/ 可靠性研究网站,有一些可靠性方面的论文资料
    http://www.cs.york.ac.uk/testsig/ 约克大学的测试专业兴趣研究组网页,有比较丰富的资料下载,内容涵盖了测试的多个方面,包括测试自动化、测试数据生成、面向对象软件测试、验证确认过程等
    http://www.csr.ncl.ac.uk/index.html 学校里面的一个软件可靠性研究中心,提供有关软件可靠性研究方面的一些信息和资料,对这方面感兴趣的人可以参考
    http://www.dcs.shef.ac.uk/research/groups/vt/ 学校里的一个验证和测试研究机构,有一些相关项目和论文可供参考
    http://www.esi.es/en/main/ ESI(欧洲软件组织),提供包括CMM评估方面的各种服务
    http://www.europeindia.org/cd02/index.htm 一个可靠性研究网站,有可靠性方面的一些资料提供参考
    http://www.fortest.org.uk/ 一个测试研究网站,研究包括了静态测试技术(如模型检查、理论证明)和动态测试(如测试自动化、特定缺陷的检查、测试有效性分析等)
    http://www.grove.co.uk/ 一个有关软件测试和咨询机构的网站,有一些测试方面的课程和资料供下载
    http://www.hq.nasa.gov/office/codeq/relpract/prcls-23.htm NASA可靠性设计实践资料
    http://www.io.com/~wazmo/ Bret Pettichord的主页,他的一个热点测试页面连接非常有价值,从中可以获得相当大的测试资料,很有价值
    http://www.iso.ch/iso/en/ISOOnline.frontpage 国际标准化组织,提供包括ISO标准系统方面的各类参考资料
    http://www.isse.gmu.edu/faculty/ofut/classes/ 821-ootest/papers.html 提供面向对象和基于构架的测试方面著作下载,对这方面感兴趣的读者可以参考该网站,肯定有价值
    http://www.ivv.nasa.gov/ NASA设立的独立验证和确认机构,该机构提出了软件开发的全面验证和确认,在此可以获得这方面的研究资料
    http://www.kaner.com/ 著名的测试专家Cem Kanner的主页,里面有许多关于测试的专题文章,相信对大家都有用。Cem Kanner关于测试的最著名的书要算Testing Software,这本书已成为一个测试人员的标准参考书
    http://www.library.cmu.edu/Re-search/Engineer- ingAndSciences/CS+ECE/index.html 卡耐基梅陇大学网上图书馆,在这里你可以获得有关计算机方面各类论文资料,内容极其庞大,是研究软件测试不可获取的资料来源之一
    http://www.loadtester.com/ 一个性能测试方面的网站,提供有关性能测试、性能监控等方面的资源,包括论文、论坛以及一些相关链接
    http://www.mareinig.ch/mt/index.html 关于软件工程和应用开发领域的各种免费的实践知识、时事信息和资料文件下载,包括了测试方面的内容
    http://www.mtsu.ceu/-storm/ 软件测试在线资源,包括提供目前有哪些人在研究测试,测试工具列表连接,测试会议,测试新闻和讨论,软件测试文学(包括各种测试杂志,测试报告),各种测试研究组织等内容
    http://www.psqtcomference.com/ 实用软件质量技术和实用软件测试技术国际学术会议宣传网站,每年都会举行两次
    http://www.qacity.com/front.htm 测试工程师资源网站,包含各种测试技术及相关资料下载
    http://www.qaforums.com/ 关于软件质量保证方面的一个论坛,需要注册
    http://www.qaiusa.com/ QAI是一个提供质量保证方面咨询的国际著名机构,提供各种质量和测试方面证书认证
    http://www.qualitytree.com/ 一个测试咨询提供商,有一些测试可供下载,有几篇关于缺陷管理方面的文章值得参考
    http://www.rational.com/ IBM Rational的官方网站,可以在这里寻找测试方面的工具信息。IBM Rational提供测试方面一系列的工具,比较全面
    http://rexblackconsulting.com/Pages/publicat-ions.htm
    Rex Black的个人主页,有一些测试和测试管理方面的资料可供下载
    http://www.riceconsulting.com/ 一个测试咨询提供商,有一些测试资料可供下载,但不多
    http://www.satisfice.com/ 包含James Bach关于软件测试和过程方面的很多论文,尤其在启发式测试策略方面值得参考
    http://www.satisfice.com/seminars.shtml 一个黑盒软件测试方面的研讨会,主要由测试专家Cem Kanar和James Bach组织,有一些值得下载的资料
    http://www.sdmagazine.com/ 软件开发杂志,经常会有一些关于测试方面好的论文资料,同时还包括了项目和过程改进方面的课题,并且定期会有一些关于质量和测试方面的问题讨论
    http://www.sei.cmu.edu/ 著名的软件工程组织,承担美国国防部众多软件工程研究项目,在这里你可以获俄各类关于工程质量和测试方面的资料。该网站提供强有力的搜索功能,可以快速检索到你想要的论文资料,并且可以免费下载
    http://www.soft.com/Institute/HotList/ 提供了网上软件质量热点连接,包括:专业团体组织连接、教育机构连接、商业咨询公司连接、质量相关技术会议连接、各类测试技术专题连接等
    http://www.soft.com/News/QTN-Online/ 质量技术时事,提供有关测试质量方面的一些时事介绍信息,对于关心测试和质量发展的人士来说是很有价值的
    http://www.softwaredioxide.com/ 包括软件工程(CMM,CMMI,项目管理)软件测试等方面的资源
    http://www.softwareqatest.com/ 软件质量/测试资源中心。该中心提供了常见的有关测试方面的FAQ资料,各质量/测试网站介绍,各质量/测试工具介绍,各质量/策划书籍介绍以及与测试相关的工作网站介绍
    http://www.softwaretestinginstitute.com 一个软件测试机构,提供软件质量/测试方面的调查分析,测试计划模板,测试WWW的技术,如何获得测试证书的指导,测试方面书籍介绍,并且提供了一个测试论坛
    http://www.sqatester.com/index.htm 一个包含各种测试和质量保证方面的技术网站,提供咨询和培训服务,并有一些测试人员社团组织,特色内容是缺陷处理方面的技术
    http://www.sqe.com/ 一个软件质量工程服务性网站,组织软件测试自动化、STAR-EASE、STARWEST等方面的测试学术会议,并提供一些相关信息资料和课程服务
    http://www.stickyminds.com/ 提供关于软件测试和质量保证方面的当前发展信息资料,论文等资源
    http://www.stqemagazine.com/ 软件策划和质量工程杂志,经常有一些好的论文供下载,不过数量较少,更多地需要通过订购获得,内容还是很有价值的
    http://www.tantara.ab.ca/ 软件质量方面的一个咨询网站,有过程改进方面的一些资料提供
    http://www.tcse.org/ IEEE的一个软件工程技术委员会,提供技术论文下载,并有一个功能强大的分类下载搜索功能,可以搜索到测试类型、测试管理、 测试分析等各方面资料
    http://www.testing.com/ 测试技术专家Brain Marick的主页,包含了Marick 研究的一些资料和论文,该网页提供了测试模式方面的资料,值得研究。总之,如果对测试实践感兴趣,该网站一定不能错过
    http://www.testingcenter.com/ 有一些测试方面的课程体系,有一些价值
    http://www.testingconferences.com/asiastar/home 著名的AsiaStar测试国际学术会议官方网站,感兴趣的人一定不能错过
    http://www.testingstuff.com/ Kerry Zallar的个人主页,提供一些有关培训、工具、会议、论文方面的参考信息
    http://www-sqi.cit.gu.edu.au/ 软件质量机构,有一些技术资料可以供下载,包括软件产品质量模型、再工程、软件质量改进等

Open Toolbar