测试之道、

发布新日志

  • 学习计划

    2011-10-09 15:46:18Top 1 Digest 1

       最近没什么事情要做,觉得自己就再混日子,因为一直在做着功能测试中最基本的黑盒测试工作,就想了自己的职业规划.考虑到自己没什么技术,找同事、网上搜资料;决定学一些技术来锻炼自己.
       一、数据库知识;
       二、软件测试理论基础;
       三、自动化测试应用;
       四、性能测试;
       五、银行业务;
       六、Linux学习;
     
       学习不是一朝一夕的,要养成好的习惯,最终才能实现自己想要的.!不是吗?!、
  • 我、、回来啦

    2011-10-09 14:19:49Top 1

        最近一直在忙, 很少进来看看、 ,希望大家在测试技术中可以多探讨、探讨、
  • Loadrunner 进行 IP欺骗测试

    2008-12-25 00:13:20

    使用loadrunner进行IP欺骗首先要注意以下两点:

    1、  本地的IP设置不能为“自动获取”,必须指定一个静态IP

    如果本地是动态获取IP,在运行IP Wizard时会弹出提示:

    The IP wizard does not support DHCP-enabled network cards.
    Your cards are either DHCP-enabled or configured with invalid settings.
    Please contact your system administrator.

    此时只需要将IP地址改成静态IP地址就可以了

    2、  所添加的IP只能是局域网内的网段
    只能添加192段,127段,10段IP地址
    好下面开始介绍如何使用IP欺骗

    一、添加IP地址

    第一步:
    运行Mercury LoadRunner- Tools-IP Wizard
    弹出的IP设置向导中的各项含义如下:

    1、  create new setting   新建IP列表
    当我们第一次使用IP欺骗或已经释放所添加的IP时,需要选择此项添加新的IP地址

    2、  load previous setting from file   读取IP列表文件
    从以前设置的IP地址列表文件中读取IP地址

    3、  restore original setting   释放已设置的IP
    释放已经添加的IP地址

    说明:loadrunner在做IP欺骗时,真实的虚拟了IP地址,该IP地址均真实存在,可以ping通,可以建立网络链接,在不使用时必须进行释放,否则这些IP地址将一直存在。

     第二步:

    选择create new setting,点击“下一步”
    此时出现的页面是让输入服务器的IP地址,loadrunner通过该地址更新路由表。
    客户端计算机上添加新的 IP 地址后,服务器需要将该地址添加到路由表,以便能够识别返回到客户端的路由。如果服务器和客户端具有相同的子网掩码、IP 类和网络,则不需要修改服务器的路由表。
    注意: 如果客户端和服务器计算机之间有一个路由器,则服务器需要识别经过该路由器的路径。确保将以下路由添加到服务器路由表:从 Web 服务器到路由器的路由,以及从路由器到负载生成器计算机上的所有 IP 地址的路由。

     第三步:
    在输入服务器地址的页面中不输入任何地址,直接点击“下一步”
    进入IP添加页面
    点击“add”进行添加
     
    第四步:
    在from ip 输入框中输入起始ip,在Number to输入框中输入ip地址的位数
    输入正确的子网掩码
    选中“verify that new ip addresses are not already used”
    点击“ok”,此时IP Wizard会自动按照设置生成IP地址,并且将已经占用的IP列出
     
    第五步:
    确认可用IP地址列表内容后,点击“ok”
    此时IP Wizard提示需要重新启动计算机,点击“save as”保存IP列表
    点击“ok”,重新启动计算机
     
    第六步:
    计算机重新启动后,在运行行中输入:CMD,在DOS命令窗口中输入:IPCONFIG,此时便可看到虚拟的IP地址均已经被启用

    二、在loadrunner中使用虚拟IP

    第一步:
    打开controller,在controller中,选择 Scenario-〉Enable IP Spoofer,此项设置允许使用IP欺骗。

    第二步:
    设计场景:
    有两种方案来设计场景

    1、  本地使用虚拟IP设计场景(不带负载生成器使用localhost进行测试)
    在设置该类场景时,在场景中添加一个录制好的脚本,该脚本中添加如下代码便可看到虚拟用户在使用哪个IP地址进行消息发送,该场景是通过线程方式进行性能测试。

    char * ip;
    ip=lr_get_vuser_ip();
    if (ip)
    {
        lr_vuser_status_message("The ip address is %s",ip);
    }
     else
    lr_vuser_status_message("IP spoofing disabled");
           在controller中执行该脚本时,查看虚拟用户运行状态,便可看到当前虚拟用户使用的哪个IP地址发送消息

    2、  负载生成器使用虚拟IP设计场景
    在设置该类场景时,需要添加负载生成器,建立负载生成器时输入创建的虚拟IP,每个负载生成器为一个虚拟用户组,该场景是通过进程方式进行性能测试。
    如何添加负载生成器创建场景在这里就不多描述了。
    但需要注意,选中Tools下的Expert mode,启动专家模式
    再点击Tools下的options
    在Genearl选项卡中设置已线程方式或进程方式进行性能测试,这个选项一定要与当前场景的模式相匹配,也就是说使用本地虚拟IP测试时需要选中线程方式,使用负载生成器使用虚拟IP测试时需要选中进程方式

     三、使用虚拟IP测试完成后
    打开IP Wizard,释放所有虚拟IP。
    重新启动计算机

  • 测试人员应具备的七种思维方式

    2008-12-24 23:50:23

      作为软件测试人员,应具备以下七种思维方式:逆向思维方式,组合思维方式,全局思维方式,两极思维方式,简单思维方式,比较思维方式,动起来,更精彩!

      1、逆向思维方式

      ☆逆向思维在测试中用的很多,比如将根据结果逆推条件,从而得出输入条件的等价类划分

      ☆其实逆向思维在调试当中用到的也比较多,当发现缺陷时,进一步定位问题的所在,往往就是逆流而上,进行分析

      ☆逆向思维是相对的,就是按照与常规思路相反的方向进行思考,测试人员往往能够运用它发现开发人员思维的漏洞

      2、组合思维方式

      ☆很多东西单一的思考都没有问题,当将相关的事物组合在一起却能发现很多问题;如多进程并发,让程序的复杂度上了一个台阶,也让程序的缺陷率随之而增长

      ☆按照是否排序组合可以分为:排列(有序)和组合(无序);针对不同的应用,可以酌情考虑使用“排列”或者“组合”

      ☆为了充分利用组合思维而不致于让自己的思维混乱,要注意“分维”,将相关的因素划分到不同的维度上,然后再考虑其相关性

      3、全局思维方式

      ☆事物往往存在多面性,当我们掌握了越多的层面,我们对它的认识就越清楚,越有利于我们掌握其本质,全局思维方式就是让我们从多角度分析待测的系统;试着以不同角色去看系统,分析其是否能够满足需求

      ☆其实平常我们在软件开发过程中,进行的各种评审,就是借助全局思维的方式,让更多的人参与思考,脑力激荡,尽可能的实现全方位审查某个解决方案的正确性以及其他特性

      4、两极思维方式

      ☆边界值分析是两极思维方式的典范

      ☆为了看系统的稳定性,我们采用了压力测试

      ☆两极思维方式,是在极端的情况下,看是否存在缺陷?

      ☆注意是两极,不是一极

      ☆测试人员做久了,往往容易走极端——职业病,不利于与人沟通

      5、简单思维方式

      ☆剥离一些非关键特征,追逐事物的本质,让事物简单的只剩下“根本”

      ☆针对事物本质(解决问题的本质)的测试,让我们不至于偏离方向

      6、比较思维方式

      ☆认识事物时,人们往往都是通过和头脑中的某些概念进行比较,找出相同、相异之处,或者归类,从而将其加入大脑中的知识体系,可能的话,再建立好的搜索方式,以便以后使用

      ☆应用模式是“比较思维”很常见的例子,现在模式很火,有设计模式、体系结构模式、测试模式、等等,一些专家针对一些相关问题的共性找出来的解决方法,取完名字后,可以让大家方便的复用

      ☆让经验在这里发挥作用,测试中经验很重要,比较思维是使用经验的方式

      7、动起来,更精彩

      ☆关注程序的运行时状态

      ☆传统的基于结构的程序可以更多的在代码中反映将来程序的运行方式;而面向对象将代码和运行时显著分离

      ☆让我们在关注代码静态结构(如类结构)的同时,也要谨慎关注其动态(对象交互网)表现

      其实这些思维方式,大家都在有意识或者无意识的使用着,它们各自都有自己的妙处,将我们的思维发散,有意识的将他们用在问题的思考上,有时可以给我们一种“柳暗花明又一村”的感觉。

      最后想说,只是知道这些原则意义不是很大,如果真能让它们成为思考的血液,才能发挥它的真正价值。那真的需要很多的历练,其实成为一名出色的测试人员,远没有那么简单,需要简单,需要(不断的学习+不断的经历+不断的思考)。

  • 网页信息

    2008-11-17 18:55:16

    错误信息:Error 501/505:Not Implemented or Not Supported(错误 501/505:未实现或不支持)

    当您尝试在基于 Windows XP 的计算机上使用 Internet Explorer 查看 Web 页时,您可能会收到类似于以下内容的错误信息:
    Error 501/505:Not implemented or not supported.

    原因

    如果存在下列任一情况,则可能发生此问题:
    第三方产品干扰了 Internet Explorer。
    启用了 HTTP 1.1 设置。

     

    解决方案

    要解决此问题,请执行以下操作:
    1. 在 Internet Explorer 中,单击工具菜单中的 Internet 选项
    2. 在“Internet 选项”对话框中,单击“高级”选项卡。
    3. 单击以清除“HTTP 1.1”复选框,然后单击“确定”。
    4. 进行测试以确定问题是否已解决。如果问题已经解决,请不要继续进行余下的步骤。如果问题没有解决,请转至下一步。
    5. 在 Internet Explorer 中,单击工具菜单中的 Internet 选项
    6. 在“Internet 选项”对话框中,单击“高级”选项卡。
    7. 单击以清除“Show friendly HTTP error messages”(显示友好 HTTP 错误信息)复选框。
    8. 尝试查看 Web 页,以再现错误信息以及接收新的更具体的错误信息。这条新的错误信息可能类似于以下内容:
    程序名 不支持 HTTP 版本。
    请记下这条新的错误信息中的程序名。
    9. 您在步骤 8 中记下的程序名可能是此问题的原因。请删除此程序,或者与程序厂商联系以询问是否有此问题的修补程序。

     

    更多信息

    自 2002 年 12 月起,HTTP 1.1 已成为新的 Internet 协议。因为有些 Web 站点使用 HTTP 1.0,所以如果您启用了 HTTP 1.1,可能会遇到连接问题。
  • 软件测试基本流程

    2008-11-06 15:31:26

    一:软件测试的阶段划分

    可以从三个角度来将软件测试划分为多个阶段:

    1. 面向软件测试操作类型的划分,如调试、集成、确认、验证、组装、验收、操作;

    2. 面向软件测试对象粒度的划分,如语句、结构、单元、部件、配置项、子系统、系统、大系统;

    3. 面向软件测试实施者的划分,如开发者、测试者、验收者、使用者。

    二: 软件测试阶段的步骤

    每个软件测试阶段都要经历以下步骤:测试需求分析、测试过程设计、测试实现、测试实施、测试评价、测试维护。

    2.0 a 测试需求分析
    测试需求是整个测试过程的基础;确定测试对象以及测试工作的范围和作用。用来确定整个测试工作(如安排时间表、测试设计等)并作为测试覆盖的基础。而且被确定的测试需求项必须是可核实的。即,它们必须有一个可观察、可评测的结果。无法核实的需求不是测试需求。所以我现在的理解是测试需求是一个比较大的概念,它是在整个测试计划文档中体现出来的,不是类似的一个用例或者其他 .
    · 测试需求是制订测试计划的基本依据,确定了测试需求能够为测试计划提供客观依据;
    · 测试需求是设计测试用例的指导,确定了要测什么、测哪些方面后才能有针对性的设计测试用例;
    · 测试需求是计算测试覆盖的分母,没有测试需求就无法有效地进行测试覆盖;
    b  测试过程设计:包括测试计划 , 测试策略制定,测试时间安排用,测试用例编写等
    c  测试实现:环境配置好了,新的版本也收到了,人员也都培训好了等等
    d   测试实施:已经按照测试计划进行展开了,比如手工测试,自动化测试等
    e   测试评价:对版本测试覆盖率,测试质量,人员测试工作以及前期的一些工作制定情况进行评价,评估
    f  测试维护:对测试用例库,测试脚本, bug 库等进行维护,保证延续性等

    2.1 软件测试步骤

    测试步骤

    输 入 输 出
    测试需求分析 1. 软件测试的方法与规范

    2. 软件需求规格说明

    3. 软件设计说明(概要设计说明和详细设计说明)

    软件测试计划:

    1) 软件测试的定位

    2) 软件测试线索

    3) 软件测试环境的定义

    4) 软件需求的追踪矩阵

    测试过程设计 1. 软件测试的方法与规范

    2. 软件测试计划

    软件测试说明:

    1) 软件测试步骤

    2) 软件测试基准

    3) 测试线索的追踪矩阵

    测试实现 1. 软件测试的方法与规范

    2. 软件测试说明

    3. 软件测试工具

    软件测试的实现配置:

    1) 软件测试环境

    2) 测试步骤的计算机表示(用于回归测试的测试代码 / 测试数据)

    3) 测试基准的计算机表示

    测试实施 1. 软件测试的方法与规范

    2. 软件测试说明

    3. 软件测试的实现配置

    软件测试记录:

    1) 测试运行结果的计算机表示

    2) 测试比较结果的计算机表示

    3) 测试日志

    4) 软件问题报告

    测试评价 1. 软件开发文档

    2. 软件测试文档

    3. 软件测试配置

    4. 软件测试记录

    软件测试报告:

    1) 测试结果的统计信息

    2) 测试结果的分析 / 评判

    测试配置管理 测试配置管理项:

    1) 软件测试的描述性表示(测试文档 / 文件)

    2) 软件测试的计算机表示(测试代码 / 数据 / 结果)

    1. 软件测试配置管理项的标识管理

    2. 软件测试配置管理项的存储管理

    3. 软件测试配置管理项的引用控制

    4. 软件测试配置管理项的版本控制

    5. 软件测试配置管理项的更动控制

    测试维护 测试配置管理项 1. 测试配置管理项的使用报告

    2. 测试配置管理项的软件问题报告

    3. 测试配置管理项的更动控制文件

    2.2 软件系统的测试流程

    显示了大型复杂软件系统的测试流程。

    可以看到,结合测试操作类型和测试对象粒度的划分角度,软件测试阶段可分为:单元测试、部件集成、部件确认、配置项组装、配置项确认、系统综合和系统验收等。每个阶段都要经历测试需求分析、测试过程设计、测试实现、测试实施、测试评价、测试维护的六个步骤。

    表 2 说明各测试阶段的定义。


    阶 段 标识 被测对象 目 的 完成后产品状态
    单元测试 UT 单元 获得可组装的单元 可执行的单元
    部件集成测试 CI 单元、

    三级部件、

    二级部件

    集成单元成部件 二级部件环境中可执行的部件
    部件确认测试 CV 三级部件、

    二级部件

    确认将被组装的部件 二级部件环境中满足文档要求的部件
    配置项组装测试 II 二级部件、

    一级部件、

    配置项

    组装部件成配置项 二级部件环境中满足文档要求的部件
    配置项确认测试 IV 配置项、

    子系统

    确认配置项的功能和性能 模拟环境中满足软件需求的配置项
    系统综合测试 SI 子系统

    系统

    动态协调开发环境下的各子系统 仿实际运行环境中满足用户需求的子系统
    系统验收测试
    SA 子系统

    系统

    关键配置项

    关键部件

    确认系统的功能和性能 仿实际运行环境中满足用户需求的系统

  • 缺陷跟踪及管理软件之--- Jira(破解版)

    2008-10-31 22:41:39

     
    一、 Jira安装
    二、 Jira破解
    三、 Jira默认数据库改为ms mqlserver
    四、 Jira跟cvs关联

    硬件环境
    thinkpad x61
    软件环境
    windows xp sp3
    ms sqlserver 2000 sp4
    网络环境
    普通局域网

    需要下载的软件
    1 jira
    下载地址:http://www.fangwai.net/
    我下载的是:atlassian-jira-enterprise-3.12.3-windows-installer.exe
    2 破解补丁
    下载地址就不放了,不和谐
    我下载的是:atlassian-extras-1.12.jar
    3 连接ms sqlserver用的JDBC驱动
    下载地址:http://jtds.sourceforge.net/
    我下载的是:jtds-1.2.2-dist.zip

    一 jira安装
    1 安装jira
    双击exe,没什么好说的,唯一一个注意的是:是否把jira注册为windows服务,安装的时候有链接详细说明,此处不再赘述。
    我选择了注册为windows服务后,可以从windows的“服务管理器”看到jira服务,我的叫做“Atlassian JIRA Enterprise Edition 3.12.3”

    二 jira破解
    1 默认可以申请30天试用,强烈不推荐非法破解,由于此文档产生的一切责任后果自负。
    注册机网上有下载,我使用的是用别人破解好的文件覆盖原文件的方法:
    将atlassian-extras-1.12.jar覆盖C:\Program Files\JIRA-Enterprise-3.12.3\atlassian-jira\WEB-INF\lib下同名文件即可。
    2 开启服务,在浏览器输入http://localhost:8080如果出现jira向导就说明成功安装了。
    输入序列号的地方输入
    12345
    12345
    12345
    12345
    12345
    如果点击下一步不提示序列号错误就完成注册了。

    三 jira默认数据库改为ms mqlserver
    1 创建jiradb数据库
    2 创建jirauser用户,密码随意,为了描述方便此处用sonic,把jiradb的public和db_ower角色赋给jirauser。
    3 编辑C:\Program Files\JIRA-Enterprise-3.12.3\conf\server.xml 文件,有一段是
    <Context path="" docBase="${catalina.home}/atlassian-jira" reloadable="false">
    <Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"
    username="sa"
    password=""
    driverClassName="org.hsqldb.jdbcDriver"
    url="jdbc:hsqldb:${catalina.home}/database/jiradb"
    minEvictableIdleTimeMillis="4000"
    timeBetweenEvictionRunsMillis="5000"
    maxActive="20" />
    修改几个地方:用户名、密码、驱动、URL
    修改以后类似:
    <Context path="" docBase="${catalina.home}/atlassian-jira" reloadable="false">
    <Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"
    username="jirauser"
    password="sonic"
    driverClassName="net.sourceforge.jtds.jdbc.Driver"
    url="jdbc:jtds:sqlserver://localhost:1433/jiradb"
    minEvictableIdleTimeMillis="4000"
    timeBetweenEvictionRunsMillis="5000"
    maxActive="20" />
    4 编辑 C:\Program Files\JIRA-Enterprise-3.12.3\atlassian-jira\WEB-INF\classes\entityengine.xml文件,有一段是:
    <datasource name="defaultDS" field-type-name="hsql"
    schema-name="PUBLIC"
    …………
    修改为
    <datasource name="defaultDS" field-type-name="mssql"
    删除下一行的
    schema-name="PUBLIC"
    5 把下载好的jtds驱动压缩包解压,把其中的jtds-1.2.2.jar文件拷贝到C:\Program Files\JIRA-Enterprise-3.12.3\common\lib目录下。
    6 最后重启一下服务就可以了。

    四 jira跟cvs关联
    1 配置cvs模块
    1.1 Cvsroot 设置:jira支持的访问方式有pserver,ext(ssh)以及本地的仓库三种。
    a :some/local/path (对于本地的仓库)
    b :pserver:username@hostname:port/some/path (利用pserver访问,适用于局域网)
    c :ext:username@hostname:/some/path (利用ssh协议访问,适用于internet)
    1.2 Module name :是cvs服务器上的模块名称。模块的名称应该和后面的log的信息是一致的,也就是说log是针对该模块的日志。所以如填写了一个cvs上没有模块,则就找不到log文件,那样创建就会失败。
    1.3 Log Retrieval:一种是自动检索cvs log, 一种是手动更新log.
    1.4 Log File Path:如果上面选择的是手动更新Log,则需要自己先建立一个log文件,然后再这里选中它,如果是自动检索的话,那么可以任意制定一个路径,jira会自动将cvs log文件复制到指定位置。
    1.5 Cvs timeout:默认设置是600秒,也就是说在cvs更新后一个小时才在jira上更新日志信息。
    1.6 Password: 如果选择了自动检索日志的话,就需要输入密码,该密码是登陆cvs服务器的密码。
    2 将cvs模块和jira的项目关联
    2.1 打开项目列表
    2.2 在需要加入cvs模块的项目后面选择查看
    2.3 在CVS Modules点击选择modules,从中选择相应的模块即可。这样系统就会获取该模块的日志,更新Jira指定的日志文件。
    2.4 对于jira中的问题,每个问题都拥有一个问题id,在cvs用户向服务器提交了该问题的修改版本时,log message中填写相应的问题id,那么对于问题所在源代码的修改就可以在jira的版本控制中反映出来。
    3 修改模块更新频率
    3.1 管理-〉System->services中更改 VCS Update Service的时间就可以了。
  • 跟踪及管理软件之--- Jira(破解版)

    2008-10-31 21:56:29

    JIRA破解版真难找。终于还是找到了。呵。。。。

          JIRA是一个优秀的问题(or bugs,task,improvement,new feature )跟踪及管理软件。
        它由Atlassian开发,采用J2EE技术.它正被广泛的开源软件组织,以及全球著名的软件公司使用,它堪称是J2EE的Bugzilla。

       JIRA提供了全面的功能,界面十分友好,可用性以及可扩展性方面都十分出色,如果购买商业版许可,还可以得到JIRA的源码(在开发许可协议下可以定制自己的JIRA系统)。

     
    JIRA 3.6 下载:
    http://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-enterprise-3.6-standalone.zip

    地址已更新:

    下载(请将rar中的文件释放下来,直接覆盖掉web-inf下面的包即可,适用版本3.6):
    http://www.blogjava.net/Files/martinx/atlassian-extras-0.7.19.rar


    破解jira的License。只是把classes反编译过来,修改一下。效果如下,License的类型为JIRA Enterprise: Commercial Server。


    //要让程序能找到这个包。atlassian-extras-0.7.19.jar

    import com.atlassian.license.LicensePair;
    import java.io.*;
    import java.security.KeyFactory;
    import java.security.Signature;
    import java.security.spec.PKCS8EncodedKeySpec;

    public class keygen
    {

    public keygen()
    {
    }

    public static void main(String args[])
    throws IOException
    {
    try
    {
    long l = 267L;
    long l1 = System.currentTimeMillis();
    long l2 = System.currentTimeMillis();
    String s = “”;
    System.out.println(”Keygen for JIRA Enterprise Edition.”);
    System.out.print(”created by mydaj[ROR].”);
    do
    {
    System.out.print(”\nEnter your organization name: “);
    for(int i = System.in.read(); i != 10 && i != 13; i = System.in.read())
    s = s + (char)i;

    } while(s == “”);
    try
    {
    PKCS8EncodedKeySpec pkcs8encodedkeyspec = new PKCS8EncodedKeySpec(EncodedPrvKey);
    KeyFactory keyfactory = KeyFactory.getInstance(”DSA”, “SUN”);
    java.security.PrivateKey privatekey = keyfactory.generatePrivate(pkcs8encodedkeyspec);
    String s1 = Long.toString(l, 10);
    s1 = s1 + “^^”;
    s1 = s1 + Long.toString(l1, 10);
    s1 = s1 + “^^”;
    s1 = s1 + Long.toString(l2, 10);
    s1 = s1 + “^^”;
    s1 = s1 + s;
    byte abyte0[] = s1.getBytes();
    Signature signature = Signature.getInstance(”SHA1withDSA”);
    signature.initSign(privatekey);
    signature.update(abyte0);
    byte abyte1[] = signature.sign();
    LicensePair licensepair = null;
    try
    {
    licensepair = new LicensePair(abyte0, abyte1);
    }
    catch(Exception exception1)
    {
    exception1.printStackTrace();
    }
    System.out.println(s1);
    System.out.println(”Your license key is: “);
    System.out.println(licensepair.toString());
    }
    catch(Exception exception)
    {
    exception.printStackTrace();
    }
    }
    catch(IOException ioexception) { }
    }

    static byte EncodedPrvKey[] = {
    48, -126, 1, 75, 2, 1, 0, 48, -126, 1,
    44, 6, 7, 42, -122, 72, -50, 56, 4, 1,
    48, -126, 1, 31, 2, -127, -127, 0, -3, 127,
    83, -127, 29, 117, 18, 41, 82, -33, 74, -100,
    46, -20, -28, -25, -10, 17, -73, 82, 60, -17,
    68, 0, -61, 30, 63, -128, -74, 81, 38, 105,
    69, 93, 64, 34, 81, -5, 89, 61, -115, 88,
    -6, -65, -59, -11, -70, 48, -10, -53, -101, 85,
    108, -41, -127, 59, -128, 29, 52, 111, -14, 102,
    96, -73, 107, -103, 80, -91, -92, -97, -97, -24,
    4, 123, 16, 34, -62, 79, -69, -87, -41, -2,
    -73, -58, 27, -8, 59, 87, -25, -58, -88, -90,
    21, 15, 4, -5, -125, -10, -45, -59, 30, -61,
    2, 53, 84, 19, 90, 22, -111, 50, -10, 117,
    -13, -82, 43, 97, -41, 42, -17, -14, 34, 3,
    25, -99, -47, 72, 1, -57, 2, 21, 0, -105,
    96, 80, -113, 21, 35, 11, -52, -78, -110, -71,
    -126, -94, -21, -124, 11, -16, 88, 28, -11, 2,
    -127, -127, 0, -9, -31, -96, -123, -42, -101, 61,
    -34, -53, -68, -85, 92, 54, -72, 87, -71, 121,
    -108, -81, -69, -6, 58, -22, -126, -7, 87, 76,
    11, 61, 7, -126, 103, 81, 89, 87, -114, -70,
    -44, 89, 79, -26, 113, 7, 16, -127, -128, -76,
    73, 22, 113, 35, -24, 76, 40, 22, 19, -73,
    -49, 9, 50, -116, -56, -90, -31, 60, 22, 122,
    -117, 84, 124, -115, 40, -32, -93, -82, 30, 43,
    -77, -90, 117, -111, 110, -93, 127, 11, -6, 33,
    53, 98, -15, -5, 98, 122, 1, 36, 59, -52,
    -92, -15, -66, -88, 81, -112, -119, -88, -125, -33,
    -31, 90, -27, -97, 6, -110, -117, 102, 94, -128,
    123, 85, 37, 100, 1, 76, 59, -2, -49, 73,
    42, 4, 22, 2, 20, 42, 50, -88, 30, 125,
    -37, 118, -50, 20, -82, -63, 0, 8, -36, 106,
    -9, -110, 124, 107, 68
    };






    环境:windows,Tomcat5.5.4,MS SQLServer2000

    1.将JIRA的zip包文件解压缩到硬盘中(不要使用windowsXP自带的unzip功能!);

    2.运行JIRA的启动脚本文件:windows平台上就是运行bin目录下的startup.bat 文件;

    以上就可以启动JIRA了,通过http:/localhost:8080/就可以访问JIRA了!
    这时候的JIRA使用了Standalone版本中集成的Tomcat和HSQL数据库(轻量级的数据库)。

    如果用作商业使用,应该将JIRA安装到企业级的外部数据库上!以下介绍JIRA的Standalone版本在外部MS SQLServer2000上的安装过程:

    1.安装MS SQLServer2000数据库,记着要安装MS SQLServer2000的Service Pack4;
    1.1安装过程要自定义,选择chinese_RPC排序方式,语言为simple chinese;
    1.2身份验证选择混合模式;

    2.然后创建jiradb和jirauser,创建jirauser的过程中要先创建一个登录名jirauser;把public和dbo角色赋给jirauser,不要将jirauser作为dbower;

    3.编辑conf/server.xml 文件,将<Context ... .../>中的内容,修改为:
    <Context path="" docBase="${catalina.home}/atlassian-jira" reloadable="false">
    <Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"
    username="jirauser"
    password="123456"
    driverClassName="net.sourceforge.jtds.jdbc.Driver"
    url="jdbc:jtds:sqlserver://localhost:1433/jiradb" />

    4.编辑 atlassian-jira/WEB-INF/classes/entityengine.xml文件, 修改field-type-name 的属性值为mssql(field-type-name="mssql");

    5.下载连接MS SQLServer数据库的JDBC Driver,推荐使用JTDS(http://jtds.sourceforge.net/),将jtds-[version].jar文件拷贝到common\lib目录下;

    6.运行bin目录下的startup.bat,启动JIRA;

    7.通过浏览器地址http://localhost:8080/访问JIRA,根据向导配置JIRA.
  • LoadRunner使用笔记

    2008-10-19 18:08:14

    工具介绍

    LoadRunner: LoadRunner是一种预测系统行为和性能的工业标准级负载测试工具。通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。

    10字真言:虚拟的用户,真实的负载

    VuGen: 脚本录制工具

    Controller:场景控制器

    Analysis: 结果分析工具

    经验总结

    1.测试需求及目标

    a.性能测试的第一步工作就是要“明确客户的需求“,这一阶段我称之为命题作文。作文如果跑题了即使长篇大论也无济于事。

    b.这一阶段的参与者包括需求提出人员和测试人员,由于性能测试一般没有需求变更的情况,要求需求人员一定是比较权威。

    c.一般来说,项目级性能测试客户自身会根据系统使用者范围(总用户数或在线用户数),系统使用环境(集中或分布),高峰作业量(并发用户)提出明确的要求,测试人员也可以提出一些供参考的经验值作为预期的目标。

    d.如果系统测试属于产品测试,那么除了经验值目标外还应包含产品比对,这也是很多产品性能测试采用的一般模式。

    e.性能测试的需求的大致分为两种:

    一种是压力需求,要求××场景××并发用户下平均响应时间小于可接受值;

    另一种是负载需求,要求××场景响应时间在××内支持××用户数。

    二种测试的方法略有不同,但都能够通过测试工具简单操作完成切换。

    2.测试设计

    a.测试设计的原则:从简单到复杂

    b.测试设计主要是测试人员根据测试目标准备测试方案和选取案例。

    c.对于项目级测试,在测试需求中一般都会进行相关的说明,大多数情况下是将系统中关键业务处理场景作为性能测试案例,

    d. 考虑到减少测试的复杂性,可以对业务场景中的测试案例进行进一步加工,比如实际场景中可能在一次请求中包含多次子操作(既查询,又修改),那么可以将这些操作拆分,这样更有利于分析结果数据,同时可以抛开业务操作功能之外的消耗(比如有些复杂页面包含很多查询结果,可以拆开分别进行测试,或者页面中包含较多的图片或flash也可以剥离出去,当然也可以利用测试工具中功能达到类似效果)

    3.测试环境

    a.测试环境=硬件环境+软件环境

    b.测试环境在整个性能测试中是一个非常重要的工作。因为在测试报告中测试环境是最客观的指标,同时也是整个性能测试结果的基础

    c.测试环境包括网络环境、硬件环境和软件环境。测试的服务器最好在同一个网段,硬软件最好和真实环境一致。说起来简单做起来难,在搭建环境的过程中一定要自己检查,尤其是软件环境涉及操作系统、应用服务器、数据服务器,更要做到完全一致,因为性能测试的数据都是上万级,结果数据往往相差都是毫秒级,一个小小的索引都会导致极大的差异。

    4.脚本录制和测试工具

    a.环境搭建好之后,可以开始录制脚本,录制脚本使用LoadRunner Virtual User Genorator工具,具体使用的方法网上有很多介绍,我的体会还是很容易上手,下面介绍一些经验和体会

    b.事务设置

    由于实际业务可能包括多个子操作,新增、查询、修改、删除。可以考虑使用事务分别进行监控,事务的使用也很简单,loadrunner的菜单栏提供加入事务功能。

    c.参数变量和函数的使用

    在测试中,我们可能需要录入一个随机数据或者一个枚举的顺序数据,比如业务场景中的数据主键可能一个日期+唯一序列码,同时业务场景中主键是由系统程序(java代码)而不是数据库生成,这时候可以使用LoadRunner提供的参数来实现,参数被定义来自一个文件、一个随机数或者是一个顺序枚举,我仅尝试了后两种。(实际操作中定义参数后可以使用函数将参数和日期拼接成主键值)

    d.Loadrunner提供一系列脚本函数,我使用其中的一部分,感觉还是很好用的。包括日志输出、数据转换、页面交互(以 Web_***开头的),尤其是在作删除事务的时候,由于需要取得新增数据的主键,可以考虑在新增数据后把主键值保存在页面,loadrunner会在请求的时候从返回数据中得到这个主键值并保存在脚本变量中,删除的时候可以使用这个变量来进行删除工作。使用 web_reg_save_param可以达到这个目的,比如 web_reg_save_param(”userid”,”LB=ABC”,”RB=EFG”,LAST)就是把返回页面中的正则匹配 ABC***EFG中的***保存在userid变量中,”LB”标志数据的左边界,同时”RB”标志数据的右边界,使用时同时要注意,这个函数相当于一个过滤器filter,所以一定要把它放在发出请求的事务前面。如果页面返回的数据比较多可以设置buffer值来增大返回数据的容量。

    e.所有函数的用法都可以在工具提供的帮助文件中找到,个人体会比使用Google要好。

    f.即使是测试本地系统,录制脚本的目标URL不要设置为http://localhost:7073/*.do或者http: //127.0.0.1:7073/*.do,而应该使用真实的本地ip。

    g.运行结束后,LoadRunner会弹出一个测试结果窗口,同时运行时的页面还可以通过在LoadRimmer User Generator中切换察看树形视图进行检查。

    h.通过检查数据库可以确认脚本是否按照预期进行了正确的数据操作。

    i.在做关联的时候,应该从数据第一次出现的位置之前做关联,否则就会出现找不到数据的情况

    5.测试计划及测试工具

    a.脚本调试完毕,我们进入正式的测试工作,开始使用LoadRunner的控制台进行详细的测试计划编排和设置

    b.关于如何使用控制台大家可以找到很多参考,我这里仅列出几点体会:

    i.运行测试之前一定要先进行脚本验证,保证在无并发用户的情况下脚本能正确执行。

    ii .运行测试一般设置测试运行的duration即可,但是为了对测试所执行的数据监控,也可以采取设置运行次数RunLogic来达到目的,比如并发用户 10个,每个用户运行10次,那么如果每个用户执行一次插入数据动作,最终应该产生100条数据。

    iii.取消浏览器模拟browser emulation可以阻止测试中页面非测试数据的下载进而让测试结果更干净。

    iv .no thinktime模式服务器压力比较大,如果是稳定性测试可以在事务间加入适当的thinktime,因为稳定性测试并不是压力测试。

    v.并发用户较大时应该采用逐步增加用户的方式来执行计划(比如每隔15秒增加10个用户),执行计划时间一定要达到足够产生稳定的数据。(通过测试监控观察,可以在测试运行中随时增加新的用户来延长测试时间)

    6.测试结果分析

    a.测试分析是性能测试的最后一关,如果前面的工作没有失误的话,应该是水到渠成,可是大多数情况下我们还是需要对结果进行进一步分析,并调整我们的测试策略(包括环境、案例及脚本)

    b.Loadrunner提供强大的测试分析工具-analysis,可以将测试数据提取出来进行事后分析。

    c. 其中最重要的是响应时间response time和吞吐量(hps),顾名思义,响应时间越小越好,吞吐量越高越好。当然资源消耗(CPU,MEMORY)越少越好。但是其实并不完全,对于一个系统来说,也要讲和谐,也既是所有的资源使用应该使用率应该保持一致。如果测试显示应用服务器CPU特别高,数据服务器特别低,那么系统运行肯定不正常,这时候需要检查是否网络正常,数据服务器是否有死锁等。

    d.一般我们可以对测试结果做一点处理让数据更准确,比如设置过滤器去除不稳定数据,可以设置时间段截取稳定运行时间内的数据作为标本数据。

    e.一旦分析完毕,可以将结果导出到网页作为测试报告。

  • LoadRunner参数的设置

    2008-10-19 18:05:48

     做负载或者压力测试时,很多人选择使用了Loadrunner测试工具。该工具的基本流程是先将用户的实际操作录制成脚本,然后产生数千个虚拟用户运行脚本(虚拟用户可以分布在局域网中不同的PC机上),最后生成相关的报告以及分析图。但是在录制脚本的过程中会遇到很多实际的问题,比如不同的用户有不同的使用数据,这就牵涉到参数的设置问题。本文就Loadrunner中参数的设置进行说明,希望对大家有所帮助。

        在录制程序运行的过程中,VuGen(脚本生成器) 自动生成了包含录制过程中实际用到的数值的脚本。如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询、提交等等),那么你必须用参数值取代录制的数值。这个过程称为参数化脚本。

        本文主要包括如下内容:理解参数的局限性、建立参数、定义参数的属性、理解参数的类型、为局部数据类型设置参数的属性、为数据文件设置参数的属性、从已经存在的数据库中引入数据。

        除了GUI,以下的内容适合于各种类型的用户脚本。

        一、关于参数的定义在你录制程序运行的过程中,脚本生成器自动生成由函数组成的用户脚本。函数中参数的值就是在录制过程中输入的实际值。

        例如,你录制了一个Web应用程序的脚本。脚本生成器生成了一个声明,该声明搜索名称为“UNIX”的图书的数据库。当你用多个虚拟用户和迭代回放脚本时,也许你不想重复使用相同的值“UNIX”。那么,你就可以用参数来取代这个常量。结果就是你可以用指定的数据源的数值来取代参数值。数据源可以是一个文件,也可以是内部产生的变量。

        用参数表示用户的脚本有两个优点:① 可以使脚本的长度变短。② 可以使用不同的数值来测试你的脚本。例如,如果你企图搜索不同名称的图书,你仅仅需要写提交函数一次。在回放的过程中,你可以使用不同的参数值,而不只搜索一个特定名称的值。

        参数化包含以下两项任务:① 在脚本中用参数取代常量值。② 设置参数的属性以及数据源。

        参数化仅可以用于一个函数中的参量。你不能用参数表示非函数参数的字符串。另外,不是所有的函数都可以参数化的。

        二、参数的创建可以指定名称和类型来创建参数。不存在对脚本中参数个数的限制。在Web程序的用户脚本中,你可以使用如下过程在基于文本的脚本视图中创建参数。或者,也可以在基于图标的树形视图中创建参数。

        在基于文本的脚本视图中创建一个参数:1、 将光标定位在要参数化的字符上,点击右键。打开弹出菜单。

      2、 在弹出菜单中,选择“Replace with a Parameter”。选择或者创建参数的对话框弹出。

        3、 在“Parameter name”中输入参数的名称,或者选择一个在参数列表中已经存在的参数。

        4、 在“Parameter type”下拉列表中选择参数类型。

        5、 点击“OK”,关闭该对话框。脚本生成器便会用参数中的值来取代脚本中被参数化的字符,参数用一对“{}”括住。

        注意:在参数化CORBA或者General-Java 用户脚本的时候,必须参数化整个字符串,而不是其中的部分。另外注意:除了Web或者WAP,缺省的参数括号对于任何脚本都是 “{}”。你可以在“General Options”对话框中的“Parameterization”标签(Tools>General Options)中定义参数括号种类。

    6、 用同样的参数替换字符的其余情况,选中参数,点击右键,弹出菜单。从弹出的菜单中,选择“Replace More Occurrences”。搜索和替换对话框弹出。“Find What”中显示了你企图替换的值。“Replace With”中显示了括号中参数的名称。选择适当的检验框来匹配整个字符或者大小写。如果要搜索规则的表达式(。,!,?等等),选中“Regular Expression”检验框,然后点击“Replace”或者“Replace All”。

        注意:小心使用“Replace All”,尤其替换数字字符串的时候。脚本生成器将会替换字符出现的所有情况。

        7、 如果想用以前定义过的参数来替换常量字符串的话,选中该字符串,点击右键,然后选择“Use Existing Parameter”,子菜单“Use Existing Parameters”弹出。从子菜单“Use Existing Parameters”选择参数,或者用“Select from Parameter List”来打开参数列表对话框。

        注意:如果用以前定义过的参数来替换常量字符串的话,那么,使用“Parameter List”非常方便。同时,还可以查看和修改该参数的属性。

        8、 对于已经用参数替换过的地方,如果想取回原来的值,那么,就在参数上点击右键,然后选择“Restore Original value”。

        在Web用户脚本的树形视图中创建参数:1、将光标定位在企图参数化的地方,点击右键,从弹出的菜单中选择“Properties”。则相关的属性对话框打开。

        2、点击在要参数化的参量的旁边的“ABC”形状的图标。“Select or Create Parameter”对话框打开。

        3、在“Parameter name”中输入参数的名称,或者从列表中选择一个已经存在的参数。

        4、在“Parameter type”中输入参数的类型。

    5、点击“OK”关闭该对话框。用户脚本生成器会用参数来替换最初的字符串常量,并用一个表格形状的图标替换“ABC”形状的图标。

        6、要恢复参数化以前的值,点击图标,然后从弹出的菜单中选择“Undo Parameter”,则以前的值便会重现。

        三、定义参数的属性创建参数完成后,就可以定义其属性了。参数的属性定义就是定义在脚本执行过程中,参数使用的数据源。在Web用户脚本中,你既可以在基于文本的脚本视图中定义参数属性,也可以在基于图标的树形视图中定义参数属性。下面的过程将教你如何在基于本文的脚本视图中定义参数属性。

        在基于文本的脚本视图中定义参数属性步骤:1、 在参数上点击右键,有菜单弹出。

        2、 在弹出的菜单中,选择“Parameter Properties”。参数属性对话框打开,显示和当前参数类型相关的属性。

        3、 输入参数的属性值。

        4、 点击“Close”关闭参数属性对话框。

        在Web用户脚本的树形视图中定义参数的属性:1、 将关标定位在参数上,然后点击右键,选择“Properties”。属性对话框打开。

        2、 点击要定义属性的参数旁边的表格形状按钮,点击右键,选择“Parameter Properties”。参数属性对话框打开,和参数类型相关的属性显示出来。

        3、 输入参数的属性。

    4、 点击“Close”关闭参数属性对话框。

        使用参数列表:  使用参数列表可以在任意时刻查看所有的参数,创建新的参数、删除参数,或者修改已经存在参数的属性。

        1、 点击参数列表按钮或者用“Vuser>Parameter List”。参数列表对话框打开。

        2、 要创建新的参数,点击“New”按钮。新的参数则被添加在参数树中,该参数有一个临时的名字,你可以给它重新命名,然后回车。设置参数的类型和属性,点击“OK”,关闭参数列表对话框。

        注意:不要将一个参数命名为“unique”,因为这个名称是用户脚本生成器本身的。用户脚本生成器创建新的参数,但是不会自动用该参数在脚本中替换任意选中的字符串。

        3、 要删除已有的参数,那么,要先从参数树中选择该参数,点击“Delete”,然后确认你的行为即可。

        4、 要修改已有参数,那么,要先从参数树中选择该参数,然后编辑参数的类型和属性。

        四、理解参数的类型  在你定义参数属性的时候,要指定参数值的数据源。你可以指定下列数据源类型的任何一种:Internal Data―― 虚拟用户内部产生的数据。

        Data Files ――存在于文件中的数据。可能是已存在的文件或者是用脚本生成器新创建的。

        User-Defined Functions―― 调用外部DLL函数生成的数据  Internal Data包括以下几种:1、 Date/Time  Date/Time用当前的日期/时间替换参数。要指定一个Date/Time格式,你可以从菜单列表中选择格式,或者指定你自己的格式。这个格式应该和你脚本中录制的Date/Time格式保持一致。

     2、 Group Name  Group Name 用虚拟用户组名称替换参数。在创建scenario的时候,你可以指定虚拟用户组的名称。当从用户脚本生成器运行脚本的时候,虚拟用户组名称总是None. 3、 Load Generator Name  Load Generator Name用脚本负载生成器的名称替换参数。负载生成器是虚拟用户在运行的计算机。

        4. Iteration Number  Iteration Number用当前的迭代数目替换参数。

        5、 Random Number  Random Number用一个随机数替换参数。通过指定最大值和最小值来设置随机数的范围。

        6、 Unique Number  Unique Number用一个唯一的数字来替换参数。你可以指定一个起始数字和一个块的大小。

        7、 Vuser ID  Vuser ID用分配给虚拟用户的ID替换参数,ID是由Loadrunner的控制器在scenario运行时生成的。如果你从脚本生成器运行脚本的话,虚拟用户的ID总是-1.

        五、数据文件  数据文件包含着脚本执行过程中虚拟用户访问的数据。局部和全局文件中都可以存储数据。可以指定现有的ASCII文件、用脚本生成器创建一个新的文件或者引入一个数据库。在参数有很多已知值的时候数据文件非常有用。数据文件中的数据是以表的形式存储的。一个文件中可以包含很多参数值。每一列包含一个参数的数据。列之间用分隔符隔开,比如说,用逗号。  对数据文件设置参数属性  如果使用文件作为参数的数据源,必须指定以下内容:文件的名称和位置、包含数据的列、文件格式,包括列的分隔符、更新方法。  如果参数的类型是“File”,打开参数属性(Parameter Properties)对话框,设置文件属性如下:1、 在“File path”中输入文件的位置,或者点击“Browse”指定一个已有文件的位置。缺省情况下,所有新的数据文件名都是“parameter_name.dat”,注意,已有的数据文件的后缀必须是。dat.

        2、 点击“Edit”。记事本打开,里面第一行是参数的名称,第二行是参数的初始值。使用诸如逗号之类的分隔符将列隔开。对于每一新的表行开始一行新的数据。  注意:在没有启动记事本的情况下如果想添加列,就在参数属性对话框中点击“Add Col”,那么“Add new column”对话框就会弹出。输入新列的名称,点击“OK”。脚本生成器就会添加该列到表中,并显示该列的初始值。

        3、 在“Select Column”部分,指明包含当前参数数据的列。你可以指定列名或者列号。列号是包含你所需要数据的列的索引。列名显示在每列的第一行(row 0)。

        4、 在“Column delimiter”中输入列分隔符,你可以指定逗号、空格符等等。

        5、 在“First data line”中,在脚本执行的时候选择第一行数据使用。列标题是第0行。若从列标题后面的第一行开始的话,那就在“First data line”中输入1.如果没有列标题,就输入0.

        6、 在“Select next row”中输入更新方法,以说明虚拟用户在脚本执行的过程中如何选择表中的数据。方法可以是:连续的、随机的、唯一的、或者与其它参数表的相同行。

        6.1、 顺序(Sequential):该方法顺序地给虚拟用户分配参数值。如果正在运行的虚拟用户访问数据表的时候,它会取到下一行中可用的数据。

    6.2、 随机(Random):该方法在每次迭代的时候会从数据表中取随机数6.3、 使用种子取随机顺序(Use Random Sequence with Seed):如果从Loadrunner的控制器来运行scenario,你可以指定一个种子数值用于随机顺序。每一个种子数值在测试执行的时候代表了一个随机数的顺序。无论你何时使用这个种子数值,在scenario中同样的数据顺序就被分配给虚拟用户。如果在测试执行的时候发现了一个问题并且企图使用同样的随机数序列来重复测试,那么,你就可以启动这个功能(可选项)。

        6.4、 唯一(Unique):Unique方法分配一个唯一的有顺序的值给每个虚拟用户的参数。

        6.5 、与以前定义的参数取同一行(Same Line As ):该方法从和以前定义过的参数中的同样的一行分配数据。你必须指定包含有该数据的列。在下拉列表中会出现定义过的所有参数列表。注意:至少其中的一个参数必须是Sequential、Random或者Unique.如果数据表中有三列,三个参数定义在列表中:id1,name1和title1,如下:。

        ID Name Title 132 Kim Manager 187 Cassie Engineer 189 Jane VP对于参数id1,你可以指示虚拟用户使用Random方法,而为参数name1和title1就可以指定方法“Same Line as id1”。所以,一旦ID“132”被使用,那么,姓名(Name)“Kim”和职位(Title)“Manager”同时被使用。

        7、Updta value on数据的更新方法7.1、Each iteration――每次反复都要取新值。

        7.2、Each occurrence――只要发现该参数就要重新取值。

      7.3、Once――在所有的反复中都使用同一个值

        8、When out of values超出范围:(选择数据为unique时才可用到)

        8.1、Abort Vuser――中止8.2、Continue in a cyclic manner――继续循环取值8.3、Continue with last value――取最后一个值

        9、Allocate Vuser values in the Controller在控制器中分配值:(选择数据为unique时才可用到)

  • 大学

    2008-09-21 20:53:48

     给大学新生的忠告,或许不是真理,但是足够你用四年。  
       1.进入大学,你的所有过去对于他们来说是一张白纸,这是你最好的重新塑造自己形象的时候。   
        2.大学可能有真实的爱情,但只是可能。很多时候他们是因为别人都谈恋爱而羡慕或者别的原因而在一起。
      3.你在大学有很多意外用钱的地方。为了你的家人和你自己的前途,永远别乱花钱。
      4.你大学的朋友很可能就是你将来事业的一部分。他们会帮助你。但是你也应该让自己有能够帮助他们的实力,所以,你要努力。
      5.很多事情当你再回忆时会发现其实没什么。所以,不管你当时多么生气愤怒或者别的,都告诉自己不必这样。
      6.学习,永远不要忘记。如果你学习失败了,你就什么也不是,当然,也不排除意外,但问题是,你会是那个意外吗?
      7.别说脏话,你应该知道习惯的力量。你随便的一个字或者几个字会让你在别人心中的形象大打折扣。
      8.好好利用在公共场合说话的机会,展示或者锻炼。
      9.别为你自己和别人下定论,这非常重要。你所看到听到的可能只是一面。
      10.如果你发现很久了你一直是一个人去食堂吃饭或者去上自习,别在意,大学里一个人是正常的。
      11.很多事情别人通知你了,要说谢谢,没有通知你,不要责怪,因为那些事情你其实应该自己弄清楚。
      12.“我请你吃饭”之类的话永远不要乱说。
      13.尊严是最重要的,但在大学里,要懂得利用这个空间锻炼自己,让自己的尊严有足够大的承受力。除了你自己,没人会为你保留它。社会是一个最喜欢打碎人的尊严的地方。
      14.大学是亚社会,当你上了高年级后,要让自己有大人的形象,大一的孩子看到你,你要能让他们感觉到你是他们的学长,你很成熟。
      15.你有足够的理由佩服每天早起的人,不信的话,你去做,做到后会发现有很多人在佩服你呢。
      16.经常给家里打个电话。
      17.你可以有喝醉的时候,但是你要明白和真正的朋友一醉才能让伤心事休,否则,你只会是别人的谈资和笑柄。
      18.如果你四年内很少去图书馆的话,你就等于自己浪费了一大笔的财富。
      19.不论男人还是女人,如果在大学里还把容貌当做重要的东西而过分重视的话,可能不会吃亏,但是早晚会吃亏。
      20.新学期如果你接新生的话,当被问到学校怎么样之类的问题时,你要记住你不但是这个学校的一分子,你更要给学弟学妹带来信心,你走过大一,你应该知道那时候对学长的信任多深。
      21.别迷恋网络游戏。千万别。永远别。
      22.“我爱你”。别对很多人说这句话,在大学里,希望你只对一个人说,这是尊重你爱的人,更是尊重你自己的感情。
      23.在大学里,你有足够的空间承受失败和打击,因此,你真的应该找找自信和自傲的区别,
    可以用一辈子的。
      24.如果你的个性让很多人对你敬而远之,那么你的个性是失败的,个性的成功在于能吸引,而不是能排斥。
      25.如果把上课不睡觉当做一种锻炼并且你做到了,那么,你将会很强。
      26.学生会的主席之类的干部,如果你尊重他们,告诉你自己那是因为他们是你的学长而不是因为他们是你的上级。
      27.别怕丢人,那是一种成功的尝试,不要笑话那些上台丢人的人。
      28.从绝望中寻找希望,人生终将辉煌。
      29.如果你不抽烟的话,你的精力将会比抽烟的时候好。
      30.你的确要学会有心计,但是永远记住,要胜利的唯一的方法永远只是:实力。
      31.面对不公平的东西,不要抱怨,你不如去努力奋斗,争取你自己最合适的公平。
      32.人生百态,不要对新的看不惯的东西生气,无所谓的,比如说恋人同居问题,这和我们很多人无关。
      33.记住:为自己设定一个远大的人生目标,并终生为之奋斗。
    34.在大学里就开始训练自己的冷静力,这是一种能力,有大事时,能安静并能快速想出办
      35.大学的竞争范围是所有的大学生,所以,你知道是否敢放松学习。
      36.大了,成熟了,稳重了,但是这和激情不矛盾,一种对工作和学习的冲击力及持久力会让你有特殊的魅力。
      37.记住,即便你是学生会主席,如果你的四级没过,没有毕业证,仍然不会有单位想要你。单位需要的是工作的人而不是当官的人。
      38.永远不要嘲笑你的教师单调,因为有一天现实会让你为这种愚蠢付出代价。
      39.不要幻想自己能成为招聘会上的宠儿,很快你就会明白:百分之七十的初中生都可以上大学。
      40.英语一定要学好。
      41.你可以看不惯一些东西,但是你应该学会接受,如果你没法改变那一切的话。
      42.对陌生人,或者把对方当做一张白纸,或者把对方当做你的朋友,总之别当做敌人,即使你听到再多的关于他(她)的不好的传闻。
      43.爱你的人,不管你接不接受,你都应该感谢对方。
      44.每个星期一定要抽时间出来锻炼身体的。好处多多。
      45.如果有人嫉妒你,你可以把他从竞争者之列删除了。怀嫉妒之心者,难成大事。
      46.别去争论,人不可能赢得争论,可以说,争论所提及的话题都是不值得去争论的。
      47.成功的方法多种多样,别不接受你看不惯的方法。
      48.男人,你长得可以不帅,但你这个人必须帅,而且,那才是真正的帅。(当然,女人也是同样的道理)所以,不必在穿着打扮上花太多心思。
      49.别以为在学生会你能得到你曾经想要的。工作的热情很可能因为你所看到的所经历的一些事而改变。
      50.文或武,你总要有一样。样样通样样松都是禁忌。样样通几样更通方是境界。
      51.还能冲动,表明你还对生活有激情,总是冲动,表明你还不懂生活。
      52.如果你不能拥有,那么告诉自己别忘记--如果你能承受那伤痛的话。
      53.虽然班级的概念在大学并不明显,但是也别忘记,你的同学你的朋友。
      54.准备考研,早点比晚点好。
      55.别抱怨四级六级,那是证明你能力的很好的东西。
      56.要有精英意识,考虑一下,大学的人了,迷恋武侠和言情,已经没有任何意义。
      57.莫过于耿直,莫过于圆滑。外圆内方是一种视野,视野决定着境界。
      58.大学的手机是否应该用只有自己有答案。
      59.永远别渴望做个谁都不得罪的人,在反对和支持声中自己做出决定才精彩。
      60.要有魄力,即使是失败,也不要让自己的人生平庸。
      61.喜欢一个人,就勇敢地告诉他或者她。大学是学习的地方,但是我理解爱情的力量。
      62.应该相信一句话:没有不可能的事情!只要去做。现在我们是学生,十年后呢?
      63.不要总想是否能成功,既然选择,便当风雨兼程。
      64.后悔,它是一种耗费精神的情绪,后悔是比损失更大的损失,比错误更大的错误。所以不要后悔。
      65.我们确实活得艰难,要承受种种外部的压力,更要面对自己内心的困惑。在苦苦挣扎中,如果有人向你投以理解的目光,你会感到一种生命的暖意,或许仅有短暂的一瞥,便足以使我感奋不已。
      66.每个人都有潜在的能量,只是很容易被习惯所掩盖,被时间所迷离,被惰性所消磨。
      67.相信时间的力量,可以冲淡很多东西。
      68.记住:目光要深远。你的目光看多远你就能走多远。
      69.人生有很多次如果,但是,没有一次“但是”。
      70.永远不要瞧不起大学里的贫困生。
      71.在大学时代看看学校的招聘会吧,你会感觉到一种前途的危机。全是人,全是人,全是人……
      72.越大,我们就会发现对与错越是那么不明显,这不是错,这是事实,而且无法改变。
      73.记住结交每一个值得结交的朋友。
      74.无聊的时候,别忘记朋友。朋友无聊的时候,别忘记你是他们的朋友。
      75.如果你没有珍惜大学这四年,你一定会抱憾终生。
     
  • 工具使用指南

    2008-09-21 13:45:30

    什么是Bugzilla

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

    1.         强大的检索功能

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

    3.         历史变更记录

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

    5.         附件管理

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

    7.         安全的审核机制

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

    9.         WebXmlEmail和控制界面

    10.     友好的网络用户界面

    11.     丰富多样的配置设定

    12.     版本间向下兼容

    为什么使用Bugzilla

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

     

    Bugzilla使用指南

    新建一个Bugzilla账号

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

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

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

    产品和结构(Product and Component)

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

    l          Administration

    l          Bugzilla-General

    l          Creating/Changing Bug

    l          Documentation

    l          Email

    l          Installation

    l          Query/Buglist

    l          Reporting/Charting

    l          User Accounts

    l          Changing Passwords

    l          User Interface

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

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

    l          待确认的(Unconfirmed)

    l          新提交的(New)

    l          已分配的(Assigned)

    l          问题未解决的(Reopened)

    l          待返测的(Resolved)

    l          待归档的(Verified)

    l          已归档的(Closed)

    2.       Bug处理意见(Resolution)

    l          已修改的(Fixed)

    l          不是问题(Nvalid)

    l          无法修改(Wontfix)

    l          以后版本解决(Later)

    l          保留(Remind)

    l          重复(Duplicate)

    l          无法重现(Worksforme)

    指定处理人(Assigned To)

    l          可以指定一个处理人

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

    超链接(URL)

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

    概述(Summary)

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

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

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

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

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

    版本(Version)

    l          产生Bug的软件版本

    Bug报告优先级(Priority)

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

    Bug状态(Severity)

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

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

    l          Major,较大的功能缺陷

    l          Normal,普通的功能缺陷

    l          Minor,较轻的功能缺陷

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

    l          Enhancement,建议或意见

    报告人(Reporter)

    l          Bug报告提交者的账号

    邮件抄送列表(CC List)

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

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

  • 工具使用指南

    2008-09-21 13:45:23

    什么是Bugzilla

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

    1.         强大的检索功能

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

    3.         历史变更记录

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

    5.         附件管理

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

    7.         安全的审核机制

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

    9.         WebXmlEmail和控制界面

    10.     友好的网络用户界面

    11.     丰富多样的配置设定

    12.     版本间向下兼容

    为什么使用Bugzilla

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

     

    Bugzilla使用指南

    新建一个Bugzilla账号

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

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

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

    产品和结构(Product and Component)

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

    l          Administration

    l          Bugzilla-General

    l          Creating/Changing Bug

    l          Documentation

    l          Email

    l          Installation

    l          Query/Buglist

    l          Reporting/Charting

    l          User Accounts

    l          Changing Passwords

    l          User Interface

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

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

    l          待确认的(Unconfirmed)

    l          新提交的(New)

    l          已分配的(Assigned)

    l          问题未解决的(Reopened)

    l          待返测的(Resolved)

    l          待归档的(Verified)

    l          已归档的(Closed)

    2.       Bug处理意见(Resolution)

    l          已修改的(Fixed)

    l          不是问题(Nvalid)

    l          无法修改(Wontfix)

    l          以后版本解决(Later)

    l          保留(Remind)

    l          重复(Duplicate)

    l          无法重现(Worksforme)

    指定处理人(Assigned To)

    l          可以指定一个处理人

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

    超链接(URL)

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

    概述(Summary)

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

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

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

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

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

    版本(Version)

    l          产生Bug的软件版本

    Bug报告优先级(Priority)

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

    Bug状态(Severity)

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

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

    l          Major,较大的功能缺陷

    l          Normal,普通的功能缺陷

    l          Minor,较轻的功能缺陷

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

    l          Enhancement,建议或意见

    报告人(Reporter)

    l          Bug报告提交者的账号

    邮件抄送列表(CC List)

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

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

  • Bug管理的一般流程

    2008-09-21 13:36:02

    软件测试的主要目的在于发现软件存在的错误(Bug),对于如何处理测试中发现的错误,

     

    将直接影响到测试的效果。只有正确、迅速、准确地处理这些错误,才能消除软件错误,保证

     

    要发布的软件符合需求设计的目标。在实际软件测试过程中,对于每个Bug都要经过测试、确

     

    认、修复、验证等的管理过程,这是软件测试的重要环节。

     

    错误跟踪管理系统

     

        为了正确跟踪每个软件错误的处理过程,通常将软件测试发现的每个错误作为一条条记录

     

    输入制定的错误跟踪管理系统。

     

        目前已有的缺陷跟踪管理软件包括Compuware公司的TrackRecord软件(商业软件)、

     

    Mozilla公司的Buzilla软件(免费软件),以及国内的微创公司的BMS软件,这些软件在功能

     

    上各有特点,可以根据实际情况选用。当然,也可以自己开发缺陷跟踪软件,例如基于Notes

     

    或是ClearQuese开发缺陷跟踪管理软件。

     

        作为一个缺陷跟踪管理系统,需要正确设计每个错误的包含信息的字段内容和记录错误的

     

    处理信息的全部内容。字段内容可能包括测试软件名称,测试版本号,测试人名称,测试事

     

    件,测试软件和硬件配置环境,发现软件错误的类型,错误的严重等级,详细步骤,必要的附

     

    图,测试注释。处理信息包括处理者姓名,处理时间,处理步骤,错误记录的当前状态。

     

    正确的数据库权限管理是错误跟踪管理系统的重要考虑要素,一般要保证对于添加的错误

     

    不能从数据库中删除。

     

    软件错误的状态

     

    新信息(New):测试中新报告的软件缺陷;

     

    打开 (Open):被确认并分配给相关开发人员处理;

     

    修正(Fixed):开发人员已完成修正,等待测试人员验证;

     

    拒绝(Declined):拒绝修改缺陷;

     

    延期(Deferred): 不在当前版本修复的错误,下一版修复

     

    关闭(Closed):错误已被修复;

     

    Bug管理的一般流程

     

        测试人员提交新的Bug入库,错误状态为New

     

        高级测试人员验证错误,如果确认是错误,分配给相应的开发人员,设置状态为Open。如果不是错误,则拒绝,设置为Declined状态。

     

        开发人员查询状态为OpenBug,如果不是错误,则置状态为Declined;如果是Bug则修复并置状态为Fixed。不能解决的Bug,要留下文字说明及保持BugOpen状态。

     

        对于不能解决和延期解决的Bug,不能由开发人员自己决定,一般要通过某种会议(评审会)通过才能认可。

     

        测试人员查询状态为FixedBug,然后验证Bug是否已解决,如解决置Bug的状态为

     

    Closed,如没有解决置状态为Reopen

     

    软件错误流程管理要点

     

        为了保证错误的正确性,需要有丰富测试经验的测试人员验证发现的错误是否是真正的错误,书写的测试步骤是否准确,可以重复。

     

        每次对错误的处理都要保留处理信息,包括处理姓名,时间,处理方法,处理意见,Bug状态。

     

        拒绝或延期错误不能由程序员单方面决定,应该由项目经理,测试经理和设计经理共同决定。

     

        错误修复后必须由报告错误的测试人员验证后,确认已经修复,才能关闭错误。

     

        加强测试人员与程序员的交流,对于某些不能重复的错误,可以请测试人员补充详细的测试步骤和方法以及必要的测试用例。 

  • 测试用例的书写方式(功能测试)

    2008-09-21 13:32:28

    功能性测试用例
    1. 测试的来源,即测试的需求
    测试用例的主要来源有:
    1) 需求说明”及相关文档

    2)相关的设计说明(概要设计,详细设计等)

    3)与开发组交流对需求理解的 记录(可以是开发人员的一个解释)

    4)已经基本成型的UI(可以有针对性地补充一些用例)

    简而言之,所有你能得到的项目文档,都尽量拿到。 从所得到的资料中,分解出若干小的“功能点”,理解“功能点”,编写相应的测试用例。

    2. 用例的组织方式

    不同的公司有不同的做法,原则上,只要方便管理和跟踪,怎么组织都可以的。

    用例可以按大的功能块组织,如查询功能模块的用例,可以组织在一起,打印模块的测试用例,可以另外组 织在一起。

    在没有专门的测试用例管理工具的情况下,用例执行后会产生2种状态:“通过”、“失败”——这样加上“未 执行”的用例的状态,共3种状态。

    即从“未执行”用例中执行一个用例后,该用例状态应为“失败”或“通 过”。将同一状态的用例组织在一起。

    至于用例文件格式,可以是.DOC或.XLS(如果有专门的测试用例管理工具另当别论)。

    3. 用例与其他材料的关联方式,即如何解决用例跟踪的问题 测试用例面临的比较大的风险有:

    需求的变更、设计的修改、需求的错误和遗漏等等。

    由于用例的主要来源是需求和设计的说明,所以对用例的跟踪其实就是对需求和设计的跟踪,需求和设计的 变更势必引起测试用例的变更。

    如前所说,将分解的功能点编号,与相应的用例联系起来。例如,你可以列一个表格,列出各个(编号的)功 能点和测试用例间的关联关系。

    这样,当需求和设计发生变化时,你只需要跟踪“功能点”是否变化,是否增 加了新的功能点。

    重要和困难的是,不手头的资料和信息一定要是最新的。

    4. 一个好的用例的表述要点,即用例中应当包含的信息

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

    1) 软件或项目的名称

    2) 软件或项目的版本(内部版本号)

    3) 功能模块名

    4) 测试用例的简单描述,即该用例执行的目的或方法

    5) 测试用例的参考信息(便于跟踪和参考)

    6) 本测试用例与其他测试用例间的依赖关系

    7) 本用例的前置条件,即执行本用例必须要满足的条件,如对数据库的访问权限

    8) 用例的编号(ID),如可以是 软件名称简写-功能块简写-NO.。

    9) 步骤号、操作步骤描述、测试数据描述

    10)预期结果(这是最重要的)和实际结果(如果有BUG管理工具,这条可以省略)

    11)开发人员(必须有)和测试人员(可有可无)

    12)测试执行日期

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

    项目/软件 技术出口合同网络申领系统 (企业端) 程序版本 1.0.25
    功能模块名 Login 编制人   xxx
    用例编号- TC-TEP_Login_1 编制时间   2002.10.12
    相关的用例
    功能特性 用户身份验证
    测试目的 验证是否输入合法的信息,允许合法登陆,阻止非法登陆
    预置条件 特殊规程说明 如数据库访问权限
    参考信息 需求说明中关于“登陆”的说明
    测试数据 用户名=yiyh 密码=1
    操作步骤 操作描述 数 据 期望结果 实际结果 实际结果

    测试状态

    1 输入用户名称,按“登陆”按钮。 用户名=yiyh,密码为空 显示警告信息“请输入用户名和密码!”
    2 输入密码,按“登陆”按钮。 用户名为空,密码=1 显示警告信息“请输入用户名和密码!”
    3
    输入用户名和密码,按“登陆”按钮。
    用户名=yiyh,密码=2
    显示警告信息“请输入用户名和密码!”

    4
    输入用户名和密码,按“登陆”按钮。
    用户名=xxx,密码=1
    显示警告信息“请输入用户名和密码!”
    5
    输入用户名和密码,按“登陆”按钮。
    用户名=xxx,密码=2
    显示警告信息“请输入用户名和密码!”
    6
    输入用户名和密码,按“登陆”按钮。
    用户名=空,密码=空
    显示警告信息“请输入用户名和密码!”
    7
    输入用户名和密码,按“登陆”按钮。
    用户名=yiyh,密码=1
    进入系统页面。
    8
    输入用户名和密码,按“登陆”按钮。
    用户名=Admin,密码=admin
    进入系统维护页面。
    9
    输入用户名和密码,按“登陆”按钮。
    用户名=yiyh',密码=1
    显示警告信息“请输入用户名和密码!”
    10 输入用户名和密码,按“登陆”按钮。
    用户名=yiyh,密码=1'
    显示警告信息“请输入用户名和密码!”
    11 输入用户名和密码,按“重置”按钮。 用户名=yiyh,密码=1 清空输入信息
    测试人员 开发人员 项目负责人


    备注:本用例未考虑“企业代码”的输入情况;测试用例并未涵盖所有的非法输入,如非法输入中可能会有

    “user=*,pw=*”的组合,对回车的默认操作,空格输入,对输入上溢的处理的处理(可能会跳过身份验证) 等等。

    如果你有兴趣,至少可以再补充5-10条左右的输入组合

    (当然,如果步骤超过15步,用例的易操作 性就降低,你可以再创建一个测试用例如TC-TEP_Login_2)。

  • Web 测试的经验

    2008-09-21 13:29:02

    1. 功能测试
    1.1.链接测试
       链接是 Web 应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证 Web 应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的 URL 地址才能访问。
       链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个 Web 应用系统的所有页面开发完成之后进行链接测试。
    1.2. 表单测试
       当用户给 Web 应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。
    1.3.Cookies测试
    Cookies 通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用 Cookies 访问了某一个应用系统时, Web 服务器将发送关于用户的信息,把该信息以 Cookies 的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。
       如果 Web 应用系统使用了 Cookies ,就必须检查 Cookies 是否能正常工作。测试的内容可包括 Cookies 是否起作用,是否按预定的时间进行保存,刷新对 Cookies 有什么影响等。
    1.4.设计语言测试
    Web 设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的 HTML 等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了 HTML 的版本问题外,不同的脚本语言,例如 Java 、 Javascrīpt 、 ActiveX 、 VBscrīpt 或 Perl 等也要进行验证。
    1.5.数据库测试
       在 Web 应用技术中,数据库起着重要的作用,数据库为 Web 应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在 Web 应用中,最常用的数据库类型是关系型数据库,可以使用 SQL 对信息进行处理。

    在使用了数据库的 Web 应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。
    2. 性能测试
    2.1.连接速度测试
       用户连接到 Web 应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果 Web 系统响应时间太长(例如超过 5 秒钟),用户就会因没有耐心等待而离开。
       另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
    2.2.负载测试
       负载测试是为了测量 Web 系统在某一负载级别上的性能,以保证 Web 系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问 Web 系统的用户数量,也可以是在线数据处理的数量。例如: Web 应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象? Web 应用系统能否处理大量用户对同一个页面的请求?
    2.3.压力测试
      负载测试应该安排在 Web 系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个 Web 系统能同时处理的请求数量将远远超出这个限度,所以,只有放在 Internet 上,接受负载测试,其结果才是正确可信的。
       进行压力测试是指实际破坏一个 Web 应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试 Web 应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到 Web 应用系统崩溃,接着当系统重新启动时获得存取权。
       压力测试的区域包括表单、登陆和其他信息传输页面等。
    3. 可用性测试
    3.1.导航测试
       导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。通过考虑下列问题,可以决定一个 Web 应用系统是否易于导航:导航是否直观? Web 系统的主要部分是否可通过主页存取? Web 系统是否需要站点地图、搜索引擎或其他的导航帮助?
       在一个页面上放太多的信息往往起到与预期相反的效果。 Web 应用系统的用户趋向于目的驱动,很快地扫描一个 Web 应用系统,看是否有满足自己需要的信息,如果没有,就会很快地离开。很少有用户愿意花时间去熟悉 Web 应用系统的结构,因此, Web 应用系统导航帮助要尽可能地准确。
       导航的另一个重要方面是 Web 应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道 Web 应用系统里面是否还有内容,内容在什么地方。
    Web 应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。
    3.2.图形测试
       在 Web 应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个 Web 应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:
       ( 1 )要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。 Web 应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。
       ( 2 )验证所有页面字体的风格是否一致。
       ( 3 )背景颜色应该与字体颜色和前景颜色相搭配。
       ( 4 )图片的大小和质量也是一个很重要的因素,一般采用 JPG 或 GIF 压缩。
    3.3.内容测试
       内容测试用来检验 Web 应用系统提供信息的正确性、准确性和相关性。
       信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用 Microsoft Word 的 " 拼音与语法检查 " 功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般 Web 站点中的所谓 " 相关文章列表 " 。
    3.4.整体界面测试
       整体界面是指整个 Web 应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览 Web 应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个 Web 应用系统的设计风格是否一致?
    对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般 Web 应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。
       对所有的可用性测试来说,都需要有外部人员(与 Web 应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与。
    4. 客户端兼容性测试
    4.1.平台测试
       市场上有很多不同的操作系统类型,最常见的有 Windows 、 Unix 、 Macintosh 、 Linux 等。 Web 应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。
       因此,在 Web 系统发布之前,需要在各种操作系统下对 Web 系统进行兼容性测试。
    4.2.浏览器测试
       浏览器是 Web 客户端最核心的构件,来自不同厂商的浏览器对 Java ,、 Javascrīpt 、 ActiveX 、 plug-ins 或不同的 HTML 规格有不同的支持。例如, ActiveX 是 Microsoft 的产品,是为 Internet Explorer 而设计的, Javascrīpt 是 Netscape 的产品, Java 是 Sun 的产品等等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和 Java 的设置也不一样。
       测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。
    5. 安全性测试
    Web 应用系统的安全性测试区域主要有:
       ( 1 )现在的 Web 应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。
       ( 2 ) Web 应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如 15 分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
       ( 3 )为了保证 Web 应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。
       ( 4 )当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。
       ( 5 )服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
    6. 总结
       本文从功能、性能、可用性、客户端兼容性、安全性等方面讨论了基于 Web 的系统测试方法。
    基于 Web 的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战。基于 Web 的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。

  • 路由器

    2008-09-20 17:37:56

    路由器是什么

       是什么把网络相互连接起来?是路由器。路由器是互联网络的枢纽、"交通警察"。目前路由器已经广泛应用于各行各业,各种不同档次的产品已经成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。

      所谓路由就是指通过相互连接的网络把信息从源地点移动到目标地点的活动。一般来说,在路由过程中,信息至少会经过一个或多个中间节点。通常,人们会把路由和交换进行对比,这主要是因为在普通用户看来两者所实现的功能是完全一样的。其实,路由和交换之间的主要区别就是交换发生在OSI参考模型的第二层(数据链路层),而路由发生在第三层,即网络层。这一区别决定了路由和交换在移动信息的过程中需要使用不同的控制信息,所以两者实现各自功能的方式是不同的。

      早在40多年之间就已经出现了对路由技术的讨论,但是直到80年代路由技术才逐渐进入商业化的应用。路由技术之所以在问世之初没有被广泛使用主要是因为80年代之前的网络结构都非常简单,路由技术没有用武之地。直到最近十几年,大规模的互联网络才逐渐流行起来,为路由技术的发展提供了良好的基础和平台。

      路由器是互联网的主要节点设备。路由器通过路由决定数据的转发。转发策略称为路由选择(routing),这也是路由器名称的由来(router,转发者)。作为不同网络之间互相连接的枢纽,路由器系统构成了基于 TCP/IP 的国际互联网络 Internet 的主体脉络,也可以说,路由器构成了 Internet 的骨架。它的处理速度是网络通信的主要瓶颈之一,它的可靠性则直接影响着网络互连的质量。因此,在园区网、地区网、乃至整个 Internet 研究领域中,路由器技术始终处于核心地位,其发展历程和方向,成为整个 Internet 研究的一个缩影。在当前我国网络基础建设和信息建设方兴未艾之际,探讨路由器在互连网络中的作用、地位及其发展方向,对于国内的网络技术研究、网络建设,以及明确网络市场上对于路由器和网络互连的各种似是而非的概念,都具有重要的意义。

     

    路由器的原理

       路由器(Router)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器来完成。因此,路由器具有判断网络地址和选择路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源 站或其他路由器的信息,属网络层的一种互联设备。它不关心各子网使用的硬件设备,但要求运行与网络层协议相一致的软件。路由器分本地路由器和远程路由器,本地路由器是用来连接网络传输介质的,如光纤、同轴电缆、双绞线;远程路由器是用来连接远程传输介质,并要求相应的设备,如电话线要配调制解调器,无线要通过无线接收机、发射机。

      其工作原理如下: (1)工作站A将工作站B的地址120.0.5连同数据信息以数据帧的形式发送给路由器1。 (2)路由器1收到工作站A的数据帧后,先从报头中取出地址120.0.5,并根据路径表计算出发往工作站B的最佳路径:R1->R2->R5->B;并将数据帧发往路由器2。 (3)路由器2重复路由器1的工作,并将数据帧转发给路由器5。 (4)路由器5同样取出目的地址,发现120.0.5就在该路由器所连接的网段上,于是将该数据帧直接交给工作站B。 (5)工作站B收到工作站A的数据帧,一次通信过程宣告结束。

      事实上,路由器除了上述的路由选择这一主要功能外,还具有网络流量控制功能。有的路由器仅支持单一协议,但大部分路由器可以支持多种协议的传输,即多协议路由器。由于每一种协议都有自己的规则,要在一个路由器中完成多种协议的算法,势必会 降低路由器的性能。因此,我们以为,支持多协议的路由器性能相对较低。用户购买路由器时,需要根据自己的实际情况,选择自己需要的网络协议的路由器。

      近年来出现了交换路由器产品,从本质上来说它不是什么新技术,而是为了提高通信能力,把交换机的原理组合到路由器中,使数据传输能力更快、更好。

     

    路由器的作用

    路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率,从而让网络系统发挥出更大的效益来。

      从过滤网络流量的角度来看,路由器的作用与交换机和网桥非常相似。但是与工作在网络物理层,从物理上划分网段的交换机不同,路由器使用专门的软件协议从逻辑上对整个网络进行划分。例如,一台支持IP协议的路由器可以把网络划分成多个子网段,只有指向特殊IP地址的网络流量才可以通过路由器。对于每一个接收到的数据包,路由器都会重新计算其校验值,并写入新的物理地址。因此,使用路由器转发和过滤数据的速度往往要比只查看数据包物理地址的交换机慢。但是,对于那些结构复杂的网络,使用路由器可以提高网络的整体效率。路由器的另外一个明显优势就是可以自动过滤网络广播。从总体上说,在网络中添加路由器的整个安装过程要比即插即用的交换机复杂很多。

      一般说来,异种网络互联与多个子网互联都应采用路由器来完成。

      路由器的主要工作就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。为了完成这项工作,在路由器中保存着各种传输路径的相关数据--路径表(Routing Table),供路由选择时使用。路径表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。路径表可以是由系统管理员固定设置好的,也可以由系统动态修改,可以由路由器自动调整,也可以由主机控制。

      1.静态路径表

      由系统管理员事先设置好固定的路径表称之为静态(static)路径表,一般是在系统安装时就根据网络的配置情况预先设定的,它不会随未来网络结构的改变而改变。

      2.动态路径表

      动态(Dynamic)路径表是路由器根据网络系统的运行情况而自动调整的路径表。路由器根据路由选择协议(Routing Protocol)提供的功能,自动学习和记忆网络运行情况,在需要时自动计算数据传输的最佳路径。

     

    路由器的类型

    互联网各种级别的网络中随处都可见到路由器。接入网络使得家庭和小型企业可以连接到某个互联网服务提供商;企业网中的路由器连接一个校园或企业内成千上万的计算机;骨干网上的路由器终端系统通常是不能直接访问的,它们连接长距离骨干网上的ISP和企业网络。互联网的快速发展无论是对骨干网、企业网还是接入网都带来了不同的挑战。骨干网要求路由器能对少数链路进行高速路由转发。企业级路由器不但要求端口数目多、价格低廉,而且要求配置起来简单方便,并提供QoS。

      1.接入路由器

      接入路由器连接家庭或ISP内的小型企业客户。接入路由器已经开始不只是提供SLIP或PPP连接,还支持诸如PPTP和IPSec等虚拟私有网络协议。这些协议要能在每个端口上运行。诸如ADSL等技术将很快提高各家庭的可用带宽,这将进一步增加接入路由器的负担。由于这些趋势,接入路由器将来会支持许多异构和高速端口,并在各个端口能够运行多种协议,同时还要避开电话交换网。

      2.企业级路由器

      企业或校园级路由器连接许多终端系统,其主要目标是以尽量便宜的方法实现尽可能多的端点互连,并且进一步要求支持不同的服务质量。许多现有的企业网络都是由Hub或网桥连接起来的以太网段。尽管这些设备价格便宜、易于安装、无需配置,但是它们不支持服务等级。相反,有路由器参与的网络能够将机器分成多个碰撞域,并因此能够控制一个网络的大小。此外,路由器还支持一定的服务等级,至少允许分成多个优先级别。但是路由器的每端口造价要贵些,并且在能够使用之前要进行大量的配置工作。因此,企业路由器的成败就在于是否提供大量端口且每端口的造价很低,是否容易配置,是否支持QoS。另外还要求企业级路由器有效地支持广播和组播。企业网络还要处理历史遗留的各种LAN技术,支持多种协议,包括IP、IPX和Vine。它们还要支持防火墙、包过滤以及大量的管理和安全策略以及VLAN。

      3.骨干级路由器

      骨干级路由器实现企业级网络的互联。对它的要求是速度和可靠性,而代价则处于次要地位。硬件可靠性可以采用电话交换网中使用的技术,如热备份、双电源、双数据通路等来获得。这些技术对所有骨干路由器而言差不多是标准的。骨干IP路由器的主要性能瓶颈是在转发表中查找某个路由所耗的时间。当收到一个包时,输入端口在转发表中查找该包的目的地址以确定其目的端口,当包越短或者当包要发往许多目的端口时,势必增加路由查找的代价。因此,将一些常访问的目的端口放到缓存中能够提高路由查找的效率。不管是输入缓冲还是输出缓冲路由器,都存在路由查找的瓶颈问题。除了性能瓶颈问题,路由器的稳定性也是一个常被忽视的问题。

      4.太比特路由器

      在未来核心互联网使用的三种主要技术中,光纤和DWDM都已经是很成熟的并且是现成的。如果没有与现有的光纤技术和DWDM技术提供的原始带宽对应的路由器,新的网络基础设施将无法从根本上得到性能的改善,因此开发高性能的骨干交换/路由器(太比特路由器)已经成为一项迫切的要求。太比特路由器技术现在还主要处于开发实验阶段。

     

    路由器的体系结构

       从体系结构上看,路由器可以分为第一代单总线单CPU结构路由器、第二代单总线主从CPU结构路由器、第三代单总线对称式多CPU结构路由器;第四代多总线多CPU结构路由器、第五代共享内存式结构路由器、第六代交叉开关体系结构路由器和基于机群系统的路由器等多类。

     

    路由器的构成

        路由器具有四个要素:输入端口、输出端口、交换开关和路由处理器。

      输入端口是物理链路和输入包的进口处。端口通常由线卡提供,一块线卡一般支持4、8或16个端口,一个输入端口具有许多功能。第一个功能是进行数据链路层的封装和解封装。第二个功能是在转发表中查找输入包目的地址从而决定目的端口(称为路由查找),路由查找可以使用一般的硬件来实现,或者通过在每块线卡上嵌入一个微处理器来完成。第三,为了提供QoS(服务质量),端口要对收到的包分成几个预定义的服务级别。第四,端口可能需要运行诸如SLIP(串行线网际协议)和PPP(点对点协议)这样的数据链路级协议或者诸如PPTP(点对点隧道协议)这样的网络级协议。一旦路由查找完成,必须用交换开关将包送到其输出端口。如果路由器是输入端加队列的,则有几个输入端共享同一个交换开关。这样输入端口的最后一项功能是参加对公共资源(如交换开关)的仲裁协议。

      交换开关可以使用多种不同的技术来实现。迄今为止使用最多的交换开关技术是总线、交叉开关和共享存贮器。最简单的开关使用一条总线来连接所有输入和输出端口,总线开关的缺点是其交换容量受限于总线的容量以及为共享总线仲裁所带来的额外开销。交叉开关通过开关提供多条数据通路,具有N×N个交叉点的交叉开关可以被认为具有2N条总线。如果一个交叉是闭合,输入总线上的数据在输出总线上可用,否则不可用。交叉点的闭合与打开由调度器来控制,因此,调度器限制了交换开关的速度。在共享存贮器路由器中,进来的包被存贮在共享存贮器中,所交换的仅是包的指针,这提高了交换容量,但是,开关的速度受限于存贮器的存取速度。尽管存贮器容量每18个月能够翻一番,但存贮器的存取时间每年仅降低5%,这是共享存贮器交换开关的一个固有限制。

      输出端口在包被发送到输出链路之前对包存贮,可以实现复杂的调度算法以支持优先级等要求。与输入端口一样,输出端口同样要能支持数据链路层的封装和解封装,以及许多较高级协议。

      路由处理器计算转发表实现路由协议,并运行对路由器进行配置和管理的软件。同时,它还处理那些目的地址不在线卡转发表中的包。

     

    路由器的基本协议与技术

    VPN
    VPN(Virtual Private Network-虚拟专用网)解决方案是路由器具有的重要功能之一。其解决方案大致如下:

      1.访问控制

      一般分为PAP(口令认证协议)和CHAP(高级口令认证协议)两种协议。PAP要求登录者向目标路由器提供用户名和口令,与其访问列表(Access List)中的信息相符才允许其登录。它虽然提供了一定的安全保障,但用户登录信息在网上无加密传递,易被人窃取。CHAP便应运而生,它把一随机初始值与用户原始登录信息(用户名和口令)经Hash算法翻译后形成新的登录信息。这样在网上传递的用户登录信息对黑客来说是不透明的,且由于随机初始值每次不同,用户每次的最终登录信息也会不同,即使某一次用户登录信息被窃取,黑客也不能重复使用。需要注意的是,由于各厂商采取各自不同的Hash算法,所以CHAP无互操作性可言。要建立VPN需要VPN两端放置相同品牌路由器。

      2.数据加密

      在加密过程中加密位数是一个很重要的参数,它直接关系到解密的难易程度,其中Intel 9000系列路由器表现最为优异,为一百多位加密。

      3.NAT(Network Address Translation-网络地址转换协议)

      如同用户登录信息一样,IP和MAC地址在网上无加密传递也很不安全。NAT可把合法IP地址和MAC地址翻译成非法IP地址和MAC地址在网上传递,到达目标路由器后反翻译成合法IP与MAC地址,这一过程有点像CHAP,翻译算法厂商各自有不同标准,不能实现互操作。

      QoS

      QoS(Quality of Service-服务质量)本来是ATM(Asynchronous Transmit Mode)中的专用术语,在IP上原来是不谈QoS的,但利用IP传VOD等多媒体信息的应用越来越多,IP作为一个打包的协议显得有点力不从心:延迟长且不为定值,丢包造成信号不连续且失真大。为解决这些问题,厂商提供了若干解决方案:第一种方案是基于不同对象的优先级,某些设备(多为多媒体应用)发送的数据包可以后到先传。第二种方案基于协议的优先级,用户可定义哪种协议优先级高,可后到先传,Intel和Cisco都支持。第三种方案是做链路整合MLPPP(Multi Link Point to Point Protocol),Cisco支持可通过将连接两点的多条线路做带宽汇聚,从而提高带宽。第四种方案是做资源预留RSVP(Resource Reservation Protocol),它将一部分带宽固定的分给多媒体信号,其它协议无论如何拥挤,也不得占用这部分带宽。这几种解决方案都能有效的提高传输质量。

      RIP、OSPF和BGP协议

      互联网上现在大量运行的路由协议有RIP(Routing Information Protocol-路由信息协议)、OSPF(Open Shortest Path First--开放式最短路优先)和BGP(Border Gateway Protocol—边界网关协议)。RIP、OSPF是内部网关协议,适用于单个ISP的统一路由协议的运行,由一个ISP运营的网络称为一个自治系统。BGP是自治系统间的路由协议,是一种外部网关协议。

      RIP是推出时间最长的路由协议,也是最简单的路由协议。它主要传递路由信息(路由表)来广播路由。每隔30秒,广播一次路由表,维护相邻路由器的关系,同时根据收到的路由表计算自己的路由表。RIP运行简单,适用于小型网络,互联网上还在部分使用着RIP。

      OSPF协议是“开放式最短路优先”的缩写。“开放”是针对当时某些厂家的“私有”路由协议而言,而正是因为协议开放性,才使得OSPF具有强大的生命力和广泛的用途。它通过传递链路状态(连接信息)来得到网络信息,维护一张网络有向拓扑图,利用最小生成树算法得到路由表。OSPF是一种相对复杂的路由协议。

      总的来说,OSPF、RIP都是自治系统内部的路由协议,适合于单一的ISP(自治系统)使用。一般说来,整个互联网并不适合跑单一的路由协议,因为各ISP有自己的利益,不愿意提供自身网络详细的路由信息。为了保证各ISP利益,标准化组织制定了ISP间的路由协议BGP。

      BGP处理各ISP之间的路由传递。其特点是有丰富的路由策略,这是RIP、OSPF等协议无法做到的,因为它们需要全局的信息计算路由表。BGP通过ISP边界的路由器加上一定的策略,选择过滤路由,把RIP、OSPF、BGP等的路由发送到对方。全局范围的、广泛的互联网是BGP处理多个ISP间的路由的实例。BGP的出现,引起了互联网的重大变革,它把多个ISP有机的连接起来,真正成为全球范围内的网络。带来的副作用是互联网的路由爆炸,现在互联网的路由大概是60000条,这还是经过“聚合”后的数字。 配置BGP需要对用户需求、网络现状和BGP协议非常了解,还需要非常小心,BGP运行在相对核心的地位,一旦出错,其造成的损失可能会很大! IPv6技术

      迅速发展中的互联网将不再是仅仅连接计算机的网络,它将发展成能同电话网、有线电视网类似的信息通信基础设施。因此,正在使用的IP(互联网协议)已经难以胜任,人们迫切希望下一代 IP即IPv6的出现。

      IPv6是IP的一种版本,在互联网通信协议TCP/IP中,是OSI模型第3层(网络层)的传输协议。它同目前广泛使用的、1974年便提出的IPv4相比,地址由32位扩充到128位。从理论上说,地址的数量由原先的4.3×109个增加到4.3×1038个。之所以必须从现行的IPv4改用IPv6,主要有二个原因。

      1.由于互联网迅速发展,地址数量已经不够用,这使得网络管理花费的精力和费用令人难以承受。地址的枯竭是促使向拥有128位地址空间过渡的首要原因。

      2.随着主机数目的增加,决定数据传输路由的路由表在不断加大。路由器的处理性能跟不上这种迅速增长。长此以往,互联网连接将难以提供稳定的服务。经由IPv6,路由数可以减少一个数量级。

      为了使互联网连接许多东西变得简单,而且使用容易,必须采用IPv6。IPv6所以能做到这一点,是因为它使用了四种技术:地址空间的扩充、可使路由表减小的地址构造、自动设定地址以及提高安全保密性。

      IPv6在路由技术上继承了IPv4的有利方面,代表未来路由技术的发展方向,许多路由器厂商目前已经投入很大力量以生产支持IPv6的路由器。当然IPv6也有一些值得注意和效率不高的地方,IPv4/NAT和IPv6将会共存相当长的一段时间。

     

    路由器的配置与调试

       路由器在计算机网络中有着举足轻重的地位,是计算机网络的桥梁。通过它不仅可以连通不同的网络,还能选择数据传送的路径,并能阻隔非法的访问。

      路由器的配置对初学者来说,并不是件十分容易的事。现将路由器的一般配置和简单调试介绍给大家,供朋友们在配置路由器时参考,本文以Cisco2501为例。

      Cisco2501有一个以太网口(AUI)、一个Console口(RJ45)、一个AUX口(RJ45)和两个同步串口,支持DTE和DCE设备,支持 EIA/TIA-232、 EIA/TIA-449、 V.35 、X.25和EIA-530接口。

      一.配置

      1.配置以太网端口

      # conf t(从终端配置路由器)

      # int e0(指定E0口)

      # ip addr ABCD XXXX(ABCD 为以太网地址,XXXX为子网掩码)

      # ip addr ABCD XXXX secondary(E0口同时支持两个地址类型。如果第一个为 A类地址,则第二个为B或C类地址)

      # no shutdown(激活E0口)

      # exit

      完成以上配置后,用ping命令检查E0口是否正常。如果不正常,一般是因为没有激活该端口,初学者往往容易忽视。用no shutdown命令激活E0口即可。

      2.X.25的配置

      # conf t

      # int S0(指定S0口)

      # ip addr ABCD XXXX(ABCD 为以太网S0 的IP地址,XXXX为子网掩码)

      # encap X25-ABC(封装X.25协议。ABC指定X.25为DTE或DCE操作,缺省为DTE)

      # x25 addr ABCD(ABCD为S0的X.25端口地址,由邮电局提供)

      # x25 map ip ABCD XXXX br(映射的X.25地址。ABCD为对方路由器(如:S0)的IP 地址,XXXX为对方路由器(如:S0)的X.25端口地址)

      # x25 htc X(配置最高双向通道数。X的取值范围1-4095,要根据 邮电局实际提供的数字配置)

      # x25 nvc X(配置虚电路数,X不可超过邮电局实际提供的数否则将影响数据的正常传输)

      # exit

      S0端口配置完成后,用no shutdown命令激活E0口。如果ping S0端口正常,ping 映射的X.25 IP地址即对方路由器端口IP地址不通,则可能是以下几种情况引起的:1)本机X.25地址配置错误,重新与邮局核对(X.25地址长度为13位);2)本机映射IP地址或X.25地址配置错误,重新配置正确;3)对方IP地址或X.25地址配置错误;4)本机或对方路由配置错误。

      能够与对方通讯,但有丢包现象。出现这种情况,一般有以下几种可能:1)线路情况不好,或网卡、RJ45插头接触不良;2)x25 htc最高双向通道数X的取值范围和x25nvc 虚电路数X超出邮电局实际提供的数字。最高双向通道数和虚电路数这两个值越大越好,但绝对不能超出邮电局实际提供的数字,否则就会出现丢包现象。

      3.专线的配置

      # conf t

      # int S2(指定S2口)

      # ip addr ABCD XXXX(ABCD 为S2 的IP地址,XXXX为子网掩码)

      # exit

      专线口配置完成后,用no shutdown命令激活S2口即可。

      4.帧中继的配置

      # conf t

      # int s0

      # ip addr ABCD XXXX (ABCD 为S0 的IP地址,XXXX为子网掩码)

      # encap frante_relay (封装frante_relay 协议)

      # no nrzi_encoding (NRZI=NO)

      # frame_relay lmi_type q933a (LMI使用Q933A标准.LMI(Local management Interface) 有3种:ANSI:T1.617、CCITTY:Q933A和Cisco特有的标准)

      # fram-relay intf-typ ABC(ABC为帧中继设备类型,它们分别是DTE设备、DCE交换机或NNI(网络接点接口)支持)

      # frame_relay interface_dlci 110 br(配置DLCI(数据链路连接标识符))

      # frame-relay map ip ABCD XXXX broadcast (建立帧中继映射。ABCD为对方IP地址,XXXX为本地DLCI号,broadcast允许广播向前转发或更新路由)

      # no shutdown (激活本端口)

      # exit

      帧中继S0端口配置完成后,用ping命令检查S0口。如果不正常,通常是因为没有激活该端口,用no shutdown命令激活S0口即可。如果ping S0端口正常,ping 映射的IP地址不正常,则可能是帧中继交换机或对方配置错误,需要综合排查。

      5.配置同步/异步口(适用于2522)

      # conf t

      # int s2

      # ph asyn (配置S2为异步口)

      # ph sync (配置S2为同步口)

      6.动态路由的配置

      # conf t

      # router eigrp 20 (使用EIGRP路由协议。常用的路由协议有RIP、IGRP、IS-IS等)

      # passive-interface serial0 (若S0与X.25相连,则输入本条指令)

      # passive-interface serial1 (若S1与X.25相连,则输入本条指令)

      # network ABCD (ABCD为本机的以太网地址)

      # network XXXX (XXXX为S0的IP地址)

      # no auto-summary

      # exit

      7.静态路由的配置

      # ip router ABCD XXXX YYYY 90 (ABCD为对方路由器的以太网地址,XXXX 为子网掩码,YYYY为对方对应的广域网端口地址)

      # dialer-list 1 protocol ip permail

      二. 综合调试

      当路由器全部配置完毕后,可进行一次综合调试。

      1.首先将路由器的以太网口和所有要使用的串口都激活。方法是进入该口,执行no shutdown。

      2.将和路由器相连的主机加上缺省路由(中心路由器的以太地址)。方法是在Unix系统的超级用户下执行:router add default XXXX 1(XXXX为路由器的E0口地址)。每台主机都要加缺省路由,否则,将不能正常通讯。

      3.ping本机的路由器以太网口,若不通,可能以太网口没有激活或不在一个网段上。ping广域网口,若不通,则没有加缺省路由。ping对方广域网口,若不通,路由器配置错误。ping主机以太网口,若不通,对方主机没有加缺省路由。

      4.在专线卡X.25主机上加网关(静态路由)。方法是在Unix系统的超级用户下执行:router add X.X.X.X Y.Y.Y.Y 1(X.X.X.X为对方以太网地址,Y.Y.Y.Y为对方广域网地址)。

      5.使用Tracert对路由进行跟踪,以确定不通网段。

      路由器的选购

      选择路由器时应注意安全性、控制软件、网络扩展能力、网管系统、带电插拔能力等方面。

      1.由于路由器是网络中比较关键的设备,针对网络存在的各种安全隐患,路由器必须具有如下的安全特性:

      (1)可靠性与线路安全 可靠性要求是针对故障恢复和负载能力而提出来的。对于路由器来说,可靠性主要体现在接口故障和网络流量增大两种情况下,为此,备份是路由器不可或缺的手段之一。当主接口出现故障时,备份接口自动投入工作,保证网络的正常运行。当网络流量增大时,备份接口又可承当负载分担的任务。 (2)身份认证 路由器中的身份认证主要包括访问路由器时的身份认证、对端路由器的身份认证和路由信息的身份认证。

      (3)访问控制 对于路由器的访问控制,需要进行口令的分级保护。有基于IP地址的访问控制和基于用户的访问控制。

      (4)信息隐藏 与对端通信时,不一定需要用真实身份进行通信。通过地址转换,可以做到隐藏网内地址,只以公共地址的方式访问外部网络。除了由内部网络首先发起的连接,网外用户不能通过地址转换直接访问网内资源。

      (5)数据加密

      (6)攻击探测和防范

      (7)安全管理

      2.路由器的控制软件是路由器发挥功能的一个关键环节。从软件的安装、参数自动设置,到软件版本的升级都是必不可少的。软件安装、参数设置及调试越方便,用户使用就越容易掌握,就能更好地应用。

      3.随着计算机网络应用的逐渐增加,现有的网络规模有可能不能满足实际需要,会产生扩大网络规模的要求,因此扩展能力是一个网络在设计和建设过程中必须要考虑的。扩展能力的大小主要看路由器支持的扩展槽数目或者扩展端口数目。

      4.随着网络的建设,网络规模会越来越大,网络的维护和管理就越难进行,所以网络管理显得尤为重要。 5.在我们安装、调试、检修和维护或者扩展计算机网络的过程中,免不了要给网络中增减设备,也就是说可能会要插拔网络部件。那么路由器能否支持带电插拔,是路由器的一个重要的性能指标。

      外型尺寸的选择

      如果网络已完成楼宇级的综合布线,工程要求网络设备上机式集中管理,应选择19英寸宽的机架式路由器,如Cisco2509、华为2501(配置同Cisco2501)。如果没有上述需求,桌面型的路由器如Intel的8100和Cisco的1600系列,具有更高的性能价格比。

      协议的选择

      由于最初局域网并没先出标准后出产品,所以很多厂商如Apple和IBM都提出了自己的标准,产生了如AppleTalk和IBM协议,Novell公司的网络操作系统运行IPX/SPX协议,在连接这些异构网络时需要路由器对这些协议提供支持。Intel9100系列和9200系列的路由器可提供免费支持,3Com的系列路由产品也提供较广泛的协议支持。

      路由器作为网络设备中的“黑匣子”,工作在后台。用户选择路由器时,多从技术角度来考虑,如可延展性、路由协议互操作性、广域数据服务支持、内部ATM支持、SAN集成能力等。另外,选择路由器还应遵循如下基本原则:即标准化原则、技术简单性原则、环境适应性原则、可管理性原则和容错冗余性原则。对于高端路由器,更多的还应该考虑是否和如何适应骨干网对网络高可靠性、接口高扩展性以及路由查找和数据转发的高性能要求。高可靠性、高扩展性和高性能的“三高”特性是高端路由器区别于中、低端路由器的关键所在。

      CISCO路由器初始配置简介

      很多初学路由器知识的网友对路由器的初始配置可能感到很陌生,本人在初学时也很困惑,因为一下出来很多提问不知如何是好,下面将最近刚调试的一台CISCO3640的初始配置整理出来与各位网友交流,如有疏漏之处,还请大家指正。

      1.用CISCO随机带CONSOLE线,一端连在CISCO路由器的CONSOLE口,一端连在计算机的COM口。

      2.打开电脑,启动超级终端.为您的连接取个名字,比如CISCO_SETUP,下一步选定连接时用COM1,下一步选定第秒位数9600,数据位8,奇偶校验无,停止位1,数据流控制无.最后选确定。

      3.打开路由器电源,这时超级终端将出现以下画面:

      System Bootstrap, Version 11.1(20)AA2, EARLY DEPLOYMENT RELEASE SOFTWARE (fc1)

      Copyright (c) 1999 by cisco Systems, Inc.C3600 processor with 32768 Kbytes of main memory Main memory is configured to 64 bit mode with parity disabled

      program load complete, entry point: 0x80008000, size: 0x4ed478 Self decompressing the image :

      ###################################################################

      ###################################################################

      ###################################################################

      ###################################################################

      ###################################################################

      ###################################################################

      ###################################################################

      [OK]

      Restricted Rights Legend

      Use, duplication, or disclosure by the Government is

      subject to restrictions as set forth in subparagraph

      (c) of the Commercial Computer Software - Restricted

      Rights clause at FAR sec. 52.227-19 and subparagraph

      (c) (1) (ii) of the Rights in Technical Data and Computer

      Software clause at DFARS sec. 252.227-7013.

      cisco Systems, Inc.

      170 West Tasman Drive

      San Jose, California 95134-1706

      Cisco Internetwork Operating System Software

      IOS (tm) 3600 Software (C3640-I-M), Version 12.1(2)T, RELEASE SOFTWARE (fc1)

      Copyright (c) 1986-2000 by cisco Systems, Inc.

      Compiled Tue 16-May-00 12:26 by ccai

      Image text-base: 0x600088F0, data-base: 0x60924000

      cisco 3640 (R4700) processor (revision 0x00) with 24576K/8192K bytes of memory.

      Processor board ID 25125768

      R4700 CPU at 100Mhz, Implementation 33, Rev 1.0

      Bridging software.

      X.25 software, Version 3.0.0.

      2 FastEthernet/IEEE 802.3 interface(s)

      1 Serial network interface(s)

      DRAM configuration is 64 bits wide with parity disabled.

      125K bytes of non-volatile configuration memory.

      8192K bytes of processor board System flash (Read/Write)

      --- System Configuration Dialog ---

      Would you like to enter the initial configuration dialog? [yes/no]: y

      您是否进入初始化配置对话,选Y

      At any point you may enter a question mark '?' for help.

      Use ctrl-c to abort configuration dialog at any prompt.

      Default settings are in square brackets '[]'.Basic management setup configures only enough connectivity

      for management of the system, extended setup will ask you

      to configure each interface on the system

      Would you like to enter basic management setup? [yes/no]: n

      您是否进入基本配置安装,选N

      First, would you like to see the current interface summary? [yes]: y

      首先,您是否看一下当前端口状态

      Any interface listed with OK? value "NO" does not have a valid configuration

      Interface IP-Address OK? Method Status Protocol

      FastEthernet0/0unassigned NO unset up down

      Serial0/0 unassigned NO unset down down

      FastEthernet0/1unassigned NO unset up down

      Configuring global parameters:

      Enter host name [Router]:RouterA

      输入路由器的名字

      The enable secret is a password used to protect access to

      privileged EXEC and configuration modes. This password, after

      entered, becomes encrypted in the configuration.

      Enter enable secret: aaa

      输入密文

      The enable password is used when you do not specify an

      enable secret password, with some older software versions, and

      some boot images.

      Enter enable password: bbb

      输入密码(不能和密文相同)

      The virtual terminal password is used to protect

      access to the router over a network interface.

      Enter virtual terminal password: ccc

      输入虚拟终端的密码(以备远程登录)

      Configure SNMP Network Management? [yes]: n

      配置简单网管吗?选N

      Configure IP? [yes]: y

      配置IP吗?选Y

      Configure IGRP routing? [yes]: n

      配置IGRP路由选择协议吗?选N

      Configure RIP routing? [no]:

      配置IGRP路由选择协议吗?选N

      Configure bridging? [no]:

      配置桥接吗?选N

      Async lines accept incoming modems calls. If you will have

      users dialing in via modems, configure these lines.

      Configure Async lines? [yes]: n

      配置异步线路吗?选N

      Configuring interface parameters:

      Do you want to configure FastEthernet0/0 interface? [yes]: y

      您是否想配置fastethernet0/0接口?选Y

      Use the 100 Base-TX (RJ-45) connector? [yes]: y

      用RJ45的连接器吗?选Y

      Operate in full-duplex mode? [no]: y

      选用全双工模式?选Y

      Configure IP on this interface? [yes]: y

      在这个接口上配置IP吗?选Y

      IP address for this interface: 192.168.0.1

      配置该接口的IP地址(在此地址为192.168.0.1

      Subnet mask for this interface [255.255.255.0] :

      配置该接口的子网掩码.(默认的是255.255.255.0,可以手工输入修改)

      Class C network is 192.168.0.0, 24 subnet bits; mask is /24

      Do you want to configure Serial0/0 interface? [yes]: y

      您想配置serial0/0接口吗?选Y

      Some supported encapsulations are

      ppp/hdlc/frame-relay/lapb/x25/atm-dxi/smds

      Choose encapsulation type [hdlc]:

      选择封装方式(默认的封装方式是HDLC,您可根据与您的路由器相连选用的封装类型来决定用什么样的封装类型

      No serial cable seen.

      Choose mode from (dce/dte) [dte]:

      (因为没有连串口线所以会让您选择设备类型)

      Configure IP on this interface? [yes]: y

      (在接口上配置IP)

      Configure IP unnumbered on this interface? [no]:

      IP address for this interface: 172.16.0.5

      配置该接口的IP地址(在此地址为172.16.0.5)

      Subnet mask for this interface [255.255.0.0] : 255.255.255.252

      配置该接口的子网掩码.(默认的是255.255.0.0,可以手工输入修改为255.255.255.252)

      Class B network is 172.16.0.0, 30 subnet bits; mask is /30

      (以下配置同上)

      Do you want to configure FastEthernet0/1 interface? [yes]:

      Use the 100 Base-TX (RJ-45) connector? [yes]:

      Operate in full-duplex mode? [no]: y

      Configure IP on this interface? [yes]: y

      IP address for this interface: 172.16.0.9

      Subnet mask for this interface [255.255.0.0] : 255.255.255.252 Class B network is 172.16.0.0, 30 subnet bits; mask is /30

      The following configuration command scrīpt was created:

      (把您的配置显示出来)

      hostname aaa

      enable secret 5 $ul/V$ezbZFgvzGHD.YPSieC0Ew/

      enable password RouterA

      line vty 0 4

      password ccc

      no snmp-server

      !

      ip routing

      no bridge 1

      !

      interface FastEthernet0/0

      media-type 100BaseX

      full-duplex

      ip address 192.168.0.1 255.255.255.0

      !

      interface Serial0/0

      encapsulation hdlc

      ip address 172.16.0.5 255.255.255.252

      !

      interface FastEthernet0/1

      media-type 100BaseX

      full-duplex

      ip address 172.16.0.9 255.255.255.252

      dialer-list 1 protocol ip permit

      dialer-list 1 protocol ipx permit

      !

      end

      以下提示您是否保存这次设置

      [0] Go to the IOS command prompt without saving this config.

      [1] Return back to the setup without saving this config.

      [2] Save this configuration to nvram and exit.

      Enter your selection [2]: 2

      选择2保存设置并存入NVRAM中

      Building configuration...

      [OK] Use the enabled mode 'configure' command to modify this configuration.

      Press RETURN to get started!

      路由器重新启动

      00:00:08: %LINK-3-UPDOWN: Interface Serial0/0, changed state to down

      00:00:08: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up

      00:00:08: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to up

      00:00:09: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to down

      00:00:09: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down

      00:00:09: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down

      00:03:18: %IP-5-WEBINST_KILL: Terminating DNS process

      00:03:24: %SYS-5-RESTART: System restarted --

      Cisco Internetwork Operating System Software

      IOS (tm) 3600 Software (C3640-I-M), Version 12.1(2)T, RELEASE SOFTWARE (fc1)

      Copyright (c) 1986-2000 by cisco Systems, Inc.

      Compiled Tue 16-May-00 12:26 by ccai

      RouterA>

      进入用户模式

      RouterA>en

      Password:

      RouterA#

      进入全局模式

      RouterA#sh run

      查看现在运行的配置

      Building configuration...

      Current configuration:

      !

      version 12.1

      service timestamps debug uptime

      service timestamps log uptime

      no service password-encryption

      !

      hostname RouterA

      !

      enable secret 5 $ul/V$ezbZFgvzGHD.YPSieC0Ew/

      enable password bbb

      !

      memory-size iomem 25

      ip subnet-zero

      !

      interface FastEthernet0/0

      ip address 192.168.0.1 255.255.255.0

      speed auto

      full-duplex

      !

      interface Serial0/0

      ip address 172.16.0.5 255.255.255.252

      clockrate 2000000

      !

      interface FastEthernet0/1

      ip address 172.16.0.9 255.255.255.252

      speed auto

      full-duplex

      !

      ip classless

      no ip http server

      !

      dialer-list 1 protocol ip permit

      dialer-list 1 protocol ipx permit

      !

      line con 0

      transport input none

      line aux 0

      line vty 0 4

      password ccc

      login

      !

      end

      现在您就完成了了一个新路由器的基本配置,接下来就可以进行进一步的详细配置了

  • GSM手机测试

    2008-09-19 19:40:35

    测试手机的主要参数有:
    1) 发射功率等级 TX power level(5~19)
    2) 频率误差 frequency FER
    3) 相位误差 Phase PER
    4) 射频频谱  RF Spectrum
    5) 开关谱   SwitchSpectrum
    6) 接受灵敏度  RX Sensitivity
    7) 调制谱  Modulation Spectrum

    测试系统需要的主要设备
    1) 模拟基站的综合测试仪   如德国罗德-史瓦茨公司的CMU200
    2) 通信专用电源    如2304A双通道移动通讯高速电源,该电源在脉冲 负载变化时展现了他显著的电压稳定性,同时能够测量负载电流。对于测试需电池供电的无线通讯设备(例如便捷式电话),在非常短的时间间隔内经历真实的负载变化而言,这种电源是最优化的。
    3) 手机夹具等
    4) 测试开发软件  labview或VB等    labview快速方便

    测试过程

    实际测量系统的工作过程是首先手机开机,寻找与模拟基站CMU之间的频率同步;然后对PS(电源)与CMU进行初始化;初始化正确完成后在MSC上注册手机IMSI号;建立MS对BS(基站)的呼叫;当呼叫成功时,开始测量手机GSM900参数;首先测量信道1三个功率等级(Lv5,Lv10,Lv15)的发射功率;若符合标准,进入信道1的FER(频率误差)与PER(相位误差)测量;按同样的步骤测量信道62、123的发射功率、FER与PER;测量GSM900的Modulation Spectrum(调制谱)、SwitchSpectrum(开关谱);从GSM900切换到DCS1800;测量信道512,69 8,885的各发射功率,FER,PER,ModulationSpectrum和SwitchSpectrum;在测量过程中如果任何参数不符合标准,立即显示FAIL并生成报告退出,全部测试完毕显示PASS并生成报告退出。
    程序处理的主要部分包括"获取测试设备"、"初始化CMU"、"建立呼叫"、"取得信令 状态,直到CMU与手机同步"、"执行测试项"、"结束呼叫"。获取测试设备时对GSM900和DCS1800分别分配设备句柄(设定GPIB地址),以便完成两种标准下的测试。CMU在完成初始化之后,呼叫移动台并建立连接后即可执行测试。
    在执行测试部分以发射功率为例说明其处理过程。发射功率(发射机载频峰值功率)是发射 机载频功率在一个突发脉冲的有用信息比特时间上的平均值,其大小直接关系到手机信号传输距离的远近、电源的使用时间和对其他移动台的影响。根据最大功率将移动台分为若干功率级别,相邻功率级之间相差2 dB。
  • GSM ?

    2008-09-19 19:39:45

       GSM全名为:Global System for Mobile Communications,中文为全球移动通讯系统,俗称"全球通",是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。我国于20世纪90年代初引进采用此项技术标准,此前一直是采用蜂窝模拟移动技术,即第一代GSM技术(2001年12月31日我国关闭了模拟移动网络)。目前,中国移动、中国联通各拥有一个GSM网,为世界最大的移动通信网络。GSM系统包括 GSM 900:900MHz、GSM1800:1800MHz 及 GSM-1900:1900MHz等几个频段 。

    GSM系统有几项重要特点:防盗拷能力佳、网络容量大、手机号码资源丰富、通话清晰、稳定性强不易受干扰、信息灵敏、通话死角少、手机耗电量低。

    目前我国主要的两大GSM系统为GSM 900及GSM1800,由于采用了不同频率,因此适用的手机也不尽相同。不过目前大多数手机基本是双频手机,可以自由在这两个频段间切换。欧洲国家普遍采用的系统除GSM900和GSM1800另外加入了GSM1900,手机为三频手机。在我国随着手机市场的进一步发展,现也已出现了三频手机,即可在GSM900\GSM1800\GSM1900三种频段内自由切换的手机,真正做到了一部手机可以畅游全世界。

    早期来看,GSM900发展的时间较早,使用的较多,反之GSM1800发展的时间较晚。物理特性方面,前者频谱较低,波长较长,穿透力较差,但传送的距离较远,而手机发射功率较强,耗电量较大,因此待机时间较短;而后者的频谱较高,波长较短,穿透力佳,但传送的距离短,其手机的发射功率较小,待机时间则相应地较长。
  • GSM测试手机介绍及使用技巧

    2008-09-19 19:37:54

     
    GSM原理
        (翻译自Aglient 公司的GSM原理/测量培训教材)

        GSM是Global System for Mobile Communication 的缩写。意思是全球移动通信系统。分GSM900、DCS1800和PCN1900三个频段,一般的所谓的双频手机就是在GSM900和DCS1800频段切换的手机。PCN1900则是别的一些国家使用的频段(如美国)。 GSM900/1800分别是工作在890~960mhz/1710~1880mhz频段的。GSM900的手机最大功率是8W(实际中移动台没这么大的功率,一般的手机最大功率是2W,车载台功能大),而DCS1800的手机的最大功率是1W。
        GSM900/DCS1800/PCN1900的区别: GSM900是初始的GSM 系统, MOBILE 的功率从输出1W-8W, GSM900的通道从1 ~124, DCS1800的通道从512~885;  DCS1800是低功率的, 最高是1W;  
        GSM的频段:GSM900  小区半径35km 上行880~915MHZ 下行将925~960MHZ
        PHASE2:  890~925MHZ 和935~960MHZ; 通道号1---124.
    GSM1800小区半径2km(由于1800mhz手机的低功率) 上行710~1785MHZ 下行1805~1880MHZ。
        PHASE2:  SAME; 通道号 :512—885. 为高密度的用户.
        GSM1900:  1850~1910MHZ   1930~1990MHZ 
        上行和下行组成一频率对, 上行就是手机发射、机站接收;下行就是基站到手机。 例如935-960 和890-915 相差45MHZ, 第二个通道上, 上行落后下行三个时系.
    ?  网络组成:
        1. BTS 基站:base transceiver station 基站首要是收发器,收发器的多少决定小区的容量,一个收发器能支持8个用户。一个小区由3个天线,一个发射,两个接收(分级接收)。(收发器和天线的关系)???
        a) 每个BTS都会有一套收发器。
        b) 一个BTS覆盖一个小区,BTS发送BCH信号在RF信道的0时隙。BCH帮助Mobile识别/寻找网络。
        c) 小区的手机用户容量依靠信道数
        d) GSM空中接口的数据传输速率是13Kbps, 即BTS收发语音数据速率是13KB/S.
        e) 有BTS命令手机设置其发射功率、迁时、切换。
        2. BSC base station controller 基站控制器:
        a) 几个BTS基站连接一个BSC, 基站安排信道配置、切换、和BTS连接BSC; 所有的BSC连接至MSC,
        b) 每个BTS连结BSC用abis 接口,是2Mbps的连接。使用microwave link、optical fiber、 co-axial line等方式连接.
        c)Microwave link 经常是最好的连接方式选择。
        d) BSC连结MSC使用的是A口
        e) 在BSC可提供小区广播等服务。
        3. MSC mobile switching center 是网络的核心,呼叫建立、保持、和释放;链接BSC和PSTN、认证、呼叫转接、短信息、收费等。当用户增加到一定数量时,可增加MSC;MSC与MSC之间使用GMSC连结(GATEWAY)
        a) 当呼叫建立时,MSC起到保持通话和断开通话的功能。
        b) 存储所有的用户数据和它们的相关特征。
        c) 介于MS和PSTN之间,交换通信数据.
        d) MSC是GSM 网络的心脏。是与别的GSM 网络、非GSM网络的连接口。
        e) MSC主要功能:认证、位置更新、连接、收费、呼叫转接、SMS。
        f) 当用户增加时,超过一个MSC的容量,就需要多一个MSC,就增加一倍的用户
        4. TRAN------Trans coding/rate adapter unit 速率适配器。
        a) TRAN转换13KB/S的GSM速率为标准的64KB/S; TRAN作为一MSC 的一部分。
        b) Trans coding 也使用在下行时,将64kbps转换成16kbps.
        c) Trans coding在MSC\BSC\BTS中。
        5. HLR Home location register归属位置寄存器。
        a) 在MSC中有所有的用户数据库存在于HLR。HLR中有永久用户数据库。
        b) 用户发出呼叫时,MSC从HLR之中获得用户数据。是用户核心数据库,大部分在SIM卡中的数据都可以在HLR中获得。
        6. VLR visiting location register 访问位置寄存器。
        a) 在VLR中有被激活的所有的用户号码。
        b) 当别的MSC中的用户漫游到新的MSC时,MSC和HLR之间通信,新的MSC就将漫游的用户注册到它的VLR中。
        c) 当手机漫游时,用户访问区被别的网络覆盖,而且归属位置网络批准它使用被访问的网络,它的用户信息将从HLR被拷贝到VLR(访问位置寄存器)中暂存。
        7. 鉴权中心AUC----Authentication center
        a) 是SIM 卡的验证过程。
        b) 每个SIM卡有一个IMSI, 在IMSI有加密码
        c) 在HLR中有IMSI和密码
        d) 手机通信时,首先验证SIM 卡的合法性,由AUC 进行验证。
        8. 装备身份注册:EIR----Equipment identify register
        a) 包含了IMEI信息。所有的手机IMEI都存储在EIR中,是手机的数据库。
        b) 在GSM中有助于验证当手机遗失时,运营商可以禁止已经报失手机的使用。
        c) EIR分类:Permitted list\evaluation list\stolen list\unknown
        9. 收费中心BC---Billing center
        a) BC产生每一个用户的费用状况.
        b) 直接连到MSC, 由MSC发送收费信息给BC(通话时)
        c) BC处理按单位计费。
        10. 操作运营中心:OMC----operation and maintenance center.
        a) 每个GSM网络超过100 个BTS组成,每一个实体需要操作和维护。
        b) 一些远程操纵是必要的,检测和远程进入。
        c) 有时有两种OMC(不同的供应商),OMC-S: Deal with switch; OMC-R :deal with radio network。
        11. 短信中心:SMSC信息通过短信息中心发到指定的手机。
        a) 信息通过SMSC传输
        b) 信息可通过人工终端(连到SMSC)发送。
        c) 短信中心SMS CENTER---MSC/VLR----BSC----BTS.----MS
        12. 语音服务中心:
        a) 它拥有所有语音用户的数据库;
        b) 它也存储了语音信息。
        13. 设备报警:
        a) BTS, BSC, Trans coder failure.
        b) Link failure
        c) Module failure(transceiver, processor)

    ?  小区身份,网络中每个小区都由唯一的识别号,CI: Cell Identity. 一个小区由56个用户可同时通话
    ?  调制方式: GSM 采用的是0.3GMSK调制高斯最小频移键控,0.3是描述滤波器带宽和比特率的关系,不是相位调制,是一种典型的数字调频调制,实际上是调频。0和1代表的是载波加减不同的频率+67.708KHZ 和-67.708KHZ,1被看作是相位增加90度,0被看作是相位在相反方向改变,两个频率表示频移键控; 语音编码速率时13kbps. 数据速率(调制速率)BIT传送速率是270.833Kbps。刚好是四倍于射频频移。这样一来就有效的减少调制频谱和提高了通道利用率.  高斯滤波: 剧烈的频率变化会导致频谱扩散, 所以用滤波器进行滤波平滑后, 减少频谱扩散;  RF载频加67.708和减67.708KHZ; 靠频率转移.
    ?  GSM网络系统:手机和机站的接口是空中接口,基站(BS)和基站控制台BSC是靠abis接口2Mbps的连接。(是光纤或者常用微波连接, DCS1800 Abis接口经常使用微波连接), 一个BSC控制20~30个BTS;基站控制台BSC到交换局是A口连接。手机和基站的最大距离是34.9km。

    ?  手机开机后的步骤:
        1. 首先搜索124个信道,即所有的BCH通道, 决定收到的广播信道BCH强度, (BCH 的承载的信息是距Mobile最近的BTS; 呼叫信息);
        2. 跟网络同步时间和频率, 由FCH/SCH调整频率和时间
        3. 解码BCH的子通道BCCH.
        4. 网络检查SIM 卡的合法身份.是否是网络允许的SIM 卡。
        5. 手机的位置更新.
        6. 网络鉴权

    ?  手机主叫(MOC)过程:
        1. 手机给基站发送通道需求,即手机发送一个短的随即接入突发脉冲.(RACH Burst)
        2. 由BCH 指定传输信道. SDCCH
        3. 手机和基站在独立专用信道(SDCCH)上通信.
        4. 权限认证
        5. 指定手机在一个业务信道(TCH)上通信.
        6. 在TCH上进行语音通信.

    ?  手机被叫
        1. BTS在PCH呼叫通道上使用SIM中的IMSI号码来呼叫用户。
        2. 由手机发送RACH
        3. 通道指定在BCH.
        4. 手机和基站在SDCCH 上通信
        5. 手机用户被鉴权
        6. 手机被指定TCH通道。
        7. 在TCH通道上进行语音和数据通信。

    ?  紧急呼叫:
        1. GSM规格定义了112 为紧急呼叫号码
        2. 112在手机有无SIM卡的情况下均可呼叫。
        3. 在RACH 上, 手机112 建立紧急呼叫。

    ?  Authentication 鉴权:
        1. 目的:验证用户身份(IMSI /SIM); 提供手机新的加密键。
        2. 鉴权是在什么情况下:每一次注册、每次呼叫或被叫企图、执行一些增值服务、漫游时的位置更新。
    ?  切换handover: 切换是手机通信从一个小区/信道到另外一个小区/信道。
        1. 上行和下行的接收质量报告
        2. 上行和下行的接收信号强度
        3. 距离,迁时
        4. 干扰层。
        5. 功率预算。
        6. 切换包括:同一小区内部信道/时隙之间的切换。小区于小区之间。
    ?  加密ciphering: 语音和数据的保密、信号信息的保密;
    ?  手机位置更新location update:
        1. MSC应知道呼叫手机的位置。
        2. 手机连续的改变位置,手机在改变位置时通知MSC关于新位置。由MSC处理位置更新。
        3. 手机位置更新过程:(location area identity LAI)
        a) 手机改变位置区
        b) 手机从BCCH 上读新的位置区
        c) 发送RACH, 为通道需求。
        d) 在AGCH上获得一个SDCCH.
        e) 在SDCCH发送IMSI和新旧LAI位置更新需求给MSC
        f) MSC开始认证
        g) 如果认证成功,更新手机位置在VLR上
        h) 发送确认信息给手机
        i) 手机离开SDCCH, 进入空闲模式。

    ?  上行和下行:上行是手机通过上行频率发信息给基站,下行是相反。上行和下行组成一对频率对(45MHZ分割),上行滞后下行3个时隙;上行和下行使用相同的时隙号;上行和下行使用相同的通道号;上行和下行使用不同的波段。(间隔45MHZ)。
    ?  功率等级:
    由于手机在小区内移动,它的发射功率要随着移动,当他靠近基站时,防止干扰别的用户功率要减小,当他远离基站是为防止衰减要增大发射功率。总共有19个功率等级, 功率等级存于手机的EEPROM中. 功率控制的好处是:手机可以省电、基站减少干扰。
        1. 由基站在SACCH上发送命令手机改变发射功率
        2. 改变功率是和路径的衰减成比例。TX Level 5 –33dbm ,19---5dbm。
        3. 每个等级之间是间隔2dbm.
        4. BTS需要在上行开始的Rxlev、Rxqual
        5. 每480ms 发送报告给BSC 关于Rxlev、Rxqual。
        6. 每一定时间跟初始的进行比较。

    ?  动态基站功率控制:
        1. 目标是减少平均干扰
        2. 基于MS发送的测量报告计算
        3. 不是和BCH载波。
        4. 非强制性的

    ?   DTX 不连续发射:
        1. 当语音中断的大部分时间里,允许无线发射器关掉。
        2. 有DTX Handler处理器:在发射端有语音激活检测、在发射端有背景声噪音、在切断时产生舒适噪音。
        3. 不连续发射在上行和下行都有执行。不连续发射、不连续接收;
        4. 在手机上执行不连续发射和不连续接收。
        5. 在BTS接收时有不连续接收
    ?  时迁(定时提前):
        Timing advance 就是为了保证信号能在准确的时间内到达BS, 当MS移动时, 随着MS距离BS 的远近, 上行传递的时延的可变,基站命令移动台提前发送。由BS在SACCH信道上命令MS来改变它的迁时的大小. 手机在空闲模式时接收机站和解码BCH,在BCH中的SCH允许手机调整它的内部时间,当手机接收到SCH时不知道距离基站多远,通过SACH特殊的短突发。当手机在下行的SACCH上获得迁时信息,才发送正常的突发,30KM 手机设置迟延100US.
    ?  信道介绍:
        1. BCH 广播信道:  
        BCH就象灯塔, 在每一小区的任何时候, 都有BCH在ARFCN上,使手机能发现网络, 并使手机同步于网络,并且BCH信号的强度告诉手机那个是距它最近的GSM网络; 手机几乎每30秒会报告相邻小区的BCH 功率, 以便于由基站决定是否切换.?? 每一小区使用的BCH频率通道都不同, 通道被远距离的小区重复使用; 小区中的所有的手机接收BCH.  在ARFCN上有BCH信道. BCH的信息在下行的通道0时系, 其他时系用于业务信息TCH; 使MS 同步, 运载控制信息和呼叫信息. 和网络身份信息。所有手机的呼叫信息都在BCH上。BCH由FCH、SCH、BCCH、CCCH、SDCCH、SACCH组成。基站产生的BCH在零时隙,
        a) FCH: frequency correction channel 在BCH上重复使用特别的BURST, 让手机开机时调整它的频率.
        b) SCH: synchronization channel, 在FCH后, 调整时间.
        c) BCCH: 广播控制信道, 带有网络身份.
        d) CCCH: 共用控制信道, 它的子通道PCH(PAGING CHANNEL)在CCCH上. 手机能认出并用一个RACH作出反应.; 还有子通道AGCH 访问认可通道, 命令手机进入SDCCH或TCH.
        2. CCCH共用控制信道: 是双向控制信道, CCCH和BCH在多帧上分享0时隙;CCCH包括RACH; PCH; AGCH; CBCH; PCH呼叫通道 用于运载IMSI报知手机有呼叫、PCH是下行通道,
        3. DCCH专用控制信道: 双向控制信道, 由三个子通道组成:SDCCH,FACCH,SACCH.。
    ?  SDCCH独立专用控制信道:指定TCH之前的过渡信道,话务建立和用户验证. SDCCH 独立专用控制信道: 在呼叫建立时, 于BCH 和TCH之间起连接作用.
    ?  SACCH 慢速相关控制信道:  
        上行: 接收信号质量报告、接收信号RX LEVEL 报告、相邻小区的BCH 功率报告。通道功率;手机的状态.  
        下行:命令MS的TX 功率控制的命令、小区信道配置、迁时、跳频。
    ?  FACCH 快速相关控制信道:由BTS用作命令手机切换,
        上行:中断TCH信号、切换时快速信息交换。
        下行:中断TCH. 控制BITS
    ?  SACCH和FACCH的区别: SACCH报告基站说有另外的小区可提供给手机更好的信号质量, 切换是必要的.在段时间内, 由于SACCH 没有足够的带宽, 所以在短时间内由FACCH取代TCH; 切换就发生了. FACCH象一个TCH. 当听到语音有小的中断时, 可能发生了切换.
        4. TCH业务信道: 通话时使用的信道. 运载语音信息、是双向的用于手机和基站交换语音信息 ,TCH full rate  26 frames是 120ms。包含24carry speech, 1个idle , 1个sacch。TCH half rate  26 frames 是120ms ; 包含24carry speech , 2个sacch.
        5. RACH随机接入信道:
        由手机发送短的突发给基站,即呼叫需求;由MS使用来从基站获取注意; 手机并不知道路经的迟延, 所以手机发短的BURST, 当手机在下行的RACH上获得迁时时, 手机才发正常的BURST.
        6. 手机测量报告:
        SACCH的测量报告提供给GSM系统。每个手机测量服务小区的功率,也测量相邻小区的BCH功率;手机也测量在TCH上接收的信号的强度和质量。通过SACCH将接收RxLev(dbm)和RXQuaL(be mapped directly to bit error ratio)报告给所在服务小区。
        7.接收表现:GSM接收器要在复杂的无限环境中有效的操作。接收器要适应多径和多普勒衰减,低信号、高信号、以及别的收发射器或别的用户的干扰。要能以最小的比特误码率解调0.3GMSK 信号。GSM的语音通道的语音信息编码为Ia和Ib带有错误纠正,而Ⅱbits没有错误纠正。互调测试手机在GSM波段的对两个干扰的选择,
    ?  IMEI 是 international mobile equipment identity 国际移动设备识别号就是手机串号,每一个手机都有一唯一的不同于别的手机的串号。IMSI:international mobile subscriber identity国际移动用户识别号是手机用户进入网络的正确身份。15位IMSI存于SIM卡中.
    ?  SIM subscriber identity module : 由4-8位的PIN码,3次错误的输入卡就停止工作;8位的PUK码,10次错误的输入SIM卡就被永久的锁住。SIM卡包含有:串号、IMSI、鉴权算法加密、网络代码、PIN PUK、充电信息。SIM 卡: 保持有所有的用户信息,(IMSI\ 允许的网络单); 存有最后的位置信息. 拨打信 息和存储信息.存储电话号码等。
    ?  Dual band & dual mode:
        1. dual band : 双带,手机有频率开关,可工作在两个频率段
        2. dual mode 双重模式 在手机中,mode 是所使用发射技术的类型, 数字模式和模拟模式。手机支持AMPS和TDMA, 能按需要的模式转换。AMPS是模拟的。
    ?  Mobile Station ISDN number: (MSISDN): 也就是手机号码。
    ?  小区接入技术:
        1. FDMA: frequency division multiple access: 每个通话放在一个单独的频率上。
        2. TDMA: Time division multiple access: 在指定的频率上,通话在固定的时间段上。
        3. CDMA: Code division multiple access 每个通话都有唯一的代码。
    ?   时分多址接入技术:
        1. GSM 使用了TDMA 和FDMA多路传输:124 Frequency channels for GSM900; 100khz channel; mobile share ARFCN by TDMA. 0.3GMSK Modulation 270.833kbits/sec.
        2. 在GSM系统中有124个频道, 频道间隔是200khz; 每个频道由8个用户共享,在时间上进行时分复用。就是说信号的发送是突发的不是连续的发送的。上行和下行规定使用相同的信道号(ARFCN)和时系号,而且基站和移动台相差三个时系,即上行电路落后于下行电路三个时系时间。

    ?  物理通道和逻辑通道:
    物理通道: 被描述在时域和频域;  是实际的频率和时域, 由频道或绝对射频信道号和时系共同决定的。TS number 和ARFCN的组合就是物理信道。
    逻辑通道; 是在物理通道上,在任何频率和时系可能是业务信道或是控制信道.
    ?  1 timeslot period=576.92us, 1frame =8timeslots. Frame period=4.615ms, voice coder bit rate=13kbps,
    ?  在Timeslot/normal burst 中,有26bits的慢或是Training bits。
    ?  跳跃业务通道:所有的手机都有跳频的能力,但是不是所有的小区都是跳跃区(象城市有较多的建筑物造成多径,被设为跳频小区)。手机测量相邻小区bch的强度,跳跃顺序由小区配置和手机配置表定义。小区配置表列出所有的特别小区跳跃顺序。
        1.小区重选-----测量并进行BCCH解码:MS每5秒算出服务小区C1和非服务小区C2
        2.MS最少要每30秒解码服务小区全部的BCH数据。
        3.手机解码BCCH数据包含影响小区选择的参数,最少5分钟6个最强的小区BCCH载波。
        4.当MS找到6个最强的BCCH 载波, 在30秒内BCCH数据到新的载波。

    ?  跳频:
        1. 多路衰减产生不同的信号强度被叫做瑞利衰减
        2. 瑞利衰减是由不同的路径和由此的接收频率决定
        3. 快速移动的手机可能体验不到由于路径的改变而产生剧烈的影响
        4. 慢速或停止的手机可能体验到语音质量的严重影响
        5. 如果当衰减发生时接受频率改变,问题就会解决
        6. 衰减现象是连续的和快速的,这样频率变化也应该是连续的。
        7. 这种连续变化的频率叫做跳频
        8. 在上行和下行都要进行跳频处理
        9. 在每个TDMA帧频率改变
        10. 手机的跳频最多64个频率
        11. 跳跃顺序是循环或非循环的
        12. 什么是跳频顺序?不同的跳频顺序可在同一小区使用。
        13. BCH时隙不跳跃 
        14. 跳频能使平均干扰减少。即使共道小区将使用相同的ARFCN跳频,干扰将不连续。
        15. GSM 小区不是帧同步,频率的改变相关于Frame nos.
        16. 如果相同的HSN,用在两个小区,干扰要么是零,或者如果相位更正存在将是连续的
        17. 所以两个小区要尽可能的使用不同的HSN.
        18. 扇形小区(同一个BTS)能使用相同的HSN, 由于区域不同时出现。

    ?  语音编码: 现代的数字通信中使用语音压缩技术, RELP残余激励线性预编码和LTP 长期与编码。语音质量被影响由首要的Ia bits,有错误检测加CRC纠错。评价语音质量MOS=Mean opinion score , 1---5; 5 是最好的。1 是最差。

    ?  GSM蜂窝通信系统和测量
        第一带的模拟移动通信技术:是模拟系统,信道上的信息是语音信息以模拟方式传输的,使用的也是模拟调制(调频)。存在频谱利用、容量、功率利用率、保密等缺点。
        第二代的数字的、以电话业务为主的窄带移动通信技术。采用语音压缩编码使话音数字化、以TDMA、FDMA多种编码方式调制。
        第三代以有限多媒体业务为主的宽带移动通信技术。是一种全球性的个人移动通信系统、为静止或慢速移动的用户提供2Mbps数据流,高速移动的用户144Kbps。中速移动的是384Kbps。有几种标准:WCDMA;CDMA2000.
        第四代是以多媒体为目的的广带移动通信技术。

    ?  GSM测量中使用到的仪器:
        时域分析:示波器 易观察相位失真。
        频域分析:频谱分析仪 易观察谐波失真。

        加密cipher/encryption: 安全保密是GSM系统的一个特点, 由基站控制加密的开关,

    ?  测量时的原则是:
        要有足够的功率保证连接, 连接调制质量, 克服路经衰减;选择的测量:要避免假坏、找出所有的真坏、解释失败;测量时要的是为什么要测量?和寻找什么?提供给可靠的质量、可靠的操作安全、提供有缺陷的数据给制造商。寻找潜在的生产缺陷、缺陷的生产过程,从手机的寿命和损坏的结果。实际生产中需要测试的外设:键盘和显示、电池连接、SIM卡的连接、耳机语音、天线测试、液晶显示等。
        1. 误码率:
    接收灵敏度的表现, 误码率BER bit error ratio是评价在模拟的输入时接收的情况. 所有的手机都有一LOOP BACK 模式, 由GSM TEST SET给手机发送命令,让手机进入Loop back 模式, 而且只有当TESTSIM插入手机时, loop back 才能被激活, 一旦手机循环回调制的数据流, BER就可测量了; 比特误码是由于手机接收引起的. 由GSM TEST SET 模拟一个基站, 由GSM TEST SET产生一个高质量的0.3GMSK信号, 和手机建立呼叫, 手机被命令进入loop back模式, 通常语音数据编码在TCH上, 但此时被伪随机比特(pseudo random binary sequence)序列取代, PRBS被调制在下行的TCH 上, 手机收到并解调PRBS, 重新调制到上行的TCH上, 在TEST SET 里,解调并和原始的PRBS比较., 错误的就以百分比.
        2. 接收静态灵敏度:
    手机在小区内移动, 由于路经的衰减, 基站使用从手机发来的RXLev显示接收的功率, 当显示接收的功率小时, 基站调整它的输出功率; 这叫动态功率控制, 范围超过30DB.在最远-102dbm 时BER<2%, 在最高(最近)-15DBM时BER<0.1%;
        a) 衰退条件下的接收灵敏度.
        b) 干扰条件下的接收表现:
        3. GSM BURST:
    是功率对时间的关系(power versus time)。0.3GMSK的突发脉冲中的平坦部分是有用部分,其波动范围应在±1.0dbm.内。测量功率对时间power versus time burst profile:  用时门频谱分析仪, 由频谱分析仪设置零频率跨度(SPAN);调至信号中心频率,分辨率带宽要选到足够窄使信噪比能显示出整个Burst的动态范围,而且分辨率带宽也要足够而不至于扭曲显示的轮廓。
        4. 测量输出的RF频谱:
    RF调制输出频谱平均的轨迹,平均的和中心频率的值相比就是dbc. 由于Ramping输出的RF频谱. Ramping 频谱的测量是为了保护那些使用相邻频率通道的用户, 要求TDMA burst 有足够的动态范围、上升的足够快、不要超过目标,而且在中心要平坦。波纹的出现在burst中央是产品测量期望的。瞬间的输入频率接近±67khz和数据模型
        5. 杂散波的散发的测试:
        1. 保护别的无线频谱用户,不被干扰。在R&D要测试,生产一般不需要。
        2. 保护别的用户、从9KHZ 到12.75GHZ。、空闲模式/通话中
        a) 用Spectrum analyzer 去搜索9K-12.75GHZ内的所有频谱。
        b) 在空闲模式和在通话中模式中。
        c) 要在完全屏蔽的RF测量条件下,屏蔽掉别的无限频谱。
        6. 发射部分:
        EEPROM 存储了I/O增益平衡参数, Ramping 控制线路的形状参数;发射输出的校准功率值和功率更正系数也存储在EEPROM中;发射输出功率是GSM规则中最重要的一个协议。所有的收集都需要EEPROM 校准表以满足GSM 协议要求,在不同的输出频率,功率校准表为每一个功率等级留有更正值;发射输出功率能被GSM TEST SET 来测量。最大的功率输出偏差是2dbm.  其他的是3dbm.偏差。
        7. 调制合成是转换数据流从通道编码器到无线信号,调制和信道合成器成单个线路。
        8. 相位和频率误差:相位和频率误差能显示手机许多性能。峰值相位误差peak〈20deg; 平均相位误差<5deg; 频率误差<90hz.
        9. 时基调整范围
        timing tuning range: 时基调整范围检查是每个手机生产商都要做的,所有的手机都有一个内部频率参考振荡器(时基),手机里所有别的频率都要和这个参考频率同步;这个参考频率时可调的、所以手机能和网络同步;充足的调整范围是必要的。是因为多普勒衰减和温度的变化。
        10. dbc 测量射频频谱,由调制引起的频谱曲线测量,将平均测量结果与中心频率处的平均值相比,就是相对的dbc值.
        11. RELP: 残余激励线性预编码。 LTP: 长期预编码。
        12. 空闲模式(idle mode): 没有在通话,但仍然扎营在网络上。从基站接收和解码BCH。
    ?  手机Camp on: Preferred list.
    QUSTION:
    ________________________________________
      
    1、小区的一个基站一般有几副天线? 3
    2、一副天线能否同时发射几个频道?如果不能,那么如何给一个小区同时提供几个频道?
    3、小区的一个控制信道(如BCCH)是否只能占用小区中一个载频的一个时隙(而不能变化信道或同时占用几个信道)?
    4、业务信道和控制信道能否同处于一个频道中?


    国内GSM手机进网检测的测试标准
    目前我国GSM手机进网检测执行的是1996年颁布的YD/T884-1996《900MHzTDMA数字蜂窝移动通信网移动台设备技术指标及测试方法》。该标准是基于ETSIGSM11.10的12-14章,主要规定了GSM900移动台无线收发信机的射频、音频指标的定义、要求及测试方法。该标准除用于手机进网检测外,还广泛用于仲裁测试、性能测试以及手机厂家、运营单位、和维修部门对手机进行的检测。该标准规定的主要指标有:
    发射机:
    -相位误差和频率误差
    -多径与干扰条件下的频率误差
    -发射机载频峰值功率与突发脉冲定时
    -输出射频频谱
    接收机:
    -坏帧指示性能
    -参考灵敏度
    -接收机适用的输入电平范围
    -同信道抑制
    -邻信道抑制
    -互调抑制
    -阻塞与杂散响应抑制
    杂散辐射
    音频测试:
    -发送灵敏度/频率响应
    -发送响度评定值
    -接收灵敏度/频率响应
    -接收响度评定值
    -侧音掩蔽评定值
    -电话声耦合损耗
    -失真
    -带外信号抑制
    -空闲信道噪声
      YD/T884-1996自颁布以来一致指导我国的GSM手机检测,为保证国内进网和销售的GSM手机质量起到了技术支持和保障作用。但随着GSM技术的不断发展,现在GSM双频、多频手机已全面上市,手机的各项新业务新功能不断出现,该标准只覆盖900MHz一个频段,因此急需更新。目前中国无线通信标准委员会(CWTS)正在研究制订新的标准。
    国内GSM手机进网检测的测试标准和技术要求
        目前国内对GSM手机的进网检测采用抽样检测的方式进行。
        手机厂家申请新型号的手机入网时,需按照信息产业部《电信设备进网审批管理办法》办理各项手续,信息产业部委托各地行业主管部门对申请入网的手机随机抽样5台,连同测试必须的附件,包括专用射频测试电缆、电池、充电器和说明书,一起封样送至信息产业部授权的检测中心进行检验。
    基本功能测试包括:
    -位置登记
    -移动主叫通话
    -移动被叫通话
    -移动台挂机
    -切换
721/41234>
Open Toolbar