发布新日志

  • 性能测试技术如何提高

    2010-07-12 15:48:04

    wolf 发表于: 2010-2-25 11:51 来源: TEST8848软件测试技术门户网

    先来分析一下一些关于性能测试入门级的常见问题:

    1、请问怎么做象PhotoShop这类单机程序的性能测试;

    2、用Delphi开发的程序,应该用什么协议来录制脚本;

    3、用IP欺骗能对外网进行测试吗;

    关于第1个问题,问题本身并没有错误,单机版也有性能问题。但和我们通常所说的性能测试是两回事,不能混为一谈。如果这个算是问题的话,那我想是由于不清楚性能测试的概念和原理所造成的。第2个问题也不少见,但这种问题无法回答。我们知道,性能测试采用的协议是由被测系统的体系架构和通信协议决定的,而不在乎你用什么开发工具或开发语言。第3个问题,关于IP欺骗一般只用在内网,不管你在内网如何欺骗,经过网络地址转换后到了外网上的IP地址表现就是你的公网的IP,除非你一开始就设置成公网的IP地址,但这个一般都不可能。这个问题体现提问者对于网络知识的理解还不深入。

    以上问题反映了在学习性能测试人员的一个比较普遍的现象,缺乏必要的知识积累、知识面不足,但又由于学习兴趣或工作压力期望急于求成,由此而形成这样一个矛盾的局面。

    在我看来,性能测试是一项综合性很强的工作,甚至可以作为一项工程来看待。

    从性能测试的知识体系来看,性能测试需要掌握性能测试的基础知识、业务知识、开发相关知识、以及性能测试工具。

    基础知识包括性能测试的原理、常见的测试类型、方法、策略,如何进行一个计划、设计、实施、分析等性能测试过程。没有性能测试基础知识,一切简单的性能测试在你手上都将出现各种问题,测试交流将变得难以沟通,同时性能测试的成功率将大大降低。

    业务知识通常都被忽略了。性能测试要基于被测系统的应用场景才有实际的价值,测试场景对性能测试结果有决定性的影响,因此测试场景的设计是非常关键的,场景的设计需要和业务应用结合起来。在一些比较正规的性能测试过程中,会有业务人员配合一起做性能用例设计的。

    开发相关的知识也是必须具备的知识,通常在这方面也是我们最大的缺点。这方面的知识包括操作系统、数据库、应用服务器、中间件、网络等,每一个都是一门很深的学问,而要求性能测试人员都精通好像也不太现实。但起码的知识还是需要掌握的,比如通常有哪些参数需要监控和调整,它们之间是如何通信和运作的,某一方面知识的欠缺都可能导致测试模拟不准确或问题定位不充分,没有这些知识的支撑性能测试将变得难以下手或者学习工作的进展都会有很大的影响。

    测试工具的应用,这个是目前学习的焦点。只有在前面3点的基础上,采用合适的测试工具,才有助于测试目标的达成。

    从另外的角度分析,性能测试又可以分为技术、方法和管理方面的范畴。没有方法的指导光有技术那是行不通的,那是有勇无谋的体现。同时性能测试经常作为一个独立的阶段和活动,更需要用项目管理的方法进行,比如一个在客户现场的性能测试验收测试,与客户进行交流、时间计划的制定、测试进度的控制、测试脚本和测试数据的版本管理、各种资源的谐调等,都是需要用管理的思想进行的。

    从以上分析可以看出,由于性能测试工作需要具备这么多的知识,因此在一定程度上也成为了性能测试的门槛。这个综合的门槛将会成为很多性能测试新手入门的一道障碍,要突破这道障碍,建议结合自己的知识体系有针对性地去学习和提高。

    性能测试是一个技术与方法并重的工作,目前论坛上多谈技术,少谈方法,很多人甚至在没有任何性能测试基础知识的情况下就埋头苦学测试工具,我觉得是不应该的。我们应该意识到,测试工具只是性能测试中的一部分,仅是为达到性能测试目的而采用的一种手段。性能测试对于我们最大的价值在于方法和经验,我们学习的目标是整个性能测试过程上方法学的东西,而不是掌握具体某个测试工具。LoadRunner并不是万能的,在什么情况下应该采用什么工具才能达到最佳的效果,需要我们去判断。

    另外,学习需要有一个循序渐进的过程,性能测试需要长时间的知识积累,没有什么捷径可言。从学习效率和职业发展方面考虑,本人不太建议没有工作经验的测试新手一上来就扎进性能测试之中去,这样将花费你更多的时间精力去学习,是一种事倍功半的效果。
  • 常见的敏捷开发流程比较

    2010-07-05 10:11:58

    速度是企业竞争致胜的关键因素,软件项目的最大挑战在于一方面要应付变动中的需求,一方面要在紧缩的时程内完成项目,所以软件团队除了在技术上必须日益精进,更需要运用有效的开发流程,以确保团队能够发挥综效。这正是Agile Process ( 敏捷的软件开发流程) 于近年来兴起的主要原因,本文将介绍数种广为接受的软件开发流程,及其在运用上的建议。

     

    1  Agile Process - 敏捷的开发流程

    几乎所有的软件项目都会在起始阶段面临选择开发流程的困难,一种是完备的开发流程,另一种是简易轻便的流程。 虽然我们了解采用完备的开发流程可以提高软件的质量,但是因为欠缺人力、工具与时间,我们常会被迫采用简化的流程,但事与愿违,大部分的情况我们仍然难以在预算内及时完成项目。
        Agile Process (
    敏捷的开发流程) 是一种软件开发流程的泛称,Agile Process 具有下列几项共通的特性:
    1. 
    客户与开发人员形成密切合作的团队,因为客户无法于初期定义完整的规格,而开发人员于开发过程中也常常无法知悉外在环境或业务的变动,所以需要两者密切合作方能开发适用的软件。
    2. 
    项目最终的目标是可执行的程序,因此所有的中间产品必须经过审慎评估,确认有助于最终目标,才需要制作中间产品。
    3. 
    采用IterativeIncremental 方式分阶段进行,密集review 是否符合需求。
    4. 
    流程可以简单,但规划与执行必须严谨。
    5. 
    强调团队合作,赋予高度的责任,团队有自主权得以因应变化做调整。

     

    2  RUP 开发流程- Rational Unify Process

    RUP IBM Rational 公司经过多年的研发与经验所提出的软件开发流程,其内容含盖Business modeling, Requirement Modeling, Logical Design, Implementation, Testing, Deployment 等软件开发生命周期的直接工作,与Project Management, Change & Configuration ManagementEnvironment support 等支持性工作。  RUP 的内容非常丰富,不同的项目需要不同调整,IBM Rational 提供RUP workbench 工具,方便调整RUP ,并公布于Web ,方便项目成员遵循统一的流程规范进行工作。
        RUP
    的主要精神为:1. 项目进行采用Iterative 程序分阶段渐进地完成项目功能;2. 广泛使用Visual Modeling 于商业需求分析、系统分析与系统设计;3. 强调架构设计;4. 对每项工作所需要的技术、工具、做法、模板、检查项目均有详细的定义,架构 完备且具有可调整的弹性。
    因为RUP 的流程规范与相关技术较复杂,所以导入时必须注意几个因素:1. 主管的支持以确保足够的资源投入;2. 分 阶段导入;3. 适当的训练与密切的顾问咨询;4 . 使用Modeling 技术时需要考虑Coding 的实作环境;5. 良好团队的管理,以沟通、耐心与坚持解决变革的人性阻力。

     

    3  XP 开发流程- eXtreme Programming

        XP 亦称为终极流程,是最轻量级的开发流程,其最主要的精神是『在客 户有系统需求时,给予及时满意的可执行程序』,所以最适合需求快速变动的项目。XP 经过6 年的实作与修改,已演化为精致的开发流程,但仍不失其精简的特性,它强调客户所要的是workable 的执行码,所以把与撰写程序无关的工作降 至最低,并要求客户与开发人员最好以side-by-side 的方式一起工作。
        XP
    开发流程的基本步骤为:1. 开发人员随时可以和客户进行 有效沟通,撰写user stories 以确认需求。  2. 简易快速的系统设计,撰写独立的验证程序以解决特殊困难的问题,找出算法即可丢弃验证程序。  3. 规划多次小型阶段的项目计划,以最快速度完成每一阶段的程序交付客户,客户负责Acceptance tests4. Coding 前必须完成Unit TestAcceptance tests 程序,所有模块整合前都须经过Unit Tests5. 开发人员必须快速响应Bug 与需求变更;6. 要求二人一组使用一台计算机设计程序,当一人coding 时,另一人负责思考与设计;7. 程序 必须符合程序规范,并常做程序的重整(Refactoring)
        XP
    属于较精简的流程,于导入应注意几件事情:1. 最好有顾问给予协助;2. 持续的Review3. 可适当调整流程,但不可失去其基本精神。

     

     4  SCRUM 开发流程

        SCRUM 开发流程是Agile Process 的一种,以英式橄榄球争球队形(Scrum) 为名,基本假设是『开发软件就像开发新产品,无法一开始就能定义Final Product 的规程,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证项目成功』。  Scrum 将软件开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具备的最佳典范与技术,具有高度自主权,紧密地沟通合作,以高度弹性解决各种挑战,碓保每天、每个阶段都朝向目标有明确的推进,因此SCRUM 非常适用于产品开发项目。
        SCRUM
    开发流程通常以30 天为一个阶段,由客户提供新产品的需求规格开始,开发团队与客户于每一个阶段开始时挑选该完成的规格部份,开发团队必须尽力于30 天后交付成果,团队每天用15 分钟开会检视每个成员的进度与计划,了解所遭遇的困难并设法排除。
        SCRUM
    与传统开发流程及项目管理差异较大,于导入时最好有顾问协助。

     

    总结

        Agile Process 的精神已经成为共识,但是没有一种固定的流程可以重复使用在不同的项目上。 而且不管是RUPXPSCRUM 、或其它的开发流程都允许相当大的弹性,我们必须按项目性质的不同,调整或混合出适合的开发流程,并允许团队于进行中做必要的弹性修改,方能达成目标。

     

    参考数据

    RUP www.rational.com
    XP
    www.extremeprogramming.org
    SCRUM
    www.controlchaos.com
    AGILE
    www.agilealliance.org

  • Loadrunner9.5软件下载

    2010-04-14 17:07:26

    1.loadrunner9.5软件下载:
    HP官网:(需要注册网站用户)
    用户名:testing_account@tom.com 密码:wuye123.
    下载 文件大小 链接
    Software, LoadRunner 9.50 Win 1,701 MB T7177-15008.zip
    Software,LoadRunner 9.50 UNIX/Linux 341 MB T7177-15009.iso
    Letter, LR 9.50, T7177-62006 0 MB T7177-88005.pdf
    Letter, Welcome HP Diag 8.00 SW Media 0 MB T8352-88006.pdf
    附加:
    加载.iso文件工具:daemon4304-lite:
    http://download.csdn.net/down/1247612/muwei0516
    加载镜像前,先请参数设置_集成_文件关联_勾选ISO文件.
    2.loadrunner9.5安装(图解):
    3.loadrunner9.5破解:
    4.loadrunner9.5破解文件:
    5.51Testing系列丛书:性能测试进阶指南——LoadRunner 9.1实战:
433/3<123
Open Toolbar