发布新日志

  • 印度项目质量管理经验

    2008-02-22 09:42:59

    原文出处 http://www.yesky.com/20030325/1659121.shtml
      
       计算机和通信技术的迅速发展,特别是Internet技术的发展与普及,为企业内部、企业与外部提供了快速、准确、可靠的信息交流渠道。信息化企业运作管理系统已成为企事业单位参与全球市场竞争的必备支持系统。正是由于这样的市场需求与技术发展现状,为我国的IT行业带来了空前发展的机遇,特别是软件行业。软件企业能否抓住这样一个难得的发展机会需要多方面的努力,其中软件质量保障在其发展过程中占有重要的位置。众所周知,印度已成为世界上软件业增长最快的国家,目前每年软件业产值达数十亿美元,并且还在以每年30%~50%的速度增长。比较我国和印度的软件产业,就不难发现:中国拥有巨大的软件市场和世界公认的软件开发资源,在基础研究和对技术前瞻性的把握上,也有自己的优势,就整体社会经济环境而言也优于印度。此外,中国的软件开发人员费用比较低廉,仅是世界市场的1/3左右。虽然中国人并不缺乏软件开发的天赋,但是在越来越强调规模化经营的今天,先天不足的管理痼疾使我们举步维艰,难以摆脱小作坊式的软件开发模式。而印度软件业从一开始就立足于为美国软件企业服务,并遵循其软件开发的管理模式,与国际标准接轨。

      管理上的问题不能得到彻底的解决,软件的质量保障就无从谈起。笔者最近在与印度一家通过了CMM4级评估的软件公司(以下简称A公司)进行合作的过程中,较为详细地了解了他们有关项目管理的一些详细情况,更深刻地感受到了项目管理的规范化与企业软件质量保障之间的密切关系。下面想着重从软件企业的构架,软件项目计划、项目管理、项目经理的职责等方面对印度软件的项目管理及我国软件质量保障应注意的问题进行一些经验总结,供业内人士参考。软件测试专业网站:51Testing软件测试网*]L?\-yyFOc X
     软件测试专业网站:51Testing软件测试网S+U8Zcg3up
      1.软件企业的组织结构

      (1)A公司结构

      图1是A公司的组织结构图,同国内公司差异较大的部门有QA、SSG和人力资源部门。


    "ZpZI.g$H138366
    dh"Bd;S138366图1

      * A公司中,QA(Quality Assure)部门与研发部门独立,负责监督流程的执行。QA同时负责领导与研发部门组成的联合工作组,制定公司流程。 软件测试专业网站:51Testing软件测试网:xe'ex7Bw*BV]
      * SSG(System Support Group)类似我们的IT部门,负责公司所有计算机软件和硬件资源的分配和管理。所有的办公环境和开发/实验室环境由SSG负责安装和维护,计算机资源属于SSG,由各个项目向SSG提出需求,项目结束后,设备需要交还给SSG。个人和项目组没有固定的软件和硬件资源。SSG是与研发平行的部门。 软件测试专业网站:51Testing软件测试网2s ^0D BA2^` ]+{
      * 人力资源部门负责公司的人力资源管理,并维护员工的技能数据库。项目开始时,项目组向人力资源申请人力,向SSG申请计算机硬件和软件。项目结束时需要释放计算机资源给SSG,释放人力资源到人力资源池,并同时更新员工的技能数据库。研发部门的人力资源由研发总负责人和其助手分配(类似我国各公司的人力资源部)。

      (2)项目组结构

      1) A公司对项目组进行独立核算,项目具体负责人为PC(Project Coordinator),负责项目计划和执行,对项目具体成员进行分工。在每个阶段的结束会议上(如概要设计结束),PC要接受QC(Quality Coordinator)的审查。除了PC与QC的接口外,所有其他外部接口都由EM(Engineer Manager)完成,EM负责与客户打交道,向SSG、人力资源要求资源,与其他项目组协调进度。软件测试专业网站:51Testing软件测试网+T?Sy!EgQ3qN9M
     软件测试专业网站:51Testing软件测试网adk'C f7U)Et H
      2) 汇报关系为: 软件测试专业网站:51Testing软件测试网4grsF#d F0Wj#L
      Team Member->Team Leader->PC->EM->研发总负责人。

      3) 印度工程师分为7级,半年一次考评,即半年有一次升级机会。 软件测试专业网站:51Testing软件测试网|l F)Vj2d.uHR
      1级:Software Engineer,刚毕业的本科生和研究生。 软件测试专业网站:51Testing软件测试网km4Gc:o@^bc
      2级:Senior Software Engineer。
    fWif3V&V138366  3级:Project Leader。
    C8n8T*nT#zi5h6?138366  4级:Project Manager。
    9z4O/L JWJx138366  5级:Senior Project Manager。
    tQ_:C-t!h138366  3级可以成为PC,4级可以成为EM。刚开始平均2年升一级,越往后升职越慢。

      A公司规定,一人最多可以同时兼任两个项目的PC,EM管理的项目没有限制。

      A公司通常的项目组为4到5人,最多不超过10人。

      以上是A公司(同时也是印度大多数规范化的软件公司)的组织结构和项目组结构。可以看出,A公司的组织结构非常清晰,各个部门分类非常细,任务明确,软件生产的每一个步骤都有专门的部门、专门的人员负责,从最基础的开发人员到负责统领全局的总经理,层层管理,沟通渠道畅通。而在我国,管理的不规范往往首先体现在公司的组织结构上,集中表现为部门的缺失和管理的交叉上。我国的软件公司,大部分规模较小,开发人员超过 100人的公司很少。在印度,软件公司无论大小,都是“麻雀虽小,五脏俱全”,绝不会因为公司的规模大小而改变合理的组织结构。因此笔者认为,国内的软件企业要想有效地保障产品质量,首先就要在构架合理的组织结构上下功夫,这就如同盖高楼首先要打好地基一样,地基不打牢,结构不合理,其他方面再下功夫也是徒劳。有人说,因为国内软件企业规模小,所以造成结构设置的欠缺,但笔者认为恰恰是因为没有建立一个规范化的组织结构,才会使软件产品质量不保,进而严重影响了企业的发展扩大。

      2.项目计划

      凡事预则立,不预则废。这里的“预”就是指计划。对于软件企业,计划的重要性是不言而喻的。让我们先看看A公司的项目计划是如何制定的:在A公司,项目开始之前必须先估计项目的规模(以代码行数来衡量);然后制定项目计划。通常时间为2~3周,已知的最长有5周。 EM负责制定项目 EWP(Engineer Work Paper),其中定义了项目需要的人力和计算机资源,由相关部门同意,并报研发总负责人批准后才能开始项目。

      项目的正式开始时间由项目组的Kickoff Meeting算起,Closeout Meeting结束。

      大概很多人都听过这样一句话:“计划赶不上变化”。这种“变化”对某些行业而言也许并不会产生太大的影响,但对于软件企业而言,却会给软件产品的质量保证带来严重的负面影响。为什么会造成这种“计划赶不上变化”的现象?究其原因,笔者认为主要是因为对计划的重视程度不够,计划过于笼统、粗糙导致可执行性太差,再加上一些人为因素的影响,必然会产生这样的后果。

      如果我们的软件企业都能像A公司这样,在作计划时能考虑到每一个细节,不是仓促做出决定,而是由所有的相关部门共同对产品计划进行反复研究、制定、讨论、修改,最终形成一套系统、严密、具有很强的可执行性的计划。计划一旦形成,就严格按照计划去执行,而不受某个人、某件事的影响,那么就不仅能够减少大量资源的浪费,产品的质量也得到了保障。

      因此,对计划的高度重视、周密制定、严格执行是企业有效保障产品质量的一个重要环节。

      3.项目管理

      当企业构架了合理的组织结构并制定了缜密的计划后,就进入了产品的开发阶段。在这个阶段中,项目管理起了重要作用,它所涉及的环节相当具体复杂,下面先介绍一下A公司在项目管理上的具体细节:

      (1)开发阶段和项目周期
    ;z\J0FzyN[138366  开发阶段比较明显,注重各阶段应完成的功能,对本阶段应完成的工作不能留到下一阶段。软件测试专业网站:51Testing软件测试网@esK9A*B(o
     软件测试专业网站:51Testing软件测试网 J!am \ C
      (2)流程

      * A公司对流程比对项目更重视。
    )H$Pvz3o138366  * 软件开发流程非常规范和系统化,其流程的可执行性很高,并且能在实践过程中不断改进。A公司的流程已覆盖到了一个项目研发的所有方面,包括从最开始的意向到最后软件的版本发布(release),都有相应的流程规定,基本上已形成一种工业化的软件开发。
    4}?W W%hK9RA I$g!Ve/a138366  * 人和流程是保证项目成功的两个最关键因素。由好的人按好的流程进行项目开发,才能最大限度地保证项目的成功。一个好的流程可以保证差的人做出来的东西不至于太差,但不能确保做出精品。通过流程可以实现一种规范化、流水线化、工业化的软件开发。

      (3)计划

      1) 计划详细、周到。

      2) 流程中明确定义开发阶段。
    #O_ R&?0`(c138366 
    V3V(by-G)R3V138366  3) 每个阶段都列出了该阶段的各项活动,并详细描述每项活动的属性:
    5W f ^;h*OhL)ez F138366  * 进入条件,输入; 软件测试专业网站:51Testing软件测试网:g"n(w4pjO_
      * 验证方法;
    Qzc2E9}9g'TB:Y138366  * 结束条件,输出。

      4)每个阶段结束都要召开阶段结束会议。前一个阶段结束才能进入下一阶段。

      5)计划中每个活动都比较具体,每个活动的时间以天(半天)为单位。计划包括了开展质量控制活动的时间。

      (4)Review

      按印度公司流程,一般把Review和测试作为保证软件质量两个主要手段。测试的重要性就不需说明了,而 Review则是一个非常简单有效并能尽早发现软件中错误的方法,可以说,任何交付物都要经Review后才能进行基线化。目前A公司有很详细全面、可执行性很高的Review流程和各种交付物的Review Checklist。

      在印度软件企业,现有这么一句口号:凡事有计划,凡事必review。

      (5)QA

      QC(质量经理)作为质量保证部门(SQA)的代表,监督和保证项目的进展遵循QMS各项流程和模板,并且收集项目中发现的一些问题和解决方法以优化流程。

      (6)度量数据

      CMM中比较强调用数据说话,对项目过程中基本上所有的数据都会有记录,最后把收集的数据提交质量保证部门进行分析,以改进流程。A公司的项目经理和质量经理很重视项目中的数据收集,包括各种Review数据、测试数据以及项目组员每天的活动数据等。项目经理也要维护一个项目档案,在这个项目档案中可以说包含了项目开发过程中所有的产出、开发活动、管理活动等的记录。可以这么说,有了这个项目档案,你就可以完全了解这个项目的开发过程。

      (7)团队精神

      印度公司都比较强调团队精神、合作精神,应该说,其流程本质上就要求员工之间的互相协调和理解。相对而言,印度员工的合作精神和协调精神都比我国员工要好得多。

      (8)培训

      印度公司都比较强调培训,一般有专门的培训部门进行协调。在新员工进入公司后都会有公司流程和其他一些公司普遍章程的培训,以保证员工对流程的理解和执行。对于具体项目,项目经理在制定项目计划时就会在项目计划中提出所有的培训需求,包括技术上的培训和其他所需的培训。

      (9)配置管理
    g}.jTw0ZG138366  在项目正式开展前,项目经理就要制定配置管理计划,并且指定配置管理员建立起配置管理库,按配置流程严格进行配置管理。在配置流程中也详细提供了对更改的控制,没有经过批准的更改请求是绝对不能进行的。
    ~[_{:shV138366  (10)记录

      记录及时、充分、比较准确。这些记录包括:重要的邮件、会议纪要、审核记录、缺陷报告、测试报告。
    0M S'oIQt+?'B138366 
    fu6L+H@2S8v?oi138366  1)与客户和其他项目组的所有往来必须邮件记录。

      2)对所有的活动都有一个跟踪落实的过程,比如对所有的Review记录和更改请求都会有一个状态标识,标识其当前状态,通过跟踪其状态来监督其落实。

      3)对所有的活动,包括对文档和代码的更改都会有一个历史记录。

      4)记录比较准确、比较客观。

      5)许多记录都是通过定量的数值记录,强调以数据说话(CMM4级的重点就是量化管理)。

      以上是A公司在项目管理中所涉及到的一些主要环节,很值得国内的软件企业在制定项目管理规划时借鉴。除此之外,我国的软件企业在产品开发管理的过程中,还易出现以下几个方面的问题:

      1)需求说明差─需求不清楚、不完整、太概括、或者不可测试,都会造成问题。

      2)不切实际的时间表─如果在很短的时间里要求做许多事,出现错误是不可避免的。

      3)测试不充分─只能根据客户意见或系统崩溃来判断系统的质量。

      4)不断增加功能─在开发正在进行过程中要求增加许多新的功能。这是常见的问题。

      5)交流问题─如果开发人员对客户的要求不了解,或者客户由不恰当的期望,必然会导致错误。
    p:fw2]L138366 
    Qcf4u1v+h(P6B-B PZR138366  这些问题的出现,将会对软件质量的保证产生不良影响,针对上述问题并结合A公司在项目管理方面的经验,笔者提出一些相应的解决方法,以供参考:

      1)可靠的需求─应当有一个经各方一致同意的、清楚的、完整的、详细的、整体的、可实现的、可测试的需求。为帮助确定需求,可使用模型 (prototypes)。

      2)合理的时间表——为计划、设计、测试、改错、再测试、变更、以及编制文档留出足够的时间。不应使用突击的办法来完成项目。

      3)适当测试─尽早开始测试;每次改错或变更后,都应重新测试。项目计划中要为测试和改错留出足够时间。

      4)尽可能坚持最初的需求─一旦开发工作开始,要准备防止修改需求和新增功能,要说明这样做的后果。如果必须进行变更,必须在时间表上有相应的反映。如果可能,在设计阶段使用快速的模型,以便使客户了解将会得到的东西。这将会使他们对他们的需求有较高的信心,减少以后的变更。

      5)沟通——在适当时机进行预排和检查;充分利用团组通信工具—电子邮件、群件(groupware)、网络故障跟踪工具、变更管理工具、以及因特网的功能。要确保文件是可用的和最新的。优选电子版文档,避免纸介质文档:进行远距离联合作业及协作;尽早使用模型,使客户的预想表达清楚。

      4.PC(项目经理)

      项目经理是项目成败的关键人物,其对项目的成败负主要责任。因此在这里将项目经理的有关内容单独提出,以A公司为例详细说明PC在整个产品研发过程中所扮演的角色,希望能对国内软件企业的项目经理有所启示。

      (1)在A公司,按流程在一个项目正式开展之前,项目经理需要完成:

      * 项目计划(Project Plan):在此描述整个项目所应完成的交付物、项目时间表、培训需求、资源需求、质量保证计划以及过程和交付物的定量质量目标等。

      * 项目配置管理计划(Project Configuration Plan):在此指定配置管理员,描述项目配置项列表、配置管理库、版本管理计划等等。

      *项目过程手册(Process Handbook):在此描述本项目所采取的裁剪后的生命周期模型和流程。

      (2)在项目开发过程中,项目经理需非常了解项目进度,进行工作任务细化、具体计划和安排项目成员工作任务等工作。对突发事件项目经理需能及时合理地进行协调。

      (3)总的说来,PC安排工作有这么几个特点:

      a.PC对软件开发具有丰富的经验,了解软件开发的普遍流程,了解各个阶段所需完成的工作,这是安排好项目组成员工作的前提,在A公司对PC的整体素质要求非常高。

      b.在项目正式开展前,PC准备项目计划文档,在项目计划中包含了项目进度时间表,但此时间表比较粗,只能给出各个阶段和各个子阶段的起始结束日期。对各个阶段和各个子阶段的详细工作安排和各项工作责任人只能在项目开展工程中根据项目实际情况进行安排,一般是在每周项目组例会上进行本周详细工作安排。
    g `/DR/Q+~.d-O138366 软件测试专业网站:51Testing软件测试网%M-r9vC:Dv
      c.PC对工作安排往往精确到天,有时甚至精确到小时,要做到这一点,需要:

      * PC对本项目进展非常了解。了解渠道通常是每周组员的状态报告和直接与组员接触了解,这也需项目组成员能如实汇报工作。

      * 对现阶段或本周所需完成的工作非常了解。知道现在该做什么,并且能把各项工作进行合理细致地划分,因为各个分解的工作比较细致,因此能相对精确地评估出这些工作完成所需的时间。

      * PC对项目组员的能力比较了解,安排工作时能做到有的放矢。当安排的员工对工作不熟悉时,会指定相应的组员进行协助。

      * PC对组员的工作安排都比较细致饱满。一般不会出现有些员工有事干,有些员工没事干的情况,当出现这种情况或员工提前完成工作时,PC就会进行相应的协调。

      d.PC在项目组例会上的工作安排一般只限于本周或甚至是过后的二、三天,一般不会太长,对长时间工作的安排容易失去精确并且不易控制。相对而言,短时间的工作安排就比较精确而且容易控制,并且能不断根据完成的工作进行调整。当然,这就要求PC能根据项目计划中的项目时间表进行整体进度的把握。

      e.项目组例会一般一周一次(时间不能太长),但必要时(如组员工作已完成或其他事情),也可在中途召开项目会议进行工作安排,一般时间都比较短(十几分钟左右,一般不超过半小时,以免浪费时间),总之,当PC觉得需要时,就会召开项目会议。

      f.当项目组出现意外事件或影响项目团结的事件时,PC能及时合理协调,解决项目组内的不和谐气氛。
    q tV$z yt5X138366 软件测试专业网站:51Testing软件测试网*K|,w0q8P5g,I3W)\8_^!{
      g.PC善于鼓励手下,发挥员工的潜能,PC往往会赞扬很好地完成了工作的组员。
    's#x@`$D?e9^3\Uw138366 
    5NJ)I!Diop3RT4V138366  从上面可以看出,对PC的能力(包括技术和管理能力)要求是非常高的,我国的软件企业往往只重视PC的技术能力,但事实上,一个只精通技术的人往往不能成为一个合格的领导者,笔者认为对PC而言,首先要求他能够比他的下属看得更远一步,顺利时不盲目乐观,遇到挫折时不茫然失措,使整个团队始终保持高昂的士气。软件测试专业网站:51Testing软件测试网&@"cw2EpxT,X

    1c-G'v^8B:r5` u ry;z138366  总结

      以上结合印度软件项目管理的经验总结了一些我国软件质量保障应注意的问题。曾有人提出:这样一味地学习模仿,民族软件工业没有多大希望。但笔者认为,在这个问题上不妨采取“拿来主义”的办法,对于好的,事实证明是成功的经验,首先是“占有”,然后才是“挑选”和“ 创新”。如果能把印度的管理经验真正领会并付诸实践,相信对我们的民族软件工业一定会起到积极的推动作用。

  • 详解lr参数表中的参数分配规则

    2008-02-20 15:35:58

     

    <!--[if !supportMisalignedColumns]--> <!--[endif]-->

    Select next row

    Update value on

     

     

    Sequential

    Each iteration

    每次执行Action时,参数值改变。

    每个Vuser的参数取值都一样。

    Each occurrence

    每次取参数时,参数值改变。

    每个Vuser的参数取值都一样。

    Once

    唯一

    Random

     

    自由选取参数

     

     

     

    Unique

    Each iteration

    每次执行Action时,参数值改变。

    Allocate Vuser values in the Controller

    可选择“自动”和“手动”分配。

    “自动”分配把参数平均分给每个Vuser

    “手动”分配时,参数不够的话,压力测试时会报错。

    Each occurrence

    每次取参数时,参数值改变。

    只有“手动”分配。参数不够,测试时报错。

    Once

    唯一

     

    When out of values

    Abort Vuser

    结束Vuser

    Continue in a cyclic manner

    使用同样的循环样式继续

    Continue with last value

    使用最后一个参数值继续

     

    注释:

    iteration: Run-time Settings中对Number of Iterations进行设置,即每次运行脚本时,Action反复执行的次数。

    occurrence: 在一个Action中出现2次以上的同一个参数表。

    注意:

    当在脚本中使用lr_message lr_ouput_message输出参数值时,

    例如lr_message(“result=%s”,lr_eval_string(“{NewParam}”)

    参数表也会给这个语句中的{NewParam}分配一个参数值。

     

    Parameter type: Unique Number

    Number range: Start: 1  

             Block size per Vuser: 100   从1开始,每个并发使用100个参数.第1个并发使用1-                                      100,第2个使用101=200,第3个……

    Number format: %d 不保留有效数字。

                   %01d 保留1位有效数字。

     

  • 一份试用期转正工作总结

    2008-02-18 14:15:56

    试用期工作总结

     

    在测试部的工作时间快2个月了,在这段时间里,深刻感受到这只团队的向心力和凝聚力,充满朝气,奋斗的团队,开阔的工作环境,让大家可以高效率的交流经验协同工作。现向领导做以下工作汇报。

    试用期间我主要完成了两个项目的测试工作。第一个项目是数据库网站的功能测试。从2007.12.042007.12.12,总共7个工作日。先后与另外2名同事共同测试该产品。合作数据库网站主要包括3个分库,分别是数据库1、数据库2、数据库3。首先我认真阅读了开发部提交的测试申请及开发文档,使用测试管理工具TestDirector编写了测试计划,针对产品的主要功能从整体上进行了模块划分;然后参照开发文挡的详细设计部分,对系统的各项功能进行了测试用例的编写工作。在测试前期,由于刚接触公司产品,对产品了解不深,发现的bug比较少,在与同事交流及不断学习后,逐渐对产品有了一定的认识,发现的bug数逐渐增多。在此项目中我共提交bug36个,有效bug数为31个,占总有效bug数的56.9%。在对修改的bug进行验证及回归测试后,产品趋于稳定,在测试结束前2天已没在出现问题,之后我编写并提交了测试报告。通过此项目,增加了我对公司数据搜索产品认识及Web方面测试经验,在与同事共同测试中,学到了很多测试技巧,与同事一起工作也变的更加默契。

    我完成的第二个测试项目是“数字Search系统”的功能和性能测试,从2007.12.192008.01.18,历时23个工作日。此项目是我和另外一个同事共同负责的。我主要负责部分功能测试bug提交,及性能测试。该系统主要有3部分构成,“数字搜索”、“数据分析系统”和“科技库”。在开发人员提交的测试申请中提到“当前的系统平均2数据库K会发生异常”,所以本次测试重点放在性能测试及“数据分析系统”和“科技库”这2个新的子系统。在前期的性能测试中,我碰到了很多问题,由于对“科技库”系统检索功能要从公网上下载部分图片,所以在压力控制上比较难操作,通过后面的多次试验,逐渐掌握了各系统的压力点,使整个系统负载均衡。压力测试中我采用了单一脚本功能测试和多脚本组合功能测试,发现了很多问题,例如:测试前期发现数据库K异常自动重起,同过数据库K开发组协助,解决了此问题;在高并发测试中发现IIS6.0死琐现象,通过在网上论坛及微软网站查找资料,修改了IIS6.0服务器的配置文件解决了死琐问题;在对“数据分析系统”进行的导航测试中,发现该Web程序采用了缓存机制,但通过与开发人员交流,得知并未对缓存采取控制,导致Web程序占用系统缓存持续增高,通过在网上搜集资料对IIS6.0的程序池做了调整,解决了此问题,排除了Web程序高缓存不能释放的隐患;对“数字搜索”单脚本测试中发现Search与数据库K存在兼容性问题,在压力不是很大的情况下,数据库K服务就会发生异常终断,此问题也是直接导致公网数据库发生异常的原因所在,因公网使用Search的压力较小,所以表现的为2天发生异常。此问题现在已经通过变通的方法得以解决,根本问题,开发人员还在进一步的研究中,现在公网表现良好,数据库K不在发生异常。通过这次性能测试,对性能测试工具LoadRunner的使用更加熟练,对数据库KIIS6.0Windows日志分析有了一定经验,对发现系统瓶颈上有了很大的体会,提交性能测试报告时,开发人员表示对我们的测试很满意,进一步肯定了我们的测试工作。在功能测试中,我总共提交bug23个,有效bug21个,占总有效数的51.2%

    经过上面2个项目的实践,使我对公司产品在功能及性能上有了很大的认识,在工作中得到了同事们和开发人员的帮助,学到了很多新知识新技术,同时发现公司的员工无论从工作能力上还是个人素质上都非常优秀,这也是我今后学习的榜样,势必在今后的工作中加倍努力奋斗迎头赶上。今天我为公司骄傲,明天公司为我骄傲!

  • STP杂志评选的2007年度最受测试人员欢迎的测试工具

    2008-02-18 10:08:56

    转载 STP杂志评选的2007年度最受测试人员欢迎的测试工具

    测试工具分类排名

    (1)Data Test/Performance
    LoadRunner、File-AID、VTune Performance Analyzer

    (2)Functional Test
    QTP、SOAtest、Compuware Optimal Quality Management

    (3)Defect/Issue Management
    Bugzilla、TestDirector、Seapine TestTrack Pro

    (4)Commercial Test/Performance
    DevTest、Software Planner、SOAPscope

    (5)Static/Dynamic Code Analysis
    PurifyPlus、DevPartner、Jtest

    (6)Embedded/Mobile Test/Performance
    Rational Test RealTime、DSDP、Workbench

    (7)Security Test
    WebInspect、AppScan、Hailstorm Enterprise ARC

    (8)Test/QA Management
    TestDirector for Quality Center、SilkCentral Test Manager、VMware Lab Manager

    (9)Free Test/Performance
    Bugzilla、JUnit、TPTP

    (10)Test Automation
    QuickTest Professional、SilkCentral Test Manager、Cubit

    (11)SCM/Build Management
    Visual SourceSafe、Subversion、ClearCase

    (12).NET Test/Performance
    LoadRunner、Team System、Parasoft Test

    (13)SOA/Web Services Test
    LoadRunner、Empirix、Performance Tester Extension for SOA Quality

    (14)Integrated Test/Performance Suite
    HP Performance Center、Empirix、Optimal

    (15)Java Test/Performance
    LoadRunner、JUnit、Jtest

    (16)Best Solution From a New Player
    Defender、Diagnostics、SecurityReview

    (17)Load/Performace Test
    LoadRunner、Performance Tester、SilkPerformer
  • LoadRunner性能测试指标分析

    2008-01-21 18:35:47

    LoadRunner性能测试指标

    Object

    Counters

    Descrīption

    Reference value

    Memory

    Available Mbytes

    可用物理内存数. 如果Available Mbytes的值很小(4 MB 或更小),则说明计算机上总的内存可能不足,或某程序没有释放内存。

    4 MB 或更小,至少要有10%的物理内存值

    Page/sec

    (Input/Out)

    为了解析硬页错误,从磁盘取出或写入的页数。一般如果Page/sec持续高于几百,那么您应该进一步研究页交换活动。有可能需要增加内存,以减少换页的需求(你可以把这个数字乘以4k就得到由此引起的硬盘数据流量)。Pages/sec 的值很大不一定表明内存有问题,而可能是运行使用内存映射文件的程序所致。

    推荐00-20

    如果服务器没有足够的内存处理其工作负荷,此数值将一直很高。如果大于80,表示有问题(太多的读写数据操作要访问磁盘,可考虑增加内存或优化读写数据的算法)

    该系列计数器的值比较低说明响应请求比较快, 否则可能是服务器系统内存短缺引起(也可能是缓存太大, 导致系统内存太少)。

     

     

    >5越低越好

    Page Fault

    处理器每秒处理的错误页(包括软/硬错误)。

    当处理器向内存指定的位置请求一页(可能是数据或代码)出现错误时,这就构成一个Page Fault。如果该页在内存的其他位置,该错误被称为软错误(用Transition Fault/sec记数器衡量);如果该页必须从硬盘上重新读取时,被称为硬错误。许多处理器可以在有大量软错误的情况下继续操作。但是,硬错误可以导致明显的拖延。

    Page Input/sec

    为了解决硬错误页,从磁盘上读取的页数。

    Page Output/sec

     

    Page reads/sec

    为了解决硬错误页,从磁盘上读取的次数。解析对内存的引用,必须读取页文件的次数。阈值为>5. 越低越好。大数值表示磁盘读而不是缓存读。

    Cache Bytes

    文件系统缓存,默认情况下为50%的可用物理内存。如IIS5.0 运行内存不够时,它会自动整理缓存。需要关注该计数器的趋势变化

     

    内存泄露

    如果您怀疑有内存泄露,请监视 Memory\\ Available Bytes Memory\\ Committed Bytes,以观察内存行为,并监视您认为可能在泄露内存的进程的 Process\\Private BytesProcess\\Working Set Process\\Handle Count。如果您怀疑是内核模式进程导致了泄露,则还应该监视 Memory\\Pool Nonpaged BytesMemory\\ Pool Nonpaged Allocs Process(process_name)\\ Pool Nonpaged Bytes

     

    Process

    Page Faults/sec

    将进程产生的页故障与系统产生的相比较,以判断这个进程对系统页故障产生的影响。

     

    Private Bytes

    此进程所分配的无法与其它进程共享的当前字节数量。如果系统性能随着时间而降低,则此计数器可以是内存泄漏的最佳指示器。

     

    Work set

    处理线程最近使用的内存页,反映了每一个进程使用的内存页的数量。如果服务器有足够的空闲内存,页就会被留在工作集中,当自由内存少于一个特定的阈值时,页就会被清除出工作集。

     

    Processor

    % Processor Time

    被消耗的处理器时间数量.如果服务器专用于sql server可接受的最大上限是80% -85%.也就是常见的CPU使用率.

     

    ProcessorQueue Length

    判断CPU瓶颈,如果processor queue length显示的队列长度保持不变(>=2)并且处理器的利用率%Processor time超过90%,那么很可能存在处理器瓶颈.如果发现processor queue length显示的队列长度超过2,而处理器的利用率却一直很低,或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈.

     

    Physical

    Disk

    %DiskTime

    指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。

    正常值<10,此值过大表示耗费太多时间来访问磁盘,可考虑增加内存、更换更快的硬盘、优化读写数据的算法。若数值持续超过80 (此时处理器及网络连接并没有饱和),则可能是内存泄漏。

     

    CurrentDiskQueueLength

    读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。(磁盘数1.5-2)

     

    Avg.Disk Queue

    Length

    Avg.Disk Read

    QueueLength

    Avg.Disk Write

    QueueLength

    Disk Read/sec

    Disk Write/sec

    读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。

    磁盘瓶颈判断公式:

    每磁盘的I/O=(读次数+4*写次数))/磁盘个数。

    如果计算出来的每磁盘的I/O数大于磁盘的处理能力,那么磁盘存在瓶颈。

    Avg.DiskQueue Length正常值<0.5,此值过大表示磁盘IO太慢,要更换更快的硬盘。

     

     

  • LoadRunner脚本解释分析

    2008-01-11 19:00:18

    1、获得网站首页
        web_url("www.seventest.net",
            "URL=www.seventest.net/",
            "TargetFrame=",  //
    目标窗口 _BLANK: 打开一个新窗口
                                              _PARENT:
    取代最后一个窗口的父窗口
                                              _SELF:
    取代最后一个窗口

                                              _TOP:
    取代整个页面
            "Resource=0",            //URL
    是否为一个资源  0:不是

                                                         1:

            "RecContentType=text/html", //
    录制过程中,响应报头内容格式
            "Referer=",                 //
    提交网页的URL
            "Snapshot=t1.inf",          //
    快照文件名

            "Mode=HTML",                //
    录制水平: HTML or HTTP.

    HTML level: 指导VuGen录制直观的HTML动作,录制web_url,web_link,web_image。返回的是HTML 页面,而不是脚本和程序。
    HTTP level:
    指导VuGen录制全部的服务器响应。不产生web_link,web_image,web_submit_form。比HTML高级,但当读脚本时不是很直观。
            EXTRARES,                   //
    参数表划分标志(下个标志是一个资源特征表)
           "Url=/dy.css", "Referer=http://www.seventest.net/index.htm", ENDITEM,     //
    资源结束志
       
           "Url=/images/bg_03.gif", "Referer=http://www.seventest.net/index.htm", ENDITEM, 
           "Url=/images/logo-end%2020GAI.swf","Referer=http://www.seventest.net/index.htm", ENDITEM,
            "Url=/images/2.swf", "Referer=http://www.seventest.net/index.htm", ENDITEM,
            LAST);                      //
    特征表结束标志

    2、下载一个游戏
    web_url("Games",
           "URL=ftp://joe:secret@mygames.com/games/archive/loderunner.exe",
           "FtpAscii=1",         //1:
    ASCII模式执行FTP传输
                                            //0:
    二进制模式
           LAST);

    3、百度搜索科学
    Action()
    {
        //
    打开首页

     web_add_cookie ("BAIDUID=AAFDECDD16EF55636CA63DC64381BBEC:FG=1; DOMAIN=www.baidu.com");

    web_add_cookie("BDSTAT=7e00ef72b41d6156ecc574f4a7efce1b9d16fdfaaf51f3debd8f8c5497eef01f3a292df5e2fe587d;DOMAIN=www.baidu.com");

                                 //网络接口的对象表达式,经常用在JavaVB.

                                 //name=VALUE; 必须
                                  //domain=DOMAIN_NAME;
    必须
                                  //expires=DATE;
                                  //path=PATH; (default path is "/")
                                  //secure
                                 //The elements in the Cookie parameter are the same as the elements in the
                                 //Set–Cookie HTTP Response Header.

     web_url("www.baidu.com",
      "URL=http://www.baidu.com/",  
      "TargetFrame=",
      "Resource=0",
      "RecContentType=text/html",
      "Referer=",
      "Snapshot=t1.inf",
      "Mode=HTML",
      EXTRARES,
      "Url=/favicon.ico", "Referer=", ENDITEM,
      LAST);

     web_add_cookie("BAIDUID=AAFDECDD16EF55636CA63DC64381BBEC:FG=1; DOMAIN=s.baidu.com");

     web_add_cookie("BDSTAT=7e00ef72b41d6156ecc574f4a7efce1b9d16fdfaaf51f3debd8f8c5497eef01f3a292df5e2fe587d;

    DOMAIN=s.baidu.com");

     lr_think_time(13);
       //
    搜索科学

     web_submit_data("s",         //
    提交数据

      "Action=http://www.baidu.com/s",    //
    提交数据的HTTP address
      "Method=GET",
      "EncType=",                       //
    编码方式

      "TargetFrame=",
      "RecContentType=text/html",
      "Referer=http://www.baidu.com/",
      "Snapshot=t2.inf",
      "Mode=HTML",               //
    录制水平
      ITEMDATA,
      "Name=wd", "Value=?", ENDITEM,
      "Name=cl", "Value=3", ENDITEM,
      EXTRARES,
      "Url=http://s.baidu.com/w.gif?path=http://www.baidu.com/s?wd=%BF%C6%D1%A7&cl=3&t=1200288916042",

    "Referer=http://www.baidu.com/s?wd=%BF%C6%D1%A7&cl=3", ENDITEM,
      LAST);

     return 0;
    }

     

  • 什么是SYN包及SYN攻击原理

    2008-01-11 14:15:24

    转载地址http://hi.baidu.com/reddrag911/blog/item/08bbc8356046041091ef3913.html

    什么是SYN包?SYN包是什么意思?

    TCP连接的第一个包,非常小的一种数据包。SYN攻击包括大量此类的包,由于这些包看上去来自实际不存在的站点,因此无法有效进行处理。

    当两台计算机在TCP连接上进行会话时,连接一定会首先被初始化。完成这项任务的包叫作SYN。一个SYN包简单的表明另一台计算机已经做好了会话的准备。只有发出服务请求的计算机才发送SYN包。所以如果你仅拒绝进来的SYN包,它将终止其它计算机打开你计算机上的服务,但是不会终止你使用其它计算机上的服务,如果它没有拒绝你发送的SYN包的话。

    SYN攻击

    最近对SYN Flood特别感兴趣,看到一个关于SYN cookie firewall的文章,在google搜了一下,没中文的,翻译他一下  
    本文介绍了4个概念
    一:介绍SYN
    二:什么是SYN洪水攻击
    三:什么是SYN cookie
    四:什么是SYN cookie防火墙
    C=client(
    客户器)
    S=Server(
    服务器)
    FW=Firewall(
    防火墙)

    一:介绍SYN
    SYN cookie
    是一个防止SYN洪水攻击技术。他由D. J. BernsteinEric Schenk发明。现在SYN COOKIE已经是linux内核的一部分了(我插一句 ,默认的statno,但是在linux系统的执行过程中它只保护linux系统。我们这里只是说创建一个linux防火墙,他可以为整个网络和所有的网 络操作系统提供SYN COOKIE保护你可以用这个防火墙来阻断半开放式tcp连接,所以这个受保护的系统不会进入半开放状态(TCP_SYN_RECV)。当连接完全建立的时候,客户机到服务器的连接要通过防火墙来中转完成。

    二:什么是SYN洪水攻击?(来自CERT的警告)
    当一个系统(我们叫他客户端)尝试和一个提供了服务的系统(服务器)建立TCP连接,C和服务端会交换一系列报文。
    这种连接技术广泛的应用在各种TCP连接中,例如telnet,Web,email,等等。
    首先是C发送一个SYN报文给服务端,然后这个服务端发送一个SYN-ACK包以回应C,接着,C就返回一个ACK包来实现一次完整的TCP连接。就这样,C到服务端的连接就建立了,这时C和服务端就可以互相交换数据了。下面是上文的图片说明:)
    Client                       Server
    ------                          ------
    SYN-------------------->

    <--------------------SYN-ACK

    ACK-------------------->

    Client and server can now
    send service-specific data

    S返回一个确认的SYN-ACK包的时候有个潜在的弊端,他可能不会接到C回应的ACK包。这个也就是所谓的半开放连接,S需要 耗费一定的数量的系统内存来等待这个未决的连接,虽然这个数量是受限的,但是恶意者可以通过创建很多的半开放式连接来发动SYN洪水攻击
    通过ip欺骗可以很容易的实现半开放连接。攻击者发送SYN包给受害者系统,这个看起来是合法的,但事实上所谓的C根本不会回应这个
    SYN-ACK
    报文,这意味着受害者将永远不会接到ACK报文。
    而此时,半开放连接将最终耗用受害者所有的系统资源,受害者将不能再接收任何其他的请求。通常等待ACK返回包有超时限制,所以半开放
    连接将最终超时,而受害者系统也会自动修复。虽然这样,但是在受害者系统修复之前,攻击者可以很容易的一直发送虚假的SYN请求包来持续攻击。
    在大多数情况下,受害者几乎不能接受任何其他的请求,但是这种攻击不会影响到已经存在的进站或者是出站连接。虽然这样,受害者系统还是可能耗尽系统资源,以导致其他种种问题。
    攻击系统的位置几乎是不可确认的,因为SYN包中的源地址多数都是虚假的。当SYN包到达受害者系统的时候,没有办法找到他的真实地址,因为在基于源地址的数据包传输中,源ip过滤是唯一可以验证数据包源的方法。

    三:什么是SYN cookie
    SYN cookie
    就是用一个cookie来响应TCP SYN请求的TCP实现,根据上面的描述,在正常的TCP实现中,当S接收到一个SYN数据包,他返回 一个SYN-ACK包来应答,然后进入TCP-SYN-RECV(半开放连接)状态来等待最后返回的ACK包。S用一个数据空间来描述所有未决的连接,然而这个数据空间的大小是有限的,所以攻击者将塞满这个空间。
    TCP SYN COOKIE的执行过程中,当S接收到一个SYN包的时候,他返回一个SYN-ACK包,这个数据包的ACK序列号是经过加密的,也就是说,它由源地址,端口源次序,目标地址,目标端口和一个加密种子计算得出。然后S释放所有的状态。如果一个ACK包从C返回,S将重新计算它来判断它是不是上个SYN-ACK的返回包。如果这样,S就可以直接进入TCP连接状态并打开连接。这样,S就可以避免守侯半开放连接了。
    以上只是SYN COOKIE的基本思路,它在应用过程中仍然有许多技巧。请在前几年的kernel邮件列表查看archive of discussions的相关详细内容。


    四:
    什么是SYN COOKIE 防火墙
    SYN COOKIE
    防火墙是SYN cookie的一个扩展,SYN cookie是建立在TCP堆栈上的,他为linux操作系统提供保护。SYN cookie防火墙是linux一大特色,你可以使用一个防火墙来保护你的网络以避免遭受SYN洪水攻击。
    下面是SYN cookie防火墙的原理 

    client          firewall            server
    ------          ----------            ------
    1. SYN----------- - - - - - - - - - ->
    2. <----------SYN-ACK(cookie)
    3. ACK----------- - - - - - - - - - ->
    4. - - - - - - -SYN--------------->
    5. <- - - - - - - - - ------------SYN-ACK
    6. - - - - - - -ACK--------------->
    7. -----------> relay the ------->
    <------------ connection <----------
    1:
    一个SYN包从C发送到S
    2
    :防火墙在这里扮演了S的角色来回应一个带SYN cookieSYN-ACK包给C
    3
    C发送ACK包,接着防火墙和C的连接就建立了。
    4
    :防火墙这个时候扮演C的角色发送一个SYNS
    5
    S返回一个SYNC
    6
    :防火墙扮演C发送一个ACK确认包给S,这个时候防火墙和S的连接也就建立了
    7
    :防火墙转发CS间的数据
    如果系统遭受SYN Flood,那么第三步就不会有,而且无论在防火墙还是S都不会收到相应在第一步的SYN包,所以我们就击退了这次SYN洪水攻 击。


  • 测试者存在的问题

    2008-01-10 13:05:19

    以下为转帖:

    一、根基不牢

    问题:利用等价类划分的方法,对某问题设计测试用例。

    分析:98%以上的应聘者只知道按照有效等价类和无效等价类进行划分,殊不知此种分类方法只是等价类划分的一个典型应用而已,等价类划分远非只能划分为有效和无效两类。根据种种划分依据,还可以进一步划分很多其他类别。

    问题:根据事件描述,画出对应的因果图。

    分析:标准答案中只画了两条恒等,两条非,一个与,一个或。如此简单的问题,上百名应聘者中竟然无一人答对,痛心啊。黑盒测试方法就那么几种,既然你已知这个名,怎么就不知道多看几眼。

    小结:

    上面提到的是软件测试的最基本的方法,作为从业测试实际工作已经有1-2年的应聘人员,未能真正领悟,实属不应该,心浮气躁,忽视了你身边最简单,也是最厉害的技能。根基不牢,怎么可能把测试做深。

    二、专业不精

    问题:音视频文件都有哪些格式,这些格式之间有什么差别?

    分析:此问题是问那些做过多媒体方面测试的,但是我们的应聘者向来都是拿来主义,别人给我什么媒体文件我就用什么做测试,而根本不管不问。为什么MIDI文件比WAV文件小那么多?我们如何知道扩展名是.Mpeg的文件是Mpeg1格式的还是Mpeg2格式的?,面对这些问题,应聘者默默无语,只是无奈的笑笑。不去看别人,想想自己测试涉及的专业,是否把那个行业知识搞清楚了呢?

    问题:测试脚本运行不畅如何调试?

    分析:此问题是问那些标明自己熟练掌握WinRunnerRobotQTP等测试工具的应聘人员,但是当真正问到他们关于脚本的具体调试时,有7成以上人员表示他们只是参加测试培训老师讲过,或者自己在网上看过相关资料,另外有2成以上人员表示他们虽然用过,但是只是简单的录制回放,根本不会自己调试。可能是迫于无奈吧,简历里面什么都不写,可能面试的机会都没有,但是简历如此夸大的来写,终归是浪费自己的面试时间和路费。

    小结:

    从事测试仅1-2年时间,要想测试也精通,专业也精通确实不易,但是不说精通,至少也该知道个60%才对的起你的测试工作。一两年时光如此荒废,静下心来反思一下,身边还有哪些技能我们应该掌握扎实一点呢。

    三、无测试体系概念,忽视理论

    问题:请说出软件测试的定义,BUG的定义。

    分析:99%的人不能说出这两个测试名词的定义,只是在给我解释测试是为了发现bug之类的片面理解,残留的几个人也说得不够准确。这两个词目前尚不能说业内已经有了成熟统一的定义,但是无论是对是错,身为测试人员已经数年,自己竟然说不出这两个词的概念,多少也说不过去啊。有些人和我说,理论名词概念不重要,我会做测试就是了。想想金庸老先生早就告诉我们,武功仅有招式是不够的,必须配合上什么心法口诀才能行。你只会测试执行的招式,却不懂测试理论的心法,怎么能够修炼成上乘的软件测试呢?

    问题:请介绍一下你们的测试流程,流程和过程有什么不同,为什么好的测试需要好的流程?

    分析:但凡做过12年测试的人都能给我说出他们先做什么后做什么,但是当我继续问这是否可以叫做过程?流程和过程有什么差别,应聘者一棒子被打晕,继续追问为什么好的测试需要好的流程的时候,早已经找不到东南西北了。每天公司各项制度叫你做什么你就做什么,让你怎么做你就怎么做,完全不管不顾为什么,那么自己岂不成了没头脑的工具。这样你能干的工作别人也能做,自己的优势不就没有了吗。

    小结:

    目前测试业内流传着学院派和实践派的说法,学院派的理论给人的感觉往往是好听但不实用,而实践派的知识,往往能够立即见效。所以眼下测试培训往往实践派的更受欢迎。继续引用金庸先生的观点,练武分练内气宗,练外剑宗,但是真正的高手是内外兼修。如果我们不想只做普通的测试小弟子的话,就要理论实践并重,方能有所作为。

    四、周边知识知之甚少

    问题:能给我介绍一下软件工程中的瀑布模型吗?

    分析:又是8成应聘者不会回答,都是曾在遥远的学生时代有所耳闻,现今早已忘得一干二净了。软件测试因何而生——软件危机,软件危机导致软件工程的兴起,软件工程中又包含软件测试,就好像鱼儿活在水里,如果没有软件工程这个水,哪里能够养活这软件测试的鱼,如果我们对于身边的软件工程不够了解,怎么可能在里面自由的畅游呢。

    问题:用你最熟悉的开发语言实现sum=1+2+3+…+100

    分析:保守统计7成以上的应聘者写出来的程序无法执行或者运行结果错误,更少有人能够一气呵成,而且精准。这道编程题难吗?肯定不难,那么为何答错,自己没有真正写过程序,即使写过几行,也早就是如烟往事了。做测试一定需要懂开发吗?这个问题讨论以久,当然不一定,但是如果要做好测试,做深测试,分析问题原因,提出问题解决方案,编写测试脚本或工具,哪一个又能离开软件开发呢?

    小结:

    我们学习测试也应该有个先后顺序,有步骤。掌握周边知识的紧迫程度可能不如测试知识和行业知识。但是对于我们已经从业1-2年的测试人员来说,学校里面学到的知识不应该丢,之后的发展中,周边知识的学习也应该开始了。周边知识的范畴其实很广,还包括各种其他测试理念的学习,机械工业出版社翻译的那套测试丛书就很不错,观点众多而新颖,博众家之长,集大成,向来都是大家风范。

    五、缺乏必要的责任心、细心、耐心、虚心等

    问题:请数出下图中三角形的个数(平面图,有几根弧线做干扰)

    分析:我总是问自己,这道题真有这么难吗?连中小学生都能数对的十几个三角形,到了我们这二十几岁的年轻人手中,正确率才1%,为什么?其实就是现在我们已经很少有人能够静下心来,耐心细致的去做事情了。很多应聘者告诉我她的优点就是踏实,坐的住,正适合这繁琐的测试工作。我需要的不是坐在那里不做事或者做错事的人,而是需要能够按时保质量完成测试工作的测试人员。

    问题:你离职的原因?

    分析:这是面试中最常见的问题了。应聘者往往也是充分准备,理由多种多样,但是看看应聘者的工作记录统计,70%应聘者平均跳槽频率是1/次(实习情况除外),不会都那么凑巧吧,赶上什么公司倒闭,每隔一年就会想一次自己学不到东西,需要去外面看看。而在我看来,真正的原因更多的应该是希望通过跳槽提高工资,或者因为自身水平不足被公司炒鱿鱼吧。

    小结:

    我并不认为所有的人都适合做测试。非技术素质方面,这点或者那点不足够优秀也很正常,心浮气躁也可以理解。但是作为用人单位,理解归理解,却也不会用不胜任岗位,或性价比不高的人员。那么对于此类应聘者,我的忠告就是,要么你另谋高就,要么你就放低姿态,培养好你必备的素质后再谈。

    六、缺乏诚信

    这一点本应该被归在上一条素质中,但是这点的重要性我认为远超过了上一条所列各项,因此单独提出。相关表现主要体现在:

    报自己历史工薪;

    笔试题目作弊;

    编造离职原因;

    虚报学历,工作经验;

    夸大自己工作技能等。对于严重缺乏诚信的,一旦发现,其他表现再好,也无济于事了。
  • bugfree2.0安装与配置(Windows+Mysql+PHP+IIS)

    2007-12-18 00:21:29

    已在下面系统安装运行成功:
    Win2000_sp4,WinXP_sp2

    所需软件:

    mysql-4.0.8-win32        mysql数据库
    mysqlcc-0.9.3-win32      Control Center图形界面
    php-4.4.2-installer.exe  PHP环境
    bugfree2.0               bugs缺陷管理工具http://www.bugfree.org.cn/

    安装过程: 

    全部选默认安装路径

    1.安装mysql-4.0.8-win32
    2.安装mysqlcc-0.9.3-win32
    3.安装php-4.4.2-installer.exe
    4.运行C:\mysql\bin\winmysqladmin.exe
      第一次运行,会弹出填写用户名和密码的窗口,直接关掉.(此时,mysql默认用户名为root,密码为空)
    5.运行MySQL Control Center,在Register Server窗口中的Host Name:wind(你的计算机名字),点Add.
      在Console Manager窗口中双击root@wind:3306开启连接.
    6.控制面板=>管理工具=>Internet信息服务=>默认网站(右键)=>新建虚拟目录=>别名(bugfree)=>浏览目录(指向你的bugfree)
    7.新建的虚拟目录bugfree(右键)=>属性=>文档(添加index.php至顶)
    8.在mysqlcc里=>Datebases(右键)=>新建数据库(bugfree2)=>bugfree2(右键)connect=>User Administration(右键)=>新建用户(用户名:root密码:空host:计算机ip)=>在右边勾选bugfree2
    9.打开本地硬盘上bugfree文件夹下include下config.inc.php文件.
      这里是bugfree的系统配置.因前面的设置和里面的参数是对应的,所以不用修改此文件参数.
    10.=>点bugfree虚拟目录(在右边框里找到install.php)=>右键(浏览)=>进入安装
       安装时,如果你没有stmp服务器,可选flase.跳过stmp检索.
    11.访问http://192.168.1.90/bugfree
       默认用户名:admin 密码:123456

       

  • TD7.6中英文对照表

    2007-12-17 12:55:48

    TD7.6中英文对照表

    Defect

    英文

    中文

    备注

    Defect

    缺陷

     

    Summary

    概要

     

    Detected By

    被(谁)发现

     

    Detected on Date

    被发现的日期

     

    Severity

    严重程度

     

    Assigned To

    被分配给

     

    Detected in Version

    被发现的版本

     

    Modified

    修正

    修正Defect的日期

    Priority

    优先级

     

    Project

    项目

     

    Reproducible

    可重现

     

    Status

    状态

     

    Subject

    主题

     

    Descrīption

    描述

     

    Submit

    提交

     

    Attach

    缚上

     

    Thesaurus

    辞典

     

    R&D Comments

    研发人员备注

     

    Actual Fix Time

    实际修改时间

     

    Estimated Fix Time

    估计修改时间

     

    Planned Closing Version

    计划关闭的版本

     

    Select Filter Condition

    选择过滤器条件

     

    Available/Visible Column

    可用/可

     

    Attachments

    附件

     

    Favorite

    喜爱的

     

     

    Requirement

    需求

     

    Estimated DevTime

    估计设计和生成测试时间

     

    Execution Status

    执行状态

     

    Template

    模板

     

    Exec Date

    执行日期

     

    Expected

    期望结果

     

    Duration

    持续时间

     

    Analysis

    分析

     

    Details

    详细资料

     

    Associated

    联合

     

    Current

    当前的

     

     

  • VMware网络设置(WindowsXP+虚拟Ret Hat Linux 9)

    2007-12-16 21:41:49

    宿主机:Windows XP Professinoal SP2
    VMware:Red Hat Linux 9
    网络:ADSL局域网512M

    所用软件:
    VMware-workstation-6.0.0-45731.exe
    Red Hat Linux 9

    安装过程:
    1.安装VMware-workstation-6.0.0-45731.exe
    2.开启VMware.安装Linux.
      安装时可直接用硬盘iso文件.
      VMware=>VM=>Settings=>CD-RoM=>Use ISO image(选择iso位置,安装一张,在换另一个iso文件)
    3.安装VMware后,会在XP上自动安装2个虚拟网卡:
      VMware Virtual Ethernet Adapter for VMnet1
      VMware Virtual Ethernet Adapter for VMnet8
      XP运行cmd=>ipconfig/all
      会查看到2个虚拟网卡及真实网卡的IP配置.
      因这2个虚拟网卡是装在XP系统上的,所以XP上可以Ping通.
    4.此外,虚拟机上的Linux也有1个虚拟网卡,它的配置文件为
      /etc/sysconfig/network-scrīpts/ifcfg-eth0
    5.我们可以把Linux的网关设置为XP系统虚拟网卡的IP地址,
      这样Linux就可以和XP通信了.
    6.VMware=>VM=>Settings=>Ethemet=>Custom:Specific virtual network 选VMnet1(Host-only)
      将VMware Virtual Ethernet Adapter for VMnet1地址
      设置为: 192.168.0.1
              255.255.255.0
      修改ifcfg-eth0文件如下:
      DEVICE=eth0
      ōNBOOT=yes
      BOOTPROTO=none
      IPADDR=192.168.0.2
      NETMASK=255.255.255.0
      GATEWAY=192.168.0.1
      TYPE=Ethernet
      USERCTL=no
      PEERDNS=no
      NETWORK=192.168.0.0
      BROADCAST=192.168.0.255
      保存后更新下# service network restart

      也可以打开Linux开始=>系统设置=>网络,进行设置.
    7.这时XP和Linux可以通信了.
      XP运行:ping 192.168.0.2  OK
    8.此外SecureCRT是个不错的终端访问软件.可以装在XP上,访问Linux.
    9.如果想让虚拟机的Linux也上网的话.
      可以在XP=>本地连接属性=>高级=>允许其他网络用户通过此计算机的Internet连接来连接
      (在家庭网络连接中选择VMware Network Adapter VMnet1)
      linux 主DNS 192.168.0.1

      这样就可以在虚拟Linux上网了. 

  • mantis安装与配置(Windows+Mysql+PHP+IIS)

    2007-12-16 18:10:41

    已在下列系统安装运行成功:
    Win2000_sp4,WinXP_sp2

    所需软件:

    mysql-4.0.8-win32        mysql数据库
    mysqlcc-0.9.3-win32      Control Center图形界面
    php-4.4.2-installer.exe  PHP环境
    mantis-0.19.4.rar        bugs缺陷管理工具 

    安装过程: 

    全部选默认安装路径

    1.安装mysql-4.0.8-win32
    2.安装mysqlcc-0.9.3-win32
    3.安装php-4.4.2-installer.exe
    4.运行C:\mysql\bin\winmysqladmin.exe
    5.运行MySQL Control Center,在Register Server窗口中的Host Name:wind(你的计算机名字),
      点Add.在Console Manager窗口中双击root@wind:3306开启连接.
    6.设置Mantis

    1) 打开IIS管理器,在默认网站中增加一个虚拟目录Mantis,指向你的Mantis解压缩目录(这里使用C:\Mantis),在“属性”窗口的“文档”页面增加默认文档“index.php”;
    2) 将C:\Mantis中的config_inc.php.sample复制一份,改名为config_inc.php,修改其中的设置; Mantis的设置是这样保存的:在config_defaults_inc.php中保存这Mantis的默认设置,用户自己的设置信息保存在config_inc.php中,如果某个选项在config_inc.php中有设置,则系统使用config_inc.php中的设置,否则使用config_defaults_inc.php的系统默认设置;config_inc.php.sample则是Mantis给出的一个用户设置文件例子。 所以我们需要修改config_inc.php文件中的设置,设置很简单,各个参数的意义可以参见config_defaults_inc.php,这里对每个参数都有详细的解释,虽然是E文,不过应该都能看懂;Sample中给出的一些设置是一定需要修改的,比如MySQL数据库的连接参数,管理员的邮箱的;其他的要根据你的实际情况进行修改.下面是我的一些自定义参数,其中一些参数($g_use_jpgraph 和$g_use_phpMailer的设置请参照下面的内容):
    $g_use_iis = ON; # 使用IIS
    $g_show_version = OFF; # 不在页面下部显示 Mantis的版本号
    $g_default_language = 'chinese_simplified'; # 默认语言为简体中文
    $g_show_project_menu_bar = ON; # 显示项目选择栏
    $g_show_queries_count = OFF; # 在页脚不显示执行的查询次数 $g_default_new_account_access_level = DEVELOPER; # 默认用户级别
    $g_use_jpgraph = ON; # 使用图形报表
    $g_jpgraph_path = 'C:/PHP/includes/JPGraph/src/'; # JPGraph路径
    $g_window_title = 'Mantis Bug 跟踪管理系统'; # 浏览器标题
    $g_page_title = 'Mantis Bug 跟踪管理系统'; # 页面标题栏
    $g_enable_email_notification = ON; # 开通邮件通知
    $g_smtp_host = 'smtp.mail.net'; # SMTP 服务器
    $g_smtp_username = 'mailuser'; # 邮箱登录用户名
    $g_smtp_password = 'mailpwd'; # 邮箱登录密码
    $g_use_phpMailer = ON; # 使用 PHPMailer 发送邮件
    $g_phpMailer_path = 'C:/PHP/includes/PHPMailer/'; # PHPMailer 的存放路径
    $g_phpMailer_method = 2; # PHPMailer 以 SMTP 方式发送 Email
    $g_file_upload_ftp_server = 'ftp.yourftp.com'; # 上传文件 FTP
    $g_file_upload_ftp_user = 'ftpuser'; # FTP 登录用户名
    $g_file_upload_ftp_pass = 'ftppwd'; # FTP 登录密码
    $g_short_date_format = 'Y-m-d'; # 短日期格式,Y 大写表示 4 位年
    $g_normal_date_format = 'Y-m-d H:i'; # 普通日期格式
    $g_complete_date_format = 'Y-m-d H:i:s'; # 完整日期格式

    完成以上设置以后,你就可以使用Mantis了,打开IE,输入http://localhost/mantis,应该就可以
    看到Mantis的登录页面了,你可以用默认用户名administrator和密码root登录进去,进行管理设置。 

  • bugzilla安装与配置(Windows+Mysql+Perl+IIS)

    2007-12-15 22:45:52

    已在下列系统安装运行成功:
    Win2000_sp4,WinXP_sp2

    所需软件:
    Mysql 4.0.18
    Mysqlcc 0.9.3
    ActivePerl 5.8.0
    Bugzilla-2.17.6

    安装过程:

    1.安装Mysql 4.0.18
      安装Mysqlcc 0.9.3

    2.安装ActivePerl 5.8.0

    3.在Mysql中创建数据库bugzilla
      用户名:bugs(必须是bugs)   密码:任意
      运行cmd进入bugzilla目录,运行perl checksetup.pl查看需要更新的perl模块
      到http://www.cpan.org/选Perl modules->all modules,下载not found的模块,
      perl模块有两种安装方法,一种直接解压下载模块,进入其目录,运行
      perl MakeFile.pl
      nmake
      nmake test (可省略此步)
      nmake install
      (安装了VC就会有nmake)
      另一种是运行ppm <module name>,DBD-mysql-2.9002、DBI-1.38最好用这种方式。
      安装完成后可以运行perl checksetup.pl检查是否bugzilla需要的perl模块都安装完毕。

      运行Modules下的installModule.bat(注意安装的路径)
      所有模块安装完成后,运行perl checksetup.pl,如果模块全部安装正确,会在bugzilla目录下
      生成localconfig文件。
      修改localconfig文件
      $index_html = 1 (生成index.html)
      $mysqlpath = "c\\mysql\\bin" (你的mysql\bin路径)
      $webservergroup = "8"
      $db_host = "localhost" (计算机IP)
      $db_user = "bugs" (mysql的登陆用户名)
      $db_pass = '<bugs_password>'(mysql bugs用户的登陆密码)

      再次运行perl checksetup.pl,系统提示输入administrator邮箱,名字,密码。

    4.默认网站->属性->主目录->配置->添加:
      Executable: C:\Perl\bin\perl.exe "%s" %s
      Extension: .pl
      Limit to: GET,HEAD,POST

      Executable: C:\Perl\bin\perl.exe "%s" %s
      Extension: .cgi
      Limit to: GET,HEAD,POST

    5.新建虚拟目录bugzilla
      bugzilla目录属性->文档:
      添加index.cgi至顶

    6.重起IIS

  • bugs安装与配置(Windows+Mysql+PHP+IIS)

    2007-12-15 22:27:02

    已在下列系统安装运行成功:
    Win2000_sp4,WinXP_sp2

    所需软件:

    mysql-4.0.8-win32        mysql数据库
    mysqlcc-0.9.3-win32      Control Center图形界面
    php-4.4.2-installer.exe  PHP环境
    bugs_1.7.2               bugs缺陷管理工具 

    安装过程: 

    全部选默认安装路径

    1.安装mysql-4.0.8-win32
    2.安装mysqlcc-0.9.3-win32
    3.安装php-4.4.2-installer.exe
    4.运行C:\mysql\bin\winmysqladmin.exe
      第一次运行,会弹出填写用户名和密码的窗口,直接关掉.
    5.运行MySQL Control Center,在Register Server窗口中的Host Name:wind(你的计算机名字),
      点Add.
      在Console Manager窗口中双击root@wind:3306开启连接.
    6.控制面板=>管理工具=>Internet信息服务=>默认网站(右键)=>新建虚拟目录=>别名(bugs)=>浏览目录
     (指向你的bugs_1.7.2)
    7.新建的虚拟目录bugs(右键)=>属性=>文档(添加index.php至顶)=>bugs(右键)=>浏览=>点BUGS Installation scrīpt(安装bugs)
      =>I Accept=>默认选项=>continue=>默认用户名为Administrator你可以在下面设置密码=>update
    8.访问http://192.168.1.90/bugs

       

543/3<123
Open Toolbar