希望各位能给我出注意,一起分享我的一些进步在技术方面!

发布新日志

  • Loadrunner 9: Simulate Parameters

    2008-12-05 16:12:31

    Anyone who has written a scrīpt in LoadRunner has probably used parameters before. A parameter is a substitution for a hard coded values when there needs to be different data values submitted on each new iteration if the scrīpt. One way to feed new information in is by creating a data file (similar to a CSV delimited file). You can create your own .DAT files with multiple columns, convert them from excel spreadsheets, or from SQL extracts from the database.  Then point your parameter to the .DAT file. HP's Virtual User Generator (VuGEN) scrīpting tool for LoadRunner has multiple options for choosing which data will be selected upon each new iteration. Select the drop down menu for "Select next row" and you will see the following choices:

    • Sequential
    • Random
    • Unique
    • Same Line as (if there are multiple parameters in the scrīpt)

    Check out the LoadRunner books online or help documentation if you need details on how these choices work and how to get there in VuGEN.

    With a larger data set, you might want to visualize just how random the "Random" option is -  how LoadRunner will use these data values throughout the duration of the test. With LoadRunner 9 we have a new feature, Simulate Parameter, to do that. When you look at the Parameter Properties sheet, there is a new button. See the graphic #1 below:

    Graphic #1


    In this particular case I want to see how often my users will be chosen for logging in throughout the test if I have a load of 10 virtual users iterating 10 times each. By clicking on the "Simulate Parameter" button, it launches the Parameter Simulation sheet, which will allow me to select the number of virtual users I plan on running, and the number of iterations. I can also tell it to look at the current Run-Time setting values I have set up in the scrīpt for this information. See graphic #2 below:

    Graphic #2

    Now I have an idea of how the test scenario will play out by virtual user, and by iteration. This would help if you suspected that you had too few values in your parameter file and the timings were getting skewed. It you were getting errors within scrīpts, you might find out that its due to database locks because the same data is being used at the same time, or some other data violation. Note that by viewing this, it does not modify the data file to match the listing you see. It's simply a way to see how the data would be used if you kicked off a test. Now you have a way to visualize a dry run on those Parameters without launching a test. 

  • 软件测试的另类享受

    2008-09-26 15:06:37

    在经过了漫长而又乏味的测试和郁闷之后,接下来就是应该让我们自己轻松下的时候了,为了让我们的精力更好,精神更充沛,信心饱满的去面对下一次的测试,我们也该享受下的.

    在这里谈到享受大家可能想不就是物质(吃的喝的),外再加几个漂亮MM(想这方面的就是色狼 呵呵).

    其实对于我们测试人员而言上面谈到的都是其次的,而其主要的享受的还是对项目对我们自身的价值体现,测试完成后难免会和开发人员对自己测试的结果进行讨论:包括程序的错误而造成的缺陷;作为出色的测试人员对功能在实现上的意见(怎么样对系统会有更好的?怎么样会对系统更好的运行).

    当开发人员或技术经理或项目经理对自己提出的意见面带笑容而且不停的点头的时候,自己的心里不知道是多么的高兴,这就是对我们测试人员的回报---------精神享受,技术允可!(其实这也是要成为一名优秀的测试人员应该必须友好有的技术素质之一!)

    当然反过来我们也可以了解开发,开发也是博大精深的!了解开发人员在功能上是怎么实现的,怎么考虑的.我们也可以知道和学习开发人员在该功能上的思维方式,从而对照需求,或自己是否漏测.

  • 读“软件工程漫谈”之想

    2008-08-06 10:12:12

    我在一个论坛中看的,信心满怀的下了慢慢读一下的,一个自称博士写的。

     

    当我读到前面的属于软件开发的部分时侯,真的写的好,理论与实际相结合,该博士的软件经验真的是丰富也~~~

    但是当我读到关于测试的时候就焖了的,纯乱说的文中有这么2处的大致内容“软件测试的目的就是找出软件的缺陷”,这真是太低估我们做测试得了,难道我们就是头脑简单的人,就只会做这些;那一些软件的优化问题开发人员能提出来,没有经过我们测试人员的测试有这个结论吗?

    还有一些东西的 真是把我急的呀 ~~~~~~~~~~~

    总之建议刚入门的测试同行们最好不要看的,免得大家误入歧途

    刚开始还想把这本树给刚毕业的一些来公司的人看,看来我仔细看完是正确的~~~

    希望看过这本书的同行们也说说自己的看法~~~~~~~~

  • 从”鸡蛋碰石头”,想到的

    2008-06-11 10:44:39

    鸡蛋碰石头”,想到的

    在正常理论下,大家肯定有2种观点:

    1.         是鸡蛋不如石头硬

    2.         是鸡蛋碰向石头的同时给了石头太大的外力而使鸡蛋被砸坏

     

    2种观点从表面上看没有啥区别,因为导致最后的结果都一样:鸡蛋被砸坏了.

    我们大家再仔细分析下,同意第一种观点的人,肯定是站在石头的角度去想问题,石头本来就比鸡蛋硬(而且硬很多),所以就理所当然的认为使石头硬(这是事实);同意第二种观点的人,肯定是这样想的:当鸡蛋砸向石头的时候,同时给石头很大的力,这样石头同时也会给鸡蛋一个同样大小的力,从而导致鸡蛋被砸坏.

    其实我们只用知道一个不变的事实就可以了:最后坏的肯定是鸡蛋!

    当我们站在测试的角度看这个问题的时候,那肯定是不一样的:虽然结果都是一样的,但是其中的过程是不一样的.(作为测试人员过程和结果都一样很重要,有时候过程还会更重要)

     现在我们以测试人员的身份来分析下这个现实:

    同意第一种观点的人,就和开发人员的思维一样的,顺着需求把待测试的功能对比着测试一下就OK.因为这时测试人员和开发人员走的同一条路,所以在之间就找不到他们的碰撞点或思维的交叉点,这样很多的错误(可能不是BUG)就被溜走了.

    同意第二种观点的人,我觉得只是比比第一种稍微高了一点.如果我们事事都以一种相反的想法去看待每个待测试的功能点,这就脱离了我们在开发之前必须要写需求的目的.这种人能为客户着想,但是也得为项目着想,毕竟项目得进度也事很重要的.

     

    所以,我们作为测试人员应该从2方面去考虑鸡蛋被砸坏的原因.既要为公司为项目的质量把关,也得从客户的角度去思考软件的功能点,怎样才是客户最最需要的!我们想问题就得从导致问题的双方面去考虑,这样才使我们被测试的软件更适合客户!

  • 对于test case我们应该注意的

    2008-06-06 14:40:45

    对于test  case我们应该注意的:

    test  case并没有好坏之分.

    之前看见很多网友在论坛上评论这个test  case怎么的好,哪个test  case怎么的不好.

    其实test  case对于测试人员只有对该功能点的覆盖范围在设计test  case时考虑周全不周全的说法;设计的好,把握住了该功能点的重心,那么设计的test  case就能覆盖该功能所涉及的范围.

    有时候会出现这样的情况:在执行某个test  case的时候能找到BUG,这个时候项目经理或其他人员就说该test  case把握住了要点,但是当需要下次再回放该BUG的时候却怎么也无法再重现,这个时候我们设计的test  case肯定会被认为是不好的.当听到这时,我们大家都会感到气氛,这时我们就需要考虑test  case之外的东西了(EG.发布的问题等等).

    在网上也看到过这样的说法能测试出多的BUG就是好test  case”.我也不知道这是啥理论的!!!反过来不能测试出BUGtest case 就是我们测试人员设计不到位 ? 如果执行一个test  case找出了很多的BUG这说明开发人员可能对需求理解不到位导致的结果,也有可能是设计test  case没有考虑周全,应该从双方面都去考虑.好有这也说明说这话的人只重视了开发没有从测试的角度考虑.

    那不能测试出BUGtest  case,也能说明开发人员对需求的理解让我们无从置疑(别人能力高的),当然这也说明我们测试人员的能力也高呀~~,需求理解也到位了, test  case遍及范围也考虑周全了.

  • 测试工具下载地址!!

    2007-09-20 14:48:10

    HP-Mercury软件测试工具下载,随时更新
     
    官方下载:
    http://downloads.mercury.com/cgi-bin/portal/download/index.jsp

    LoadRunner 8.1下载
    http://esd.mercury.com/akdlm/trial/lr/LR81Download.exe

    TestDirector for Quality Center
    http://esd.mercury.com/akdlm/trial/qc/quality-center-starter-edition.zip

    QTP 9.2下载
    http://esd.mercury.com/akdlm/trial/qtp/qtp92.zip

    其他下载地址:
    LoadRunner 8.0下载
    http://www.tomore.com/catalog/3_25/7.htm
    LoadRunner.8.0.工业级测试工具.part01.rar
    ……
    ……
    LoadRunner.8.0.工业级测试工具.part22.rar

    QTP 8.2下载:
    http://www.tomore.com/catalog/3_25/5.htm
    QuickTest.Pro.8.2.中文版.强大测试工具.QuickTest_Pro_82_CHS_ENG.part01.rar
    ……
    ……
    QuickTest.Pro.8.2.中文版.强大测试工具.QuickTest_Pro_82_CHS_ENG.part18.rar


    测试工具下载推荐
    CC/CQ,PCVS, CVS ,WinCVS , TD/QC所有配置管理工具下载网站:
    SCMLife--致力于做一流得配置管理社区电驴测试工具资源下载:
    1)        LoadRunner7.8
    http://lib.verycd.com/2005/01/07/0000034096.html
    2)WinRunner7.6
    http://lib.verycd.com/2005/03/16/0000042388.html
    3)TestDirector 7.6 http://board.verycd.com/t162206.html
    FTP:TD7.6下载:
    TD 7.6 SP4 企业版
    TD 7.6 SP4标准版
    4)WinRunner 7.6下载用快车就行http://www.clzx.net.cn/Soft/ShowSoft.asp?SoftID=450
    WinRunner8。0电驴下载
    http://lib.verycd.com/2005/09/18/0000065515.html
    5)QuickTest Pro 8.2 电驴下载http://lib.verycd.com/2005/09/19/0000065551.html
    6)LoadRunner 8.0下载地址:http://lib.verycd.com/2005/10/01/0000067173.html
    LoadRunner 8.1下载地址
    Ftp: LoadRrunner 8.0下载http://esd.mercury.com/akdlm/trial/lr/LR8DownLoad.exe
    7).  TestDirector 8.0 电驴下载http://lib.verycd.com/2006/03/19/0000095046.html

    七  Java开源测试工具汇总

            1  JUnit 
    JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。

    http://www.junit.org/

    2 Cactus 
    Cactus是一个基于JUnit框架的简单测试框架,用来单元测试服务端Java代码。Cactus框架的主要目标是能够单元测试服务端的使用Servlet对象的Java方法如HttpServletRequest,HttpServletResponse,HttpSession等

    http://jakarta.apache.org/cactus/

    3 Abbot 
    Abbot是一个用来测试Java GUIs的框架。用简单的基于XML的脚本或者Java代码,你就可以开始一个GUI。

    http://abbot.sourceforge.net/

    4 JUnitPerf 
    Junitperf实际是junit的一个decorator,通过编写用于junitperf的单元测试,我们也可使测试过程自动化。http://www.clarkware.com/software/JUnitPerf.html

    5        DbUnit 
    DbUnit是为数据库驱动的项目提供的一个对JUnit 的扩展,除了提供一些常用功能,它可以将你的数据库置于一个测试轮回之间的状态。

    http://dbunit.sourceforge.net/

    6        Mockrunner 
    Mockrunner用在J2EE环境中进行应用程序的单元测试。它不仅支持Struts actions, servlets,过滤器和标签类还包括一个JDBC和一个JMS测试框架,可以用于测试基于EJB的应用程序。

    http://mockrunner.sourceforge.net/index.html
    7        DBMonster 
    DBMonster是一个用生成随机数据来测试SQL数据库的压力测试工具。

    http://dbmonster.kernelpanic.pl/


    8        MockEJB 
    MockEJB是一个不需要EJB容器就能运行EJB并进行测试的轻量级框架。

    http://mockejb.sourceforge.net/

    9        StrutsTestCase 
    StrutsTestCase 是Junit TestCase类的扩展,提供基于Struts框架的代码测试。StrutsTestCase同时提供Mock 对象方法和Cactus方法用来实际运行Struts ActionServlet,可以通过运行servlet引擎来测试。http://strutstestcase.sourceforge.net/

    10  JFCUnit 
    JFCUnit使得你能够为Java偏移应用程序编写测试例子。它为从用代码打开的窗口上获得句柄提供了支持;为在一个部件层次定位部件提供支持;为在部件中发起事件(例如按一个按钮)以及以线程安全方式处理部件测试提供支持。
    http://jfcunit.sourceforge.net/

    11JTestCase 
    JTestCase 使用XML文件来组织多测试案例数据,声明条件(操作和期望的结果),提供了一套易于使用的方法来检索XML中的测试案例,按照数据文件的定义来声明结果。

    http://jtestcase.sourceforge.net/

    12SQLUnit 
    SQLUnit是一个单元测试框架,用于对数据库存储过程进行回归测试。用 Java/JUnit/XML开发。

    http://sqlunit.sourceforge.net

    13 JTR 
    JTR (Java Test Runner)是一个开源的基于反转控制(IOC)的J2EE测试框架。它允许你构建复杂的J2EE测试套件(Test Suites)并连到应用服务器执行测试,可以包括多个测试实例。JTR的licensed是GPL协议。

    http://jtrunner.sourceforge.net/

    14 Marathon 
    Marathon是一个针对使用Java/Swing开发GUI应用程序的测试框架,它由recorder, runner 和 editor组成,测试脚本是python代码。Marathon的焦点是放在最终用户的测试上。

    http://marathonman.sourceforge.net

    15 TestNG 
    TestNG是根据JUnit 和 NUnit思想而构建的一个测试框架,但是TestNG增加了许多新的功能使得它变得更加强大与容易使用比如:
    *支持JSR 175注释(JDK 1.4利用JavaDoc注释同样也支持)
    *灵活的Test配置
    *支持默认的runtime和logging JDK功能
    *强大的执行模型(不再TestSuite)
    *支持独立的测试方法。

    http://testng.org/

    16 Surrogate Test framework 
    Surrogate Test framework是一个值得称赞单元测试框架,特别适合于大型,复杂Java系统的单元测试。这个框架能与JUnit,MockEJB和各种支持模拟对象(mock object )的测试工具无缝给合。这个框架基于AspectJ技术。
    http://surrogate.sourceforge.net

    17 MockCreator 
    MockCreator可以为给定的interface或class生成模拟对象(Mock object)的源码。

    http://mockcreator.sourceforge.net/

    18 jMock 
    jMock利用mock objects思想来对Java code进行测试。jMock具有以下特点:容易扩展,让你快速简单地定义mock objects,因此不必打破程序间的关联,让你定义灵活的超越对象之间交互作用而带来测试局限,减少你测试地脆弱性。

    http://www.jmock.org/

    19 EasyMock 
    EasyMock为Mock Objects提供接口并在JUnit测试中利用Java的proxy设计模式生成它们的实例。EasyMock最适合于测试驱动开发。

    http://www.easymock.org/

    20 The Grinder 
    The Grinder是一个负载测试框架。在BSD开源协议下免费使用。

    http://grinder.sourceforge.net/

    21 XMLUnit 
    XMLUnit不仅有Java版本的还有.Net版本的。Java开发的XMLUnit提供了两个JUnit 扩展类XMLAssert和XMLTestCase,和一组支持的类。这些类可以用来比较两张XML之间的不同之处,展示XML利用XSLT来,校验XML,求得XPath表达式在XML中的值,遍历XML中的某一节点利DOM展开,

    http://xmlunit.sourceforge.net/

    22        Jameleon 
    Jameleon一个自动化测试工具。它被用来测试各种各样的应用程序,所以它被设计成插件模式。为了使整个测试过程变得简单Jameleon提供了一个GUI,因此Jameleon实现了一个Swing 插件。

    http://jameleon.sourceforge.net/index.html

    23        J2MEUnit 
    J2MEUnit是应用在J2ME应用程序的一个单元测试框架。它基于JUnit.

    http://j2meunit.sourceforge.net/

    24        Jetif 
    Jetif是一个用纯Java实现的回归测试框架。它为Java程序单元测试以及功能测试提供了一个简单而且可 伸缩的架构,可以用于个人开发或企业级开发的测试。它容易使用,功能强大,而且拥有一些企业级测试的重要功能。Jetif来源于JUnit, JTestCase以及TestNG的启发,有几个基本的概念直接来自于JUnit, 比如说断言机制,Test Listener的概念,因此从JUnit转到Jetif是非常容易的。
    http://jetif.sourceforge.net/

    25        GroboUtils 
    GroboUtils使得扩展Java测试变得可能。它包括用在Java不同方面测试的多个子项目。在GroboUtils中最常被到的工具是:多线程测试(multi-threaded tests),整体单元测试(hierarchial unit tests),代码覆盖工具(code coverage tool)。
    http://groboutils.sourceforge.net/

    26        Testare 
    TESTARE是用来简化分布式应用程序(比如:在SERVLETS,JMS listeners, CORBA ORBs或RMI环境下)测试开发过程的一个测试框架.
    https://testare.dev.java.net/

  • JProbe Profiler 使用指南

    2007-08-01 09:38:02

  • 计算机操作常识大全

    2007-03-30 19:54:59

  • 教你轻轻松松建立自己的浏览器主页

    2007-03-30 19:49:37

    教你轻轻松松建立自己的浏览器主页

    一次调查显示,大部分人愿意把网址导航站设为自己的浏览器主页。我想原因很简单,每次打开浏览器,自动打开网址导航站,想访问哪个网站鼠标轻点之下就可以完成。而提供具体某种服务的网站,并不是每次打开浏览器都需要访问的,所以网址导航站非常适合作为浏览器的主页。但个性时代,我们更希望自己能一个个性化的网址导航,而不是每天打开浏览器,都要强迫性的去面对网址导航站上琳琅满目的大量网址(外加广告)。如果说我的浏览器主页上只罗列了我常用的网址,并且能根据我的喜好进行布局,那会是非常赏心悦目的事。而最重要的是,大部分人不是网页制作者,我们无法轻松作出自己的网页,而且我们也不愿意花钱把制作出的网页放在互联网上,以便我们随时随地能访问使用它。当我遍寻天下,试图寻找理想中的服务时,Haoei出现在我眼前,用了一段时间,着实觉得很棒,特写一篇简单的教材向大家分享。

    其实有时候我觉得我写教材是多余的,因为在Haoei建一个个性的网址导航(浏览器主页)简单得无法再简单。引用Haoei几句话:“您可以居于任何一个用户创建好的个性网址导航进行再制作”。“可以轻松将别人的东西删删改改,变成我自己的!”

    第一步:打开浏览器,输入www.haoei.com,显示出来的是Haoei首页。Haoei首页本身就是一个个性的网址导航。
    如果你觉得它就满符合你需求的,那么直接点击右上角的“占为已有”,根据提示简单点击,不用一分钟就可以完工。
    如果你觉得它稍微有点不符合你的要求,你可以直接在上面用鼠标拖拽增减,删去你不需要的网址,添加你要的网址,修改一下,修改后,会出现一个提示“是否进行保存”,点击保存,根据提示简单点击保存完后,就OK。
    与直接“占为已有”不同,这是居于别人的主页修改,然后再保存为自己的。
    更好的方法是,你可以根据你所从事的行业、网上主要活动、关注的产品或服务,查找一个与你类似的人制作的页面,你与他(她)更有共同语言,基于他(她)制作的页面进行修改制作,往往会更简单方便。www.haoei.com/dir    ,你可以在这个地址查找,找到满意的后,直接居于其进行修改或直接占为已有就行了。

    第二步:似乎已经没有第二步了,就这么简单,一步就完成了。在这里我就把每个操作说明一下吧。
    创建新类别:点击网页头部菜单中的“创建一个新类别”,即可增加类别。
    重命名类别名:在相应类别左上角,点击“重命名”,或直接双击类别名,在出现的输入框中输入新的类别名,然后按回车键或用鼠标点击网页空白处即可。
    设置隐藏类别:重命名类别名时,如果将类别名写成“隐藏”,则该类别中的网址只有主人在登录状态下才可见。好诶倡导共享,所以每个主页只能设置一个隐藏类别。
    移动类别块位置:鼠标点住“移动”字样,可将类别块与另一类别块互换位置。
    删除类别:在相应类别左上角,点击“删除”即可。
    添加网址行:在相应类别块右下角,点击“添加”,在出现的填空处上填上“名称”与“网址”,然后按回车键或用鼠标点击网页空白处即可。如果要取消添加,将填空处留空,最后按回车键或用鼠标点击网页空白处即可。您还可以使用“添加助手”(www.haoei.com/addhelper)添加网址,或从“分类网址库”(www.haoei.com/sites)中导入网址。
    修改网址行:鼠标双击网址行空白处,在出现的修改框上即可修改名称与网址,最后按回车键或用鼠标点击网页空白处即可。
    移动网址行位置:鼠标点住网址行空白处,可挪动网址行插入到您想要的位置。可以跨类别块移动,即将网址从某一类别下移到另一类别下。
    删除网址行:鼠标点住网址行空白处,挪动到网页空白位置即可。

    最后一步:这步也许是多余的,但对十分追求个性的人来说很有用。进入设置栏目www.haoei.com/set 在设置的最后一项设置本地Logo,你可以把Haoei的标志用你电脑中的一张图片来替换掉。比如你的照片、写有你名字的图片、你女朋友或你家人的照片。

    这样一个完全个性,且非常实用的个性网址导航就是你的了。把它设为你的浏览器主页,每次打开又实用又赏心悦目。很棒吧?这对一些网吧主也非常有用吧?比如轻松为你的网吧建一个个性的网址导航,让你的客户享用,别忘了把LOGO改成你网吧的LOGO。对一些公司也可以用类似的作法,把你们公司常用的网址聚集起来,供公司员工使用。
  • 电脑蓝屏死机代码大集合

    2007-03-30 19:41:02

    使用windows出现蓝色屏幕是经常的事,而且每每因为不清楚错误的来源而频繁重新安装系统,劳神费时。下先将windows死机密码,供大家参考。获得更多信息复制代码到微软官方查询……
      数 值 叙 述
      0 0x0000 作业完成。
      1 0x0001 不正确的函数。
      2 0x0002 系统找不到指定的档案。
      3 0x0003 系统找不到指定的路径。
      4 0x0004 系统无法开启档案。
      5 0x0005 拒绝存取。
      6 0x0006 无效的代码。
      7 0x0007 储存体控制区块已毁。
      8 0x0008 储存体空间不足,无法处理这个指令。
      9 0x0009 储存体控制区块位址无效。
      10 0x000a 环境不正确。
      11 0x000b 尝试载入一个格式错误的程式。
      12 0x000c 存取码错误。
      13 0x000d 资料错误。
      14 0x000e 储存体空间不够,无法完成这项作业。
      15 0x000f 系统找不到指定的磁碟机。
      16 0x0010 无法移除目录。
      17 0x0011 系统无法将档案移到 其他的磁碟机。
      18 0x0012 没有任何档案。
      19 0x0013 储存媒体为防写状态。
      20 0x0014 系统找不到指定的装置。
      21 0x0015 装置尚未就绪。
      22 0x0016 装置无法识别指令。
      23 0x0017 资料错误 (cyclic redundancy check)
      24 0x0018 程式发出一个长 度错误的指令。
      25 0x0019 磁碟机在磁碟找不到 持定的磁区或磁轨。
      26 0x001a 指定的磁碟或磁片无法存取。
      27 0x001b 磁碟机找不到要求的磁区。
      28 0x001c 印表机没有纸。
      29 0x001d 系统无法将资料写入指定的磁碟机。
      30 0x001e 系统无法读取指定的装置。
      31 0x001f 连接到系统的某个装置没有作用。
      32 0x0020 the process cannot access the file because i
          t is being used by another process.
      33 0x0021 档案的一部份被锁定, 现在无法存取。
      34 0x0022 磁碟机的磁片不正确。 请将 %2 (volume serial number: %3) 插入磁碟机 %1。
      36 0x0024 开启的分享档案数量太多。
      38 0x0026 到达档案结尾。
      39 0x0027 磁碟已满。
      50 0x0032 不支援这种网路要求。
      51 0x0033 远端电脑无法使用。
      52 0x0034 网路名称重复。
          53 0x0035 网路路径找不到。
      54 0x0036 网路忙碌中。
      55 0x0037 the specified network resource or device is no longer available.
      56 0x0038 the network bios command limit has been reached.
      57 0x0039 网路配接卡发生问题。
      58 0x003a 指定的伺服器无法执行要求的作业。
      59 0x003b 网路发生意外错误。
      60 0x003c 远端配接卡不相容。
      61 0x003d 印表机伫列已满。
      62 0x003e 伺服器的空间无法储存等候列印的档案。
      63 0x003f 等候列印的档案已经删除。
          64 0x0040 指定的网路名称无法使用。
      65 0x0041 拒绝存取网路。
      66 0x0042 网路资源类型错误。
      67 0x0043 网路名称找不到。
      68 0x0044 超过区域电脑网路配接卡的名称限制。
      69 0x0045 超过网路 bios 作业阶段的限制。
      70 0x0046 远端伺服器已经暂停或者正在起始中。
      71 0x0047 由于连线数目已达上限,此时无法再连线到这台远端电脑。
      72 0x0048 指定的印表机或磁碟装置已经暂停作用。
      80 0x0050 档案已经存在。
      82 0x0052 无法建立目录或档案。
      83 0x0053 int 24 失败
          84 0x0054 处理这项要求的储存体无法使用。
      85 0x0055 近端装置名称已经在使用中。
      86 0x0056 指定的网路密码错误。
      87 0x0057 参数错误。
      88 0x0058 网路发生资料写入错误。
      89 0x0059 此时系统无法执行其他行程。
      100 0x0064 无法建立其他的系统 semaphore。
      101 0x0065 属于其他行程专用的 semaphore 。
      102 0x0066 semaphore 已经设定,而且无法关闭。
      103 0x0067 无法指定 semaphore 。
      104 0x0068 在岔断时间无法要求专用的 semaphore 。
      105 0x0069 此 semaphore 先前的拥有权已经结束。
      106 0x006a 请将磁片插入 %1。
      107 0x006b 因为代用的磁片尚未插入,所以程式已经停止。
      108 0x006c 磁碟正在使用中或被锁定。
      109 0x006d pipe 已经中止。
      110 0x006e 系统无法开启指定的 装置或档案。
      111 0x006f 档名太长。
      112 0x0070 磁碟空间不足。

      113 0x0071 没有可用的内部档案识别字。
      114 0x0072 目标内部档案识别字不正确。
      117 0x0075 由应用程式所执行的 ioctl 呼叫 不正确。
      118 0x0076 写入验证参数值不正确。
      119 0x0077 系统不支援所要求的指令。
      120 0x0078 此项功能仅在 win32 模式有效。
      121 0x0079 semaphore 超过逾时期间。
      122 0x007a 传到系统呼叫的资料区域 太小。
      123 0x007b 档名、目录名称或储存体标签语法错误。
      124 0x007c 系统呼叫层次不正确。
      125 0x007d 磁碟没有设定标签。
      126 0x007e 找不到指定的模组。
      127 0x007f 找不到指定的程序。
      128 0x0080 没有子行程可供等待。
      129 0x0081 %1 这个应用程式无法在 win32 模式下执行。
          130 0x0082 attempt to use a file handle to an open disk partition for an operation other than raw disk i/o.
      131 0x0083 尝试将档案指标移至档案开头之前。
      132 0x0084 无法在指定的装置或档案,设定档案指标。
      133 0x0085 join 或 subst 指令 无法用于 内含事先结合过的磁碟机。
      134 0x0086 尝试在已经结合的磁碟机,使用 join 或 subst 指令。
      135 0x0087 尝试在已经替换的磁碟机,使 用 join 或 subst 指令。
      136 0x0088 系统尝试删除 未连结过的磁碟机的连结关系。
      137 0x0089 系统尝试删除 未替换过的磁碟机的替换关系。
      138 0x008a 系统尝试将磁碟机结合到已经结合过之磁碟机的目录。
      139 0x008b 系统尝试将磁碟机替换成已经替换过之磁碟机的目录。
      140 0x008c 系统尝试将磁碟机替换成已经替换过之磁碟机的目录。
      141 0x008d 系统尝试将磁碟机 subst 成已结合的磁碟机 目录。
      142 0x008e 系统此刻无法执行 join 或 subst。
      143 0x008f 系统无法将磁碟机结合或替换同一磁碟机下目录。
      144 0x0090 这个目录不是根目录的子目录。
      145 0x0091 目录仍有资料。
      146 0x0092 指定的路径已经被替换过。
      147 0x0093 资源不足,无法处理这项 指令。
      148 0x0094 指定的路径这时候无法使用。
      149 0x0095 尝试要结合或替换的磁碟机目录,是已经替换过的的目标。
      150 0x0096 config.sys 档未指定系统追踪资讯,或是追踪功能被取消。
      151 0x0097 指定的 semaphore事件 dosmuxsemwait 数目不正确。
      152 0x0098 dosmuxsemwait 没有执行;设定太多的 semaphore。
      153 0x0099 dosmuxsemwait 清单不正确。
      154 0x009a 您所输入的储存媒体标 元长度限制。
          155 0x009b 无法建立其他的执行绪。
      156 0x009c 接收行程拒绝接受信号。
      157 0x009d 区段已经被舍弃,无法被锁定。
      158 0x009e 区段已经解除锁定。
      159 0x009f 执行绪识别码的位址不正确。
      160 0x00a0 传到 dosexecpgm 的引数字串不正确。
      161 0x00a1 指定的路径不正确。
      162 0x00a2 信号等候处理。
      164 0x00a4 系统无法建立执行绪。
      167 0x00a7 无法锁定档案的部份范围。
      170 0x00aa 所要求的资源正在使用中。
      173 0x00ad 取消范围的锁定要求不明显。
      174 0x00ae 档案系统不支援自动变更锁定类型。
      180 0x00b4 系统发现不正确的区段号码。
      182 0x00b6 作业系统无法执行 %1。
      183 0x00b7 档案已存在,无法建立同一档案。
      186 0x00ba 传送的旗号错误。
      187 0x00bb 指定的系统旗号找不到。
      188 0x00bc 作业系统无法执行 %1。
      189 0x00bd 作业系统无法执行 %1。
      190 0x00be 作业系统无法执行 %1。
      191 0x00bf 无法在 win32 模式下执行 %1。
      192 0x00c0 作业系统无法执行 %1。
      193 0x00c1 %1 不是正确的 win32 应用程式。
      194 0x00c2 作业系统无法执行 %1。
      195 0x00c3 作业系统无法执行 %1。
      196 0x00c4 作业系统无法执行 这个应用程式。
      197 0x00c5 作业系统目前无法执行 这个应用程式。
      198 0x00c6 作业系统无法执行 %1。
      199 0x00c7 作业系统无法执行 这个应用程式。
      200 0x00c8 程式码的区段不可以大于或等于 64kb。
      201 0x00c9 作业系统无法执行 %1。
      202 0x00ca 作业系统无法执行 %1。
      203 0x00cb 系统找不到输入的环境选项。
      205 0x00cd 在指令子目录下,没有任何行程有信号副处理程式。
      206 0x00ce 档案名称或副档名太长。
      207 0x00cf ring 2 堆叠使用中。
          208 0x00d0 输入的通用档名字元 * 或 ? 不正确, 或指定太多的通用档名字元。
      209 0x00d1 所传送的信号不正确。
      210 0x00d2 无法设定信号处理程式。
      212 0x00d4 区段被锁定,而且无法重新配置。
      214 0x00d6 附加到此程式或动态连结模组的动态连结模组太多。
      215 0x00d7 can’’’’’’’’t nest calls to loadmodule.
      230 0x00e6 the pipe state is invalid.
      231 0x00e7 所有的 pipe instances 都在忙碌中。
      232 0x00e8 the pipe is being closed.
      233 0x00e9 no process is on the other end of the pipe.
      234 0x00ea 有更多可用的资料。
      240 0x00f0 作业阶段被取消。
      254 0x00fe 指定的延伸属性名称无效。
      255 0x00ff 延伸的属性不一致。
      259 0x0103 没有可用的资料。
      266 0x010a 无法使用 copy api。
      267 0x010b 目录名称错误。
      275 0x0113 延伸属性不适用于缓冲区。
      276 0x0114 在外挂的档案系统上的延伸属性档案已经毁损。
      277 0x0115 延伸属性表格档满。
      278 0x0116 指定的延伸属性代码无效。
      282 0x011a 外挂的这个档案系统不支援延伸属性。
      288 0x0120 意图释放不属于叫用者的 mutex。
      298 0x012a semaphore 传送次数过多。
      299 0x012b 只完成 read/writeprocessmemory 的部份要求。
      317 0x013d 系统找不到位于讯息档 %2 中编号为 0x%1 的讯息。
      487 0x01e7 尝试存取无效的位址。
      534 0x0216 运算结果超过 32 位元。
      535 0x0217 通道的另一端有一个行程在接送资料。
      536 0x0218 等候行程来开启通道的另一端。
      994 0x03e2 存取延伸的属性被拒。
      995 0x03e3 由于执行绪结束或应用程式要求,而异常终止 i/o 作业。
      996 0x03e4 重叠的 i/o 事件不是设定成通知状态。
      997 0x03e5 正在处理重叠的 i/o 作业。
          998 0x03e6 对记忆体位置的无效存取。
      999 0x03e7 执行 inpage 作业发生错误。
      1001 0x03e9 递回太深,堆叠满溢。
      1002 0x03ea 视窗无法用来传送讯息。
      1003 0x03eb 无法完成这项功能。
      1004 0x03ec 旗号无效。
      1005 0x03ed 储存媒体未含任何可辨识的档案系统。 请确定以载入所需的系统驱动程式,而且该储存媒体并未毁损。
      1006 0x03ee 储存该档案的外部媒体发出警告, 表示该已开启档案已经无效。
      1007 0x03ef 所要求的作业无法在全萤幕模式下执行。
      1008 0x03f0 an attempt was made to reference a token that does not exist.
      1009 0x03f1 组态系统登录资料库毁损。
      1010 0x03f2 组态系统登录机码无效。
      1011 0x03f3 无法开启组态系统登录机码。
      1012 0x03f4 无法读取组态系统登录机码。
      1013 0x03f5 无法写入组态系统登录机码。
      1014 0x03f6 系统登录资料库中的一个档案必须使用记录或其他备份还原。 已经还原成功。
      1015 0x03f7 系统登录毁损。其中某个档案毁损、或者该档案的 系统映对记忆体 内容毁损、会是档案无法复原。
      1016 0x03f8 系统登录起始的 i/o 作业发生无法复原的错误。 系统登录无法读入、写出或更新,其中的一个档案 内含系统登录在记忆体中的内容。
      1017 0x03f9 系统尝试将档案载入系统登录或将档案还原到系统登录中, 但是,指定档案的格式不是系统登录档的格式。
      1018 0x03fa 尝试在标示为删除的系统登录机码,执行不合法的操作。
      1019 0x03fb 系统无法配置系统登录记录所需的空间。
      1020 0x03fc 无法在已经有子机码或数值的系统登录机码建立符号连结。
      1021 0x03fd 无法在临时机码下建立永久的子机码。
      1022 0x03fe 变更要求的通知完成,但资讯 并未透过呼叫者的缓冲区传回。呼叫者现在需要自行列举档案,找出变更的地方。
      1051 0x041b 停止控制已经传送给其他服务 所依峙的一个服务。
      1052 0x041c 要求的控制对此服务无效
      1053 0x041d the service did not respond to the start or control request in a timely fashion.
      1054 0x041e 无法建立服务的执行绪。
      1055 0x041f 服务资料库被锁定。
      1056 0x0420 这种服务已经在执行。
      1057 0x0421 帐户名称错误或者不存在。
      1058 0x0422 指定的服务暂停作用,无法启动。
      1059 0x0423 指定循环服务从属关系。
      1060 0x0424 指定的服务不是安装进来的服务。
      1061 0x0425 该服务项目此时无法接收控制讯息。
      1062 0x0426 服务尚未启动。     
          1063 0x0427 无法连线到服务控制程式
  • shift键妙用集锦(很实用哦)

    2007-03-30 19:37:45

    一 当你用QQ和别人聊天时,是不是有时信息发送的特别慢呀,不要紧,只要你发信息时按shift 键信息就会很快的发送出去的!
    二 当你面对一大堆窗口,却要一个一个把它们关掉时。是不是很烦啊。只要你按shift 键在单击关闭按扭,所有的与之相关的父窗口就都会被关掉

    三 在输入大小写字母时,按shift 键,就可以改变其大小写!

    四 当安装了某个新软件,有时要从新启动计算机才有用,只要先按shift 键,就可以跳过计算机的自检节省了大量的时间! ﹙這個只適用於windows 95及98﹚

    五 选择文件时,先按shift 键,在选最后一个文件,可以选中一大批。

    六 删除文件时,按shift 键可以直接删除。不经过回收站。

    七 放光碟时,连按数下shift 键,可以跳过自动播放!

    八 按shift 键+F10可以代替鼠标右键。

    九 打开文件时,如果你不想用默认方式打开,按shift 键,在单击右键,在右边的菜单上就多出了打开方式下面的你就自己去做吧!

    十 按shift 键,点击超级连接,可以打开新窗口。

    十一 开机后按住shift可以阻止启动菜单中的程序运行

  • LoadRunner 脚本中做关联 (Correlation)

    2007-03-12 11:53:00

    LoadRunner 脚本中做关联 (Correlation)

     <P>如何在 LoadRunner 脚本中做关联 (Correlation)<BR>当录制脚本时,VuGen会拦截client端(浏览器)与server端(网站服务器)之间的对话,并且通通记录下来,产生脚本。在VuGen的Recording Log中,您可以找到浏览器与服务器之间所有的对话,包含通讯内容、日期、时间、浏览器的请求、服务器的响应内容等等。脚本和Recording Log最大的差别在于,脚本只记录了client端要对server端所说的话,而Recording Log则是完整纪录二者的对话。<BR>&nbsp;<BR>当执行脚本时,您可以把VuGen想象成是一个演员,它伪装成浏览器,然后根据脚本,把当初真的浏览器所说过的话,再对网站伺服器重新说一遍,VuGen企图骗过服务器,让服务器以为它就是当初的浏览器,然后把网站内容传送给VuGen。<BR>所以纪录在脚本中要跟服务器所说的话,完全与当初录制时所说的一样,是写死的(hard-coded)。这样的作法在遇到有些比较聪明的服务器时,还是会失效。这时就需要透过「关联(correlation)」的做法来让VuGen可以再次成功地骗过服务器。<BR>何谓关联(correlation)?<BR>所谓的关联(correlation)就是把脚本中某些写死的(hard-coded)数据,转变成是撷取自服务器所送的、动态的、每次都不一样的数据。<BR>举一个常见的例子,刚刚提到有些比较聪明的服务器,这些服务器在每个浏览器第一次跟它要数据时,都会在数据中夹带一个唯一的辨识码,接下来就会利用这个辨识码来辨识跟它要数据的是不是同一个浏览器。一般称这个辨识码为Session ID。对于每个新的交易,服务器都会产生新的Session ID给浏览器。这也就是为什么执行脚本会失败的原因,因为VuGen还是用旧的Session ID向服务器要数据,服务器会发现这个Session ID是失效的或是它根本不认识这个Session ID,当然就不会传送正确的网页数据给VuGen了。<BR>下面的图示说明了这样的情形:<BR>当录制脚本时,浏览器送出网页A的请求,服务器将网页A的内容传送给浏览器,并且夹带了一个ID=123的数据,当浏览器再送出网页B的情求时,这时就要用到ID=123的数据,服务器才会认为这是合法的请求,并且把网页B的内容送回给浏览器。<BR>在执行脚本时会发生什么状况?浏览器再送出网页B的请求时,用的还是当初录制的ID=123的数据,而不是用服务器新给的ID=456,整个脚本的执行就会失败。<BR>&nbsp;<BR>要对付这种服务器,我们必须想办法找出这个Session ID到底是什么、位于何处,然后把它撷取下来,放到某个参数中,并且取代掉脚本中有用到Session ID的部份,这样就可以成功骗过服务器,正确地完成整个交易了。<BR>哪些错误代表着我应该做关联(correlation)?<BR>假如脚本需要关联(correlation),在还没做之前是不会执行通过的,也就是说会有错误讯息发生。不过,很不幸地,并没有任何特定的错误讯息是和关联(correlation)有关系的。会出现什么错误讯息,与系统实做的错误处理机制有关。错误讯息有可能会提醒您要重新登入,但是也有可能直接就显示HTTP 404的错误讯息。<BR>要如何做关联(correlation)?<BR>关联(correlation)函数<BR>关联(correlation)会用到下列的函数:<BR>?&nbsp;web_reg_save_param:这是最新版,也是最常用来做关联(correlation)的函数。<BR>语法:<BR>web_reg_save_param ( “Parameter Name” , &lt; list of Attributes &gt;, LAST ); <BR>?&nbsp;web_create_html_param、web_create_html_param_ex:这二个函数主要是保留作为向前兼容的目的的。建议使用 web_reg_save_param 函数。 <BR>详细用法请参考使用手册。在VuGen中点选【Help】&gt;【Function reference】&gt;【Contexts】&gt;【Web and Wireless Vuser Functions】&gt;【Correlation Functions】。<BR>如何找出要关联(correlation)数据<BR>简单的说,每一次执行时都会变动的值,就有可能需要做关联(correlation)。<BR>VuGen提供二种方式帮助您找出需要做关联(correlation)的值:<BR>1.&nbsp;自动关联 <BR>2.&nbsp;手动关联 <BR>自动关联<BR>VuGen内建自动关联引擎(auto-correlation engine),可以自动找出需要关联的值,并且自动使用关联函数建立关联。<BR>自动关联提供下列二种机制:<BR>?&nbsp;Rules Correlation:在录制过程中VuGen会根据订定的规则,实时自动找出要关联的值。规则来源有两种: <BR>o&nbsp;内建(Built-in Correlation):<BR>VuGen已经针对常用的一些应用系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,内建关联规则,这些应用系统可能会有一种以上的关联规则。您可以在【Recording Options】&gt;【Internet Protocol】&gt;【Correlation】中启用关联规则,则当录制这些应用系统的脚本时,VuGen会在脚本中自动建立关联。<BR>您也可以在【Recording Options】&gt;【Internet Protocol】&gt;【Correlation】检视每个关联规则的定义。 <BR>o&nbsp;使用者自订(User-defined Rules Correlation):<BR>除了内建的关联规则之外,使用者也可以自订关联规则。您可以在【Recording Options】&gt;【Internet Protocol】&gt;【Correlation】建立新的关联规则。 <BR>?&nbsp;Correlation Studio:有别于Rules Correlation,Correlation Studio则是在执行脚本后才会建立关联,也就是说当录制完脚本后,脚本至少须被执行过一次,Correlation Studio才会作用。Correlation Studio会尝试找出录制时与执行时,服务器响应内容的差异部分,藉以找出需要关联的数据,并建立关联。 <BR>Rule Correlation<BR>请依照以下步骤使用Rule Correlation:<BR>1.&nbsp;启用auto-correlation <BR>1.&nbsp;点选VuGen的【Tools】&gt;【Recording Options】,开启【Recording Options】对话窗口,选取【Internet Protocol】&gt;【Correlation】,勾选【Enable correlation during recording】,以启用自动关联。 <BR>2.&nbsp;假如录制的应用系统属于内建关联规则的系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,请勾选相对应的应用系统。 <BR>3.&nbsp;或者也可以针对录制的应用系统加入新的关联规则,此即为使用者自订的关联规则。 <BR>4.&nbsp;设定当VuGen侦测到符合关联规则的数据时,要如何处理: <BR>?&nbsp;【Issue a pop-up message and let me decide online】:跳出一个讯息对话窗口,询问您是否要建立关联。 <BR>?&nbsp;【Perform correlation in sceipt】:直接自动建立关联 <BR>2.&nbsp;录制脚本<BR>开始录制脚本,在录制过程中,当VuGen侦测到符合关联规则的数据时,会依照设定建立关联,您会在脚本中看到类似以下的脚本,此为BroadVision应用系统建立关联的例子,在脚本批注部分可以看到关联前的数据为何。 <BR>&nbsp;<BR>3.&nbsp;执行脚本验证关联是OK的。<BR>Correlation Studio<BR>当录制的应用系统不属于VuGen预设支持的应用系统时,Rule Correlation可能既无法发挥作用,这时可以利用Correlation Studio来做关联。<BR>Correlation Studio会尝试找出录制时与执行时,服务器响应内容的差异部分,藉以找出需要关联的数据,并建立关联。<BR>使用Correlation Studio的步骤如下:<BR>1.&nbsp;录制脚本并执行 <BR>2.&nbsp;执行完毕后,VuGen会跳出下面的【Scan Action for Correlation】窗口,询问您是否要扫描脚本并建立关联,按下【Yes】按钮。<BR>&nbsp;<BR>3.&nbsp;扫描完后,可以在脚本下方的【Correlation Results】中看到扫描的结果。<BR>&nbsp;<BR>4.&nbsp;检查一下扫瞄的结果后,选择要做关联的数据,然后按下【Correlate】按钮,一笔一笔做,或是按下【Correlate All】让VuGen一次就对所有的数据建立关联。<BR>注意:由于Correlation Studio会找出所有有变动的数据,但是并不是所有的数据都需要做关联,所以不建议您直接用【Correlate All】。 <BR>5.&nbsp;一般来说,您必须一直重复步骤1~4直到所有需要做关联的数据都找出来为止。因为有时前面的关联还没做好之前,将无法执行到后面需要做关联的部份。 <BR>有可能有些需要做关联的动态数据,连Correlation Studio都无法侦测出来,这时您就需要自行做手动关联了。<BR>手动关联<BR>手动关联的执行过程大致如下:<BR>1.&nbsp;使用相同的业务流程与数据,录制二份脚本 <BR>2.&nbsp;使用WinDiff工具协助找出需要关联的数据 <BR>3.&nbsp;使用web_reg_save_param函数手动建立关联 <BR>4.&nbsp;将脚本中有用到关联的数据,以参数取代 <BR>接下来将详细的说明如何执行每个步骤<BR>使用相同的业务流程与数据,录制二份脚本<BR>1.&nbsp;先录制一份脚本并存档。 <BR>2.&nbsp;依照相同的操作步骤与数据录制第二份脚本并存盘。注意,所有的步骤和输入的数据一定都要一样,这样才能找出由服务器端产生的动态数据。 <BR>有时候会遇到真的无法使用相同的输入数据,那您也要记住您使用的输入数据,到时才能判断是您输入的数据,还是变动的数据。<BR>使用WinDiff工具协助找出需要关联的数据<BR>1.&nbsp;在第二份脚本中,点选VuGen的【Tools】&gt;【Compare with Vuser…】,并选择第一份脚本。 <BR>2.&nbsp;接着WinDiff会开启,同时显示二份脚本,并显示有差异的地方。WinDiff会以一整行黄色标示有差异的脚本,并且以红色的字体显示真正差异的文字。(假如没看到红色字体,请点选【Options】&gt;【View】&gt;【Show Inline Differences】)。 <BR>3.&nbsp;逐一检视二份脚本中差异的部份,每一个差异都可能是需要做关联的地方。选取差异的脚本,然后复制。<BR>在复制时,有时并不需要取整行脚本,可能只会选取脚本中的一部分。<BR>注意:请忽略lr_thik_time的差异部份,因为lr_thik_time是用来模拟每个步骤之间使用者思考延迟的时间。<BR>&nbsp;<BR>4.&nbsp;接着要在Recording Log(单一protocol)或是Generation Log(多重protocol)中找这个值。将鼠标光标点到Recording Log的第一行开头,按下Ctrl+F,开启【Find】窗口,贴上刚刚复制的脚本,找出在Recording Log第一次出现的位置。<BR>&nbsp;<BR>结果会有二种: <BR>o&nbsp;在Recording Log中找不到要找的数据,这时请先确认您找对了脚本,毕竟现在开启了二个几乎一样的脚本,很容易弄错。 <BR>o&nbsp;在Recording Log中找到了要找的数据,这时要确认数据是从服务器端传送过来的。首先可以先检查数据的标头,从标头的Receiving response可以知道数据是从服务器端传送到client端的。假如此数据第一次出现是在Sending request中,则表示此数据是由client端产生,不需要做关联,但是有可能需要做参数化(parameterized)。<BR>您要找的标头格式如下:<BR>*** [tid=b9 Action1 2] Receiving response from host astra.merc-int.com:80 ( 25/11/2002 12:04:00 )<BR>&nbsp;<BR>5.&nbsp;现在您已经找到录制二次都不一样,而且是由服务器所产生的动态数据了,而此数据极有可能需要做关联。<BR>使用web_reg_save_param函数手动建立关联<BR>在找到是由服务器所产生的动态数据之后,接下来要做的就是找出适当的位置,使用web_reg_save_param函数,将这个动态数据撷取到某个参数中。<BR>1.&nbsp;要在哪里使用web_reg_save_param函数?<BR>在之前的步骤,我们已经在Execution Log找到可能需要关联的动态数据。在Execution Log中选取动态数据前的文字然后复制,我们将会利用这段文字,来帮助我们找出要关联的动态数据。<BR>&nbsp;<BR>不过在这之前我们要先找出使用web_reg_save_param函数的正确位置,所以我们要再重新执行一遍脚本,而且这次会开启所有的Log。 <BR>1.&nbsp;在VuGen中点选【Vuser】&gt;【Run-Time Settings】。 <BR>2.&nbsp;点选【General】&gt;【Log】。 <BR>3.&nbsp;勾选【Enable logging】、【Always sends messages】、【Extended log】,以及【Extended log】下的所有选项。 <BR>4.&nbsp;按下【OK】就可以执行脚本了。 <BR>执行完脚本之后,在Execution Log中搜寻刚刚复制的字符串。找到字符串后,在字符串前面会有A.tion1.c(7),这个7就是到时候要插入web_reg_save_param函数的位置,也就是要插入到脚本的第7行。<BR>在脚本的第7行前插入一行空白行,然后输入<BR>web_reg_save_param(“UserSession”, <BR>“UserSession” 这个 “UserSession” 就是到时要使用的参数名称,建议给个有意义的名字。<BR>注意:到这里整个web_reg_save_param函数还没完成。<BR>&nbsp;<BR>2.&nbsp;找出web_reg_save_param中要用到的边界<BR>web_reg_save_param函数主要是透过动态数据的前面和后面的固定字符串,来辨识要撷取的动态数据的,所以我们还需要找出动态数据的边界字符串。 <BR>找出左边界字符串<BR>再回到Execution Log中,选取动态数据前的字符串并且复制它。<BR>这时会有个问题,到底要选取多少字符串才足以唯一识别要找的动态数据呢?建议是越多越好,但是尽量不要包含到特殊字符。<BR>在这边我们选取「input type=hidden value=」字符串。选好之后,还要再确认一次这段字符串真的是可以唯一识别的,所以我们在Execution Log中透过Ctrl+F的搜寻,找找看这段字符串是否可以找到要找的动态数据。假如找不到,web_reg_save_param函数还有个ORD参数可以使用,ORD参数可以设定出现在第几次的字符串才是要找的字符串。<BR>将这个边界字符串加到未完成的web_reg_save_param函数中:<BR>web_reg_save_param(“UserSession”, “LB= input type=hidden value=”,<BR>找出右边界字符串<BR>接下来要找出动态数据的右边界字符串,这个字符串就比较好找了,从动态数据的最后一个字符开始,通常就是我们要找的右边界字符串了。<BR>以这个例子来看,就是「&gt;」,所以再把右边界字符串加入,web_reg_save_param函数中,这时web_reg_save_param函数已经快完成了。最后再加上「LAST);」就完成整个web_reg_save_param函数了。<BR>web_reg_save_param(“UserSession”, “LB= input type=hidden value=”, “RB=&gt;”, LAST);<BR>&nbsp;<BR>将脚本中有用到关联的数据,以参数取代<BR>当使用web_reg_save_param建立参数后,接下来就是用“UserSession”参数去取代脚本中写死的(hard-coded)资料。<BR>范例:<BR>将<BR>“Name=userSession”, “Value=75893.0884568651DQADHfApHDHfcDtccpfAttcf”, ENDITEM,<BR>换成<BR>“Name=userSession”, “Value={UserSession}”, ENDITEM,<BR>&nbsp;<BR>到这里您已经完成了一个关联了,接下来就是执行脚本,是否能成功运行,假如还是有问题,就要检查看看是否还需要再做另一个关联。<BR>关于 web_reg_save_param 函数<BR>对于关联(correlation)来说,web_reg_save_param是最重要的一个函数,其功能是在下载的网页内容中,透过设定的边界字符串,找出特定的数据并将其储存在一个参数中,以供后续脚本使用。<BR>接下来将针对web_reg_save_param做比较详细的说明。<BR>Service and registration type function<BR>web_reg_save_param是一个Service function。service function主要是用来完成一些特殊的工作的,如关联、设定proxy、提供认证信息等,当其作用时,不会对网页的内容做任何的修改。<BR>web_reg_save_param同时也是一个registration type function (只要函数名称中包含_reg_的字眼,表示其为registration type function)。registration type function意味着其真正作用的时机是在下一个action function完成时执行的。举例来说,当某个web_url执行时所接收到的网页内容中包含了要做关联的动态数据,则必须将web_reg_save_param放在此web_url之前,则web_reg_save_param会在web_url执行完毕后,也就是网页内容都下载完后,再执行web_reg_save_param找寻要做关联的动态数据并建立参数。<BR>所以要记住一点,要使用registration type function时,要注意其放置的位置必须在要作用的action function之前。<BR>语法<BR>int web_reg_save_param(const char *ParamName, &lt;list of Attributes&gt;, LAST);<BR>参数说明<BR>ParamName:存放动态数据的参数名称<BR>list of Attributes:其它属性,包含 Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, 以及 SaveLen。属性值不分大小写,例如 Search=all。以下将详细说明每个属性值的意义:<BR>?&nbsp;Notfound:指定当找不到要找的动态数据时该怎么处置。 <BR>o&nbsp;Notfound=error:当找不到动态数据时,发出一个错误讯息。假如没设定此属性,此为LoadRunner的默认值。 <BR>o&nbsp;Notfound=warning:当找不到动态数据时,不发出错误讯息,只发出警告,脚本也会继续执行下去不会中断。在对角本除错时,可以使用此属性值。 <BR>?&nbsp;LB:动态数据的左边界字符串。此属性质是必须要有的,而且区分大小写。 <BR>?&nbsp;RB:动态数据的右边界字符串。此属性质是必须要有的,而且区分大小写。 <BR>?&nbsp;RelFrameID:相对于URL而言,欲搜寻的网页的Frame。此属性质可以是All或是数字,而且可有可无。 <BR>?&nbsp;Search:搜寻的范围。可以是Headers(只搜寻headers)、Body(只搜寻body部分,不搜寻header)、Noresource(只搜寻body部分,不搜寻header与resource)或是All(搜寻全部范围,此为默认值)。此属性质可有可无。 <BR>?&nbsp;ORD:指明从第几次出现的左边界开始才是要撷取的数据。此属性质可有可无,默认值是1。假如值为All,则所有找到符合的数据会储存在数组中。 <BR>?&nbsp;SaveOffset:当找到符合的动态数据时,从第几个字符开始才开始储存到参数中。此属性质不可为负数,其默认值为0。 <BR>?&nbsp;Convert:可能的值有二种: <BR>o&nbsp;HTML_TO_URL: 将HTML-encoded数据转成URL-encoded数据格式 <BR>o&nbsp;HTML_TO_TEXT:将HTML-encoded数据转成纯文字数据格式 <BR>?&nbsp;SaveLen:从offect开始算起,到指定的长度内的字符串,才储存到参数中。此参数可有可无,默认值是-1,表示储存到结尾整个字符串。<BR>范例<BR>web_reg_save_param("A", "LB/ic=&lt;a href=", "RB='&gt;", "Ord=All", LAST);nner会搜寻网页中所有以 「&lt;a href=」 开头,且以 「’&gt;」结束,当中包含的字符串,并且储存在「A」参数中。 <BR>Tips and Tricks<BR>以下提供一些关联的常见问题:<BR>?&nbsp;如何打印出参数值?<BR>lr_output_message这二个函数来做到。例如: <BR>lr_output_message(“Value Captured = %s”, lr_eval_string(“{ParameterName}”));<BR>lr_eval_string与lr_output_message函数的使用说明请参考LoadRunner Online Function Reference。<BR>?&nbsp;在脚本的data目录下找不到路制时的快照(snapshot)<BR>造成在脚本的data目录下找不到路制时的快照(snapshot)的可能原因如下: <BR>o&nbsp;脚本是由VuGen 6.02或更早的版本所录制的 <BR>o&nbsp;汇入的Action不会包含快照(snapshot)的档案 <BR>o&nbsp;脚本是储存在只读的目录下,早成VuGen无法储存执行时撷取的快照(snapshot) <BR>o&nbsp;某些步骤并不会产生快照(snapshot),如浏览某个资源 <BR>o&nbsp;快照(snapshot)功能被取消<BR>【Tools】&gt;【General options】&gt;【Correlation】tab &gt;【Save correlation information during replay】 <BR>?&nbsp;开启WinDiff时出现「File no longer available」的错误讯息<BR>WinDiff这个工具有些限制,无法开启包含空格符的目录或是脚本,所以建议命名时不要使用空格符,并且尽可能将名称取短一点。 <BR>?&nbsp;录制时突然跳出【Correlation warning】对话窗口<BR>当你有勾选自动关联的【Issue a popup message and let me decide online】选项,当VuGen发现有可能要做关联的数据时,就会跳出【Correlation warning】的窗口,询问你要做关联(Correlation in scrīpt)还是要忽略(Ignore)。<BR>另外你也可以勾选【Perform correlation in scrīpt】,让VuGen自动作关联,不会再跳出询问窗口。<BR>或是勾选【Disable correlation engine】,关闭自动关联的功能。<BR>&nbsp;<BR>?&nbsp;如何手动启动「Scan action for correlation」的功能<BR>要手动启动「Scan action for correlation」的功能,请先执行脚本一次后,点选【Vuser】&gt;【Scan Action for Correlation】。<BR>&nbsp;<BR>?&nbsp;执行完脚本后并未出现【Scan Action for Correlation】窗口<BR>要启用【Scan Action for Correlation】功能,请点选【Tools】&gt;【General options】&gt;【Correlation】tab,勾选【Show Scan for correlation popup after replay of Vuser】选项。</P>

  • 如何设计编制软件测试用例(Test Case)

    2007-03-05 20:08:16

    如何设计编制软件测试用例(Test Case

    1 . 测试用例是软件测试的核心

          软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标。每个软件产品或软件开发项目都需要有一套优秀的测试方案和测试方法。

          影响软件测试的因素很多,例如软件本身的复杂程度、开发人员(包括分析、设计、编程和测试的人)的素质、测试方法和技术的运用等等。因为有些因素是客观存在的,无法避免。有些因素则是波动的、不稳定的,例如开发队伍是流动的,有经验的走了,新人不断补充进来;一个具体的人工作也受情绪等影响,等等。如何保障软件测试质量的稳定?有了测试用例,无论是谁来测试,参照测试用例实施,都能保障测试的质量。可以把人为因素的影响减少到最小。即便最初的测试用例考虑不周全,随着测试的进行和软件版本更新,也将日趋完善。因此测试用例的设计和编制是软件测试活动中最重要的。测试用例是测试工作的指导,是软件测试的必须遵守的准则。更是软件测试质量稳定的根本保障。

    2 . 什么叫测试用例

          测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。不同类别的软件,测试用例是不同的。不同于诸如系统、工具、控制、游戏软件,管理软件的用户需求更加不统一,变化更大、更快。笔者主要从事企业管理软件的测试。因此我们的做法是把测试数据和测试脚本从测试用例中划分出来。测试用例更趋于是针对软件产品的功能、业务规则和业务处理所设计的测试方案。对软件的每个特定功能或运行操作路径的测试构成了一个个测试用例。

    3. 编制测试用例

          下面着重介绍一些编制测试用例的具体做法。

    3.1、测试用例文档
          
    编写测试用例文档应有文档模板,须符合内部的规范要求。测试用例文档将受制于测试用例管理软件的约束。

          软件产品或软件开发项目的测试用例一般以该产品的软件模块或子系统为单位,形成一个测试用例文档,但并不是绝对的。

          测试用例文档由简介和测试用例两部分组成。简介部分编制了测试目的、测试范围、定义术语、参考文档、概述等。测试用例部分逐一列示各测试用例。每个具体测试用例都将包括下列详细信息:用例编号、用例名称、测试等级、入口准则、验证步骤、期望结果(含判断标准)、出口准则、注释等。以上内容涵盖了测试用例的基本元素:测试索引,测试环境,测试输入,测试操作,预期结果,评价标准。

    3.2、测试用例的设计

          我们早期的测试用例是按功能设计用例。后来引进了路径分析法,按路径设计用例。目前演变为按功能、路径混合模式设计用例。

          按功能测试是最简捷的,按用例规约遍历测试每一功能。

          对于复杂操作的程序模块,其各功能的实施是相互影响、紧密相关、环环相扣的,可以演变出数量繁多的变化。没有严密的逻辑分析,产生遗漏是在所难免。路径分析是一个很好的方法,其最大的优点是在于可以避免漏测试。

          但路径分析法也有局限性。在一个非常简单字典维护模块就存在十余条路径。一个复杂的模块会有几十到上百条路径是不足为奇的。笔者以为这是路径分析比较合适的使用规模。若一个子系统有十余个或更多的模块,这些模块相互有关联。再采用路径分析法,其路径数量成几何级增长,达位数或更多,就无法使用了。那么子系统模块间的测试路径或测试用例还是要*传统方法来解决。这是按功能、路径混合模式设计用例的由来。

    3.3、设计测试用例

          测试用例可以分为基本事件、备选事件和异常事件。设计基本事件的用例,应该参照用例规约(或设计规格说明书),根据关联的功能、操作按路径分析法设计测试用例。而对孤立的功能则直接按功能设计测试用例。基本事件的测试用例应包含所有需要实现的需求功能,覆盖率达100%

          设计备选事件和异常事件的用例,则要复杂和困难得多。例如,字典的代码是唯一的,不允许重复。测试需要验证:字典新增程序中已存在有关字典代码的约束,若出现代码重复必须报错,并且报错文字正确。往往在设计编码阶段形成的文档对备选事件和异常事件分析描述不够详尽。而测试本身则要求验证全部非基本事件,并同时尽量发现其中的软件缺陷。

          可以采用软件测试常用的基本方法:等价类划分法、边界值分析法、错误推测法、因果图法、逻辑覆盖法等设计测试用例。视软件的不同性质采用不同的方法。如何灵活运用各种基本方法来设计完整的测试用例,并最终实现暴露隐藏的缺陷,全凭测试设计人员的丰富经验和精心设计。

    4.测试用例在软件测试中的作用

    4.1、指导测试的实施

          测试用例主要适用于集成测试、系统测试和回归测试。在实施测试时测试用例作为测试的标准,测试人员一定要按照测试用例严格按用例项目和测试步骤逐一实施测试。并对测试情况记录在测试用例管理软件中,以便自动生成测试结果文档。

          根据测试用例的测试等级,集成测试应测试那些用例,系统测试和回归测试又该测试那些用例,在设计测试用例时都已作明确规定,实施测试时测试人员不能随意作变动。

    4.2、规划测试数据的准备

          在我们的实践中测试数据是与测试用例分离的。按照测试用例配套准备一组或若干组测试原始数据,以及标准测试结果。尤其象测试报表之类数据集的正确性,按照测试用例规划准备测试数据是十分必须的。
    除正常数据之外,还必须根据测试用例设计大量边缘数据和错误数据。

    4.3、编写测试脚本的"设计规格说明书"

          为提高测试效率,软件测试已大力发展自动测试。自动测试的中心任务是编写测试脚本。如果说软件工程中软件编程必须有设计规格说明书,那么测试脚本的设计规格说明书就是测试用例。

    4.4、评估测试结果的度量基准

          完成测试实施后需要对测试结果进行评估,并且编制测试报告。判断软件测试是否完成、衡量测试质量需要一些量化的结果。例:测试覆盖率是多少、测试合格率是多少、重要测试合格率是多少,等等。以前统计基准是软件模块或功能点,显得过于粗糙。采用测试用例作度量基准更加准确、有效。

    4.5、分析缺陷的标准

          通过收集缺陷,对比测试用例和缺陷数据库,分析确证是漏测还是缺陷复现。漏测反映了测试用例的不完善,应立即补充相应测试用例,最终达到逐步完善软件质量。而已有相应测试用例,则反映实施测试或变更处理存在问题。

    5.相关问题
    5.1
    、测试用例的评审

          测试用例是软件测试的准则,但它并不是一经编制完成就成为准则。测试用例在设计编制过程中要组织同级互查。完成编制后应组织专家评审,需获得通过才可以使用。评审委员会可由项目负责人、测试、编程、分析设计等有关人员组成,也可邀请客户代表参加。

    5.2、测试用例的修改更新

          测试用例在形成文档后也还需要不断完善。主要来自三方面的缘故:第一、在测试过程中发现设计测试用例时考虑不周,需要完善;第二、在软件交付使用后反馈的软件缺陷,而缺陷又是因测试用例存在漏洞造成;第三、软件自身的新增功能以及软件版本的更新,测试用例也必须配套修改更新。一般小的修改完善可在原测试用例文档上修改,但文档要有更改记录。软件的版本升级更新,测试用例一般也应随之编制升级更新版本。

    5.3、测试用例的管理软件

    运用测试用例还需配备测试用例管理软件。它的主要功能有三个:第一、能将测试用例文档的关键内容,如编号、名称等等自动导入管理数据库,形成与测试用例文档完全对应的记录;第二、可供测试实施时及时输入测试情况;第三、最终实现自动生成测试结果文档,包含各测试度量值,测试覆盖表和测试通过或不通过的测试用例清单列表。

          有了管理软件,测试人员无论是编写每日的测试工作日志、还是出软件测试报告,都会变得轻而易举。

  • WEB测试资料

    2007-01-19 18:15:59

    关于web测试
    1页面部分
    (1) 页面清单是否完整(是否已经将所需要的页面全部都列出来了)
    (2) 页面是否显示(在不同分辨率下页面是否存在,在不同浏览器版本中页面是是否显示)
    (3) 页面在窗口中的显示是否正确、美观(在调整浏览器窗口大小时,屏幕刷新是否正确)
    (4) 页面特殊效果(如特殊字体效果、动画效果)是否显示
    (5) 页面特殊效果显示是否正确

    2 页面元素部分
    (1)页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、单选框、复选框、列表框、超连接、输入框等等)
    (2)素是否显示(元素是否存在)
    (3)页面元素是否显示正确(主要针对文字、图形、签章)
    (4)页面元素的外形、摆放位置(如按钮、列表框、核选框、输入框、超连接等)
    (5) 页面元素基本功能是否实现(如文字特效、动画特效、按钮、超连接)
    (6) 页面元素的容错性列表(如输入框、时间列表或日历)
    (7) 页面元素的容错性是否存在
    (8) 页面元素的容错性是否正确

    3 功能部分
    (1) 数据初始化是否执行
    (2) 数据初始化是否正确
    (3) 数据处理功能是否执行
    (4) 数据处理功能是否正确
    (5) 数据保存是否执行
    (6) 数据保存是否正确
    (7) 是否对其他功能有影响
    (8) 如果影响其他功能,系统能否作出正确的反应
    (9) 其他错误
    (10) 对模块的具体功能进行测试时可以列出功能模块的所有功能,进行排列组合,测试所有情况
    如:某一功能模块具有最基本的增删改查功能,则需要进行以下测试
    单项功能测试(增加、修改、查询、删除)
    增加——>增加——>增加 (连续增加测试)
    增加——>删除
    增加——>删除——>增加 (新增加的内容与删除内容一致)
    增加——>修改——>删除
    修改——>修改——>修改 (连续修改测试)
    修改——>增加 (新增加的内容与修改前内容一致)
    修改——>删除
    修改——>删除——>增加 (新增加的内容与删除内容一致)
    删除——>删除——>删除 (连续删除测试)
    (11)查询功能分为两种情况,验证操作结果。
    一、打开页面时自动显示结果,则不特别强调;
    二、需要手工操作进行查询,则每次在其他功能完成后进行。
    4 提示信息
    (1) 成功、失败提示
    (2) 操作结果提示
    (3) 确认提示
    (4) 危险操作、重要操作提示
    (5) 返回页面 提示后显示的页面
    5 容错性
    注意以下几种情况
    (1) 为空、非空
    (2) 唯一性
    (3 )字长、格式
    (4) 数字、邮政编码、金额、电话、电子邮件、ID号、密码
    (5) 日期、时间
    (6) 特殊字符 (对数据库)英文单、双引号,&符号
    6 权限部分
    功能权限: 指定用户可以使用那些功能,不能使用那些功能
    数据权限: 指定用户可以处理那些数据,不可以处理那些数据。可
    以合并到功能测试
    操作权限: 在逻辑关系上,操作前后顺序、数据处理情况。可以合
    并到功能测试
    权限变化: 可以合并到功能测试

    (1) 功能权限是否存在
    (2 )功能权限是否正确
    (3) 数据权限是否存在
    (4) 数据权限是否正确
    (5)操作权限是否存在
    (6) 操作权限是否正确
    (7) 引起权限变化的功能列表
    (8) 功能权限变化还是数据权限变化,或两者兼有
    (9) 权限变化是否正确

    7 键盘操作
    (1) Tab键的使用
    (2) 上下方向键的使用
    (3) Enter键的使用
    (4) 系统设定快捷键的使用(如果设置有快捷键)

    8 测试中还应注意的其他事项
    (6) 完整性:是否是一个整体,没有功能缺损
    (7) 易用性:使用是否方便
    (8) 一致性:类似的问题用类似的方法处理
    (9) 提示信息:提示信息是否完整、正确、详细
    (10) 帮助信息:是否提供帮助信息,帮助信息的表现形式(页面文字、提示信息、帮助文件),帮助信息是否正确、详细
    (11) 兼容性:包括操作系统兼容和应用软件兼容,可能还包括硬件兼容
    (12) 可扩展性:是否由升级的余地,是否保留了接口
    (13) 稳定性:运行所需的软硬件配置,占用资源情况,出现问题时的容错性,对数据的保护
    (14) 运行速度:运行的快慢,带宽占用情况

    有几点:
    1.功能点测试:是否满足需求所要求的功能
    2.字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度,会不会出错.
    3.字符类型检查: 在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错.
    4.标点符号检查: 输入内容包括各种标点符号,特别是空格,各种引号,回车键.看系统处理是否正确.
    5.中文字符处理: 在可以输入中文的系统输入中文,看会否出现乱码或出错.
    6.信息重复: 在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理.
    7.界面测试:界面的正确性、一致性、友好性、易用性。

    用户界面测试是从最终的使用者用户的角度来看软件,软件难以理解,不易使用就是软件缺陷。可以从以下几个方面重点来检查用户界面:
    1.易用性检查:确保软件易于理解,方便使用。
    2.一致性检查:
    a.注意系统页面的风格是否一致,如字的大小、颜色、字体要相同。
    b.提示信息的表达方式是否一致。
    c.按钮排列顺序是否一致。
    d.back, cancel等按钮跳转页面处理是否一致。
    e.各字段的名称,位置、长度、类型是否和设计文档要求一致,如Employee No和LoginName不一致。
    3.正确性检查:检查页面上的form, button, table, header, footer,提示信息,还有其他文字拼写,句子的语法等是否正确。
    4.友好性检查:
    a.提示信息是否友好.
    b.系统应该在用户执行错误的操作之前提出警告,提示信息.
    c.页面分辨率检查,在各种分辨率浏览系统检查系统界面友好性。
    5.合理性检查:做delete, update, add, cancel, back等操作后,查看信息回到的页面是否合理。
    6.检查本地化是否通过:英文版不应该有中文信息,英文翻译准确,专业。
    7.页面最大化检查:测试最大化/最小化/还原时页面是否做了对应的处理。

     

    OR:http://www.51testing.com/html/57/2011.html#top

  • 测试网

    2007-01-14 18:51:53

  • 测试工具备查

    2007-01-09 12:05:00

    测试工具备查

    1、 从测试功能上分
    (1) 单元测试
    针对不同语言,如JUNIT
    (2) 功级测试
    E—Test:功能强大,由于不是采用POST URL的方式回放脚本,所以可以支持多内码的测试数据(当然要程序支持),基本上可以应付大部分的WEB SITE。
    MI公司的WINRUNNER
    COMPUWARE的QARUN
    RATIONAL的SQA ROBOT
    (3) 压力测试
    MI公司的WINLOAD
    COMPUWARE的QALOAD
    RATIONAL的SQA LOAD
    (4) 负载测试
    LOADRUNNER
    RATIONAL VISUAL QUANTIFY
    (5) WEB测试工具
    MI公司的ASTRA系列
    RSW公司的E—TEST SUITE等
    (6) WEB系统测试工具
    WORKBENCH
    WEB APPLICATION STRESS TOOL(WAS)
    (7) 数据库测试工具
    TESTBYTES
    (8) 回归测试工具
    RATIONAL TEAM TEST
    WINRUNNER
    (9) 嵌入式测试工具
    ATTOLTESTWARE。是ATTOLTESTWARE公司的自动生成测试代码的软件测试工具,特别适用于嵌入式实时应用软件单元和通信系统测试。
    CODETEST是AppliedMicrosystemsCorp.公司的产品,是广泛应用的嵌入式软件在线测试工具。
    GammaRay。GammaRay系列产品主要包括软件逻辑分析仪GammaProfiler、可靠性评测工具GammaRET等。
    LogiScope是TeleLogic公司的工具套件,用于代码分析、软件测试、覆盖测试。
    LynxInsure++是LynxREAL-TIMESYSTEMS公司的产品,基于LynxOS的应用代码检测与分析测试工具。
    MessageMaster是ElviorLtd.公司的产品,测试嵌入式软件系统工具,向环境提供基于消息的接口。
    VectorCast是VectorSoftware.Inc公司的产品。由6个集成的部件组成,自动生成测试代码,为主机和嵌入式环境构造可执行的测试架构。
    (10) 系统性能测试工具
    Rational Performance
    (11) 页面链接测试
    Link Sleuth
    (12) 测试流程管理工具
    Test Plan Control
    (13) 测试管理工具
    TestDirector
    Rational公司的Test Manager
    Compuware公司的QADirector
    TestExpert:是Silicon Valley Networks公司产品的测试管理工具,能管理整个测试过程,从测试计划、测试例程、测试执行到测试报告。
    (14) 缺陷跟踪工具
    TrackRecord等
    (15) 其他测试工具包
    TestVectorGenerationSystem是T—VECTechnologies公司的产品。提供自动模型分析、测试生成、测试覆盖分析和测试执行的完整工具包,具有方便的用户接口和完备的文档支持。
    TestQuestPro是TestQuest公司的非插入码式的自动操纵测试工具,提供一种高效的自动检测目标系统,获取其输出性能的测试方法。
    TestWorks是SoftwareResearch.Inc公司的一整套软件测试工具,既可单独使用,也可捆绑销售使用。
    2、 从测试的方法上分:
    (1) 白盒测试工具
    白盒测试工主要有:Numega、PuRe、软件纠错工具(Rational Purify)。
    内存资源泄漏检查:
    Numega中的BounceChecher
    Rational的 Purify等
    代码覆盖率检查:
    Numega的TrueCoverage
    Rational的PureCoverage
    TeleLogic公司的LogiScope
    Macabe公司的Macabe
    代码性能检查:
    Numega的TrueTime
    Rational的Quantify等
    代码静态度量分析度量检查工具:LogiScope和Macabe等
    黑盒测试工具主要有:QACenter、SQATeamTest、Rational Visual Visual Test。
    QACenter:QACenter帮助所有测试人员创建一个快速、可重用的测试过程。这些测试工具自动帮助管理测试过程、快速分析和调试程序,包括针对回归、强度、单元、并发、集成、移植,容量和负载建立测试用例,自动执行测试和产生文档结果。QACenter主要包括以下几个模块:
    QARun:应用的功能测试工具。
    QALoad:强负载下应用的性能测试工具。
    QADirector:测试的组织设计和创建以及管理工具。
    TrackRecord:集成的缺陷跟踪管理工具。
    EcoTools:高层次的性能监测工具。


    3、部分具体测试工具的介绍
    (1)、性能优化工具EcoScope
    EcoScope是一套定位于应用(即服务提供者本身)及其所依赖的所有网络计算资源的解决方案。EcoScope可以提供应用视图,并标出应用是如何与基础架构相关联的。这种视图是其他网络管理工具所不能提供的。EcoScope能解决在大型企业复杂环境下分析与测量应用性能的难题。通过提供应用的性能级别及其支撑架构的信息,EcoScope能帮助IT部门就如何提高应用性能提出多方面的决策方案。
    EcoScope的应用主要表现在以下几个方面:
    确保成功部署新应用
    维护性能的服务水平
    加速问题检测与纠正的高级功能
    定制视图有助于高效地分析数据
    (2)、数据库测试数据自动生成工具——TestBytes
    在数据库开发的过程中,为了测试应用程序对数据库的访问,应当在数据库中生成测试用例数据,我们可能会发现当数据库中只有少量数据时,程序可能没有问题,但是当真正投入到运用中产生了大量数据时就出现问题了,这往往是因为程序的编写没有达到,所以一定及早地通过在数据库中生成大量数据来帮助开发人员完善这部分功能和性能。
    TestBytes是一个用于自动生成测试数据的强大易用的工具,通过简单的点击式操作,就可以确定需要生成的数据类型(包括特殊字符的定制),并通过与数据库的连接来自动生成数百万行正确的测试数据,可以极大地提高数据库开发人员、QA测试人员、数据仓库开发人员、应用开发人员的工作效率。
    (3)、PC—LINT
    PC—LINT 主要进行更严格的语法检查功能,还完成相当程度的语义检查功能。可以这样认为:PC—LINT是一个更加智能、更加严格的编译器。PC—LINT在实现语法和某些语义规则检查时,是通过参数配置完成的,它的选项就有数百个之多,因此,在使用PC—LINT过程中,了解选项的含义也很重要。
    (4)、TCL
    TCL是Tool Command Language的缩写,它是一种很流行的脚本解释器,尤其在测试领域,它的最大特点是可移植性好,接口简单,方便,可以很容易地嵌入到软件中,作为自己的解释器使用。
    TCL提供两种接口:编程接口和用户接口。编程接口是通过LIB或DLL形式提供的,提供了一些函数(命令)供调用,包括:分配一个解释器指针(对象);初始化解释器(指针);注册扩展函数等。用户接口很简单,即编写的脚本,脚本里面包含对扩展命令的调用。
    (5)VB测试工具:VB Watch
    (6)Java 程序的测试工具
    1)Bean—Test
    2)EJBQuickTest
    3)JStyle
    4)JTest
    5)HttpUnit
    6)JUnit
    (7)、覆盖测试
    C—Cover
    C—Cover是一个测试工具软件,用来找出没有被测到的代码,并报告测试的覆盖率。C—Cover
    只支持C/C++的代码覆盖率分析,其它语言不支持。但不受OS的限制。
    ===============================================
    单元测试方面:(对开发人员比较有用) J-Unit工具。
      功能测试方面:E-test是个不错的选择,功能很强大,由于不是采用Post URL的方式回放脚本,所以可以支持多内码的测试数据(当然要程序支持)。基本上可以应付大部分的Web Site。
      如果只是利用脚本回放代替手工劳动,或者做对页面响应数的性能测试,Microsoft Web Application Stress Tool是个不错的选择。
      另外,在性能测试方面,PureLoad也是一个不错的工具,完全用Java写成,可以测试各种C/S程序, 如SMTP Server等。 这两个工具都是使用Post URL的方法测试Web Application的。对大量使用Javascrīpt的页面不太适合。 当然,如果程序在Unix,linux下面运行的话,可以直接编写Shell脚本程序,更加方便。
      另外,还有很多专门的工具,比如说Linkbot是专门作页面链接测试的。
      另外,测试流程管理工具也有不少,个人用过也一直在用的是Test Plan Control,短小精悍,不错。   至于WinRunner和LoadRunner之类,因为没有License,所以都没怎么用过,惭愧。不过我看过一篇英国人评价英国测试市场上最流行的五个软件的文章。WinRunner得分最高。
      测试工具从测试的方法上可以分为两种:白盒测试和黑盒测试   白盒测试工具主要有:
      内存资源泄漏检查:Numega中的bouncechecker,Rational的Purify等
      代码覆盖率检查:Numega中的truecoverage,Rational的Purecoverage,Telelogic公司的logiscope, Macabe公司的Macabe等   代码性能检查:Numega中的truetime,Rational的Quantify等
      代码静态度量分析质量检查工具:logiscope和Macabe等
      黑盒测试工具主要有:   客户端功能测试:MI公司的winrunner,compuware的qarun,Rational的SQA robot等等
      服务器端压力性能测试: MI公司的winload,compuware的qaload,Rational的SQA load等等
      Web测试工具:MI公司的Astra系列,rsw公司的e-test suite等等
      测试管理工具:rational的test manager,compuware的qadirector等等,此外还有缺陷跟踪工具 trackrecord等。
      数据库测试工具:TestBytes
      黑盒测试工具:QACenter、SQATeamTest,Rational Viaual Test。
      回归测试工具:Rational TeamTest,WinRunner(MI公司)
      WEB系统测试工具:TEST,Workberch,Web Appication Stress Tool(WAS)
      白盒测试工具:Numega 、PuRe、软件纠错工具(Rational Purity)。
      嵌入式测试工具:Logiscope(静态测试工具)、CodeTest。
      系统负荷测试工具:RationalPerformance
      涵盖测试工具范围评估工具
      软件性能测试工具:LoadRunner(MI产品)、Rational Visual Qantify
      测试管理工具:TestDirector(MI产品支持整个生命周期中测试流程管理)

  • 耐心

    2007-01-08 17:13:25

       有的老板在招聘软件测试人员的时候会有一种想法,这种事女的做比较合适吧?这种想法的确违反了"男女平等"的宗旨,但实际上也体现了测试工作的一个要求,耐心.

       毕竟软件中还是正确的地方比bug多,所以我们需要瞪大了眼睛去找bug,这需要耐心;发现bug后,我们反复尝试去甄别导致这个bug的真实原因,这需要耐心;我们写一个清晰、完整的bug报告,这也需要耐心;发现不了bug不灰心,发现了bug不埋怨、不小瞧开发人员,着需要耐心;bug被修正后,测试人员要去验证,确认问题是否真的得到解决,这需要耐心.

       所以做软件测试的你请保持耐心!!

  • 软件测试部分中英文对照.doc

    2006-12-29 15:55:23

    Acceptance testing  验收测试   Accessibility test    软体适用性测试
    Ad hoc testing     随机测试    Algorithm analysis  算法分析
    Alpha testing      α测试      Anomaly          异常       
    Artifact          工件        Automated Testing   自动化测试 
    Architecture       构架        Assertion checking  断言检查  
    Audit             审计       Application under test (AUT)  所测试的应用程序

    Baseline         基线       Behaviour          行为
    Benchmark       基准       Beta testing        β测试
    Best practise      最佳实践   Black box testing    黑盒测试
    Blocking bug     阻碍性错误 Bottom-up testing    自底向上测试
    Branch coverage   分支覆盖   Brute force testing   强力测试
    Bug             错误       Bug report         错误报告
    Bug tracking system 错误跟踪系统Build          工作版本(内部小版本)
    Boundary values   边界值     Buddy test        合伙测试
    Buffer           缓冲       Bug bash         错误大扫除
    Build-in         内置       Build Verfication tests(BVTs)   版本验证测试

    Cause-effect graph 因果图     Capture/Replay Tool 捕获/回放工具
    Character Set    字符集      Capability Maturity Model (CMM)   能力成熟度模型
    Capability Maturity Model Integration (CMMI) 能力成熟度模型整合
    Closeout        收尾        Code coverage      代码覆盖
    Code page      代码页       Code rule          编码规范
    Code sytle      编码风格     Common sense     常识
    Compatibility Testing兼容性测试Component testing  组件测试
    Condition coverage  条件覆盖  Configuration testing 配置测试
    Control flow graph  控制流程图Concurrency user   并发用户
    Configuration item  配置项    Core team         核心小组
    Customer-focused mindset 客户为中心的理念体系
    Crash         崩溃          Criticality analysis  致命度分析
    Cyclomatic complexity   圈复杂度

    Data Flow Analysis 数据流分析 Decision coverag   判定覆盖
    Debug         调试         Defect            缺陷
    defect density   缺陷密度     Deployment       部署
    Desk checking  桌前检查     Dynamic analysis   动态分析

    Entry criteria   准入条件     Equivalence class   等价类
    Equivalence partition testing 等价划分测试Error   错误
    Error guessing  错误猜测     Error seeding      错误播种
    Exception     异常/例外     Exception handlers  异常处理器
    Exhaustive testing 穷尽测试   Exploratory testing  探索性测试
    Event-driven   事件驱动     Envisioning Phase   构想阶段

    Failure        失效         Fault             故障
    Field testing   现场测试     Framework        框架
    Functional testing功能测试

    Hard-coding      硬编码     Hotfix           热补丁

    G11N(Globalization) 全球化   Gap analysis      差距分析
    Garbage characters 乱码字符   Glossary         术语表
    Glass-box testing  白箱测试或白盒测试
    GUI(Graphical User Interface) 图形用户界面

    I18N(Internationalization)国际化Incremental testing 渐增测试
    Installing testing  安装测试    Integration testing  集成测试
    Interface        接口        Inspection         审查
    Issue           问题        Iteration          迭代
    Iterative development 迭代开发

    Key concepts     关键概念    Key Process Area 关键过程区域
    Keyword driven testing 关键字驱动测试
    Kick-off meeting  启动会议  

    Lag time         延迟时间   Lead time       前置时间    
    L10N(Localization) 本地化    Localizability testing本地化能力测试
    Localization testing  本地化测试Load testing      负载测试

    Maintenance     维护         Maintainability    可维护性
    Master project schedule总体项目方案Measurement  度量
    Memory leak     内存泄漏     Migration testing   迁移测试
    Milestone        里程碑       Mock up         模型,原型
    Monkey testing   跳跃式测试    Module testing    模块测试

    Negative Testing  逆向测试, 反向测试, 负面测试
    N/A(Not applicable) 不适用的

    Off-the-shelf software 套装软件

    Pair Programming 成对编程      Path coverage    路径覆盖
    Peer review      同行评审      Performance     性能
    Performance indicator 性能(绩效)指标
    Performance testing   性能测试   Pilot           试验
    Pilot testing      引导测试      Portability      可移植性
    Positive testing   正向测试      Postcondition    后置条件
    Pseudo code     伪代码        Precondition     前提条件
    Priority         优先权        Prototype       原型
    Quality assurance(QA) 质量保证  Quality Control(QC) 质量控制

    Recovery testing  恢复测试      Refactoring     重构
    Regression testing 回归测试      Release        发布
    Release note     版本说明       Reliability      可靠性
    Return of Investment(ROI)  投资回报率
    Review         评审          Requirements-based testing 基于需求的测试
    Requirements management tool   需求管理工具
    Risk assessment  风险评估      Root Cause Analysis(RCA)  根本原因分析
    Robustness      强健性       
    Sanity testing    健全测试       Screen shot     抓屏、截图    
    Severity        严重性         Security testing  安全性测试    
    Shipment      发布            Smoke testing   冒烟测试      
    Software life cycle  软件生命周期Software development plan(SDP) 软件开发计划
    Static testing     静态测试      Simulation     模拟
    Simulator       模拟器         SLA(Service level agreement)  服务级别协议
    Software development process  软件开发过程
    Source code     源代码         Specification   规格说明书
    Spiral model    螺旋模型       Statement coverage 语句覆盖
    Stepwise refinement 逐步优化    Stress Testing   压力测试
    Structural coverage  结构化覆盖  Stub          桩
    Synchronization 同步            Syntax testing  语法分析
    System analysis 系统分析        System design  系统设计
    System integration系统集成      System Testing  系统测试

    Test           测试           Testing bed     测试平台
    Test case       测试用例       Testing coverage 测试覆盖
    Test design     测试设计       Test driver      测试驱动
    Testing environment 测试环境   Test infrastructure测试基础建设
    Testing item    测试项         Testing plan     测试计划
    Testing procedure测试过程      Test scenario    测试场景
    Test scrīpt      测试脚本      Test strategy     测试策略
    Test suite       测试包        Test target       测试目标
    Testability      可测试性      Testware        测试工具
    Top-down testing 自顶向下测试  Thread testing   线程测试
    Traceability     可跟踪性      Traceability matrix 跟踪矩阵
    Trade-off       平衡

    Unit testing      单元测试     User interface(UI)  用户界面
    Usability testing  可用性测试   Usage scenario    使用场景
    User acceptance Test用户验收测试User profile     用户信息
    User scenario    用户场景     

    Version         版本          Virtual user     虚拟用户     
    Volume testing    容量测试     V&V (Verification & Validation) 验证&确认

    Walkthrough    走读          Waterfall model   瀑布模型
    White box testing白盒测试      Work breakdown structure (WBS)任务分解结构
    Web testing     网站测试

    Zero bug bounce (ZBB) 零错误反弹

     

  • 女朋友和事业我选择什么?!!

    2006-12-23 16:11:42

    我和女朋友在大一就开始耍起了,感情很深,她对我也很好(可能到了不能离开的地步吧).现在该找工作了,我是选择她呐,还是事业呐?选择她,就以为着我必须放弃在成都这么好的环境工作到北方去;选择事业,我就会和她BB,可是我不忍心伤害她,真是难呀!!因为我现在根本就不能谈工作,因为没有北方的软件公司来成都招人,也就是说我只有明年才可能找工作,我只有去北方与公司当面谈.但是那边的工资的真是不高呀,而且空气又差(我10月去了北京,那个在火车上心之凉呀,周围都是沙没有树没有山,当我回来的时候,火车过秦岭看见山和水,心里之爽呀!!!),米饭才贵呀,2元一碗(我记得我在西站吃饭,我叫老板添饭,他说,2元一碗,我,,,,,,,,,,,,,恨呀,真想再吃3碗呀~~~~.)

    一去就可能是5年呀,我真的在那里有发展吗?我不知道呀!!!

    我喜欢吃面,大家都说我是北方人,难道现在就实现了吗?哎!!!事实难料呀.

  • 求工作!!(北京)

    2006-12-08 14:06:29

    这是我的简历,希望广大公司能看下并提出意见.我现在成都,想在北京找份测试的工作,也希望看见的朋友能推荐下.谢谢!!
211/212>
Open Toolbar