每个人都有属于自己的人生,有人到过哪里才想到哪里,有人会去精心安排,过好专属于个人的每个阶段。我们唯有一次的人生,不是可以更改的电话号码,它需要我们精心地选择。

发布新日志

  • (转)软件评测复习知识点(ZT :小颖)

    flyingbinbin 发布于 2007-05-31 10:29:33

    软件评测复习知识点(ZT :小颖)
          
    整理人:黑龙江哈尔滨  邵颖
    整理日期:20055
    第一部分:软件评测知识
    1.   软件质量与软件测试
    软件测试:在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括对软件形成过程的文档、数据以及程序进行测试
    软件质量:软件特性的总和,软件满足规定或潜在用户需求的能力
    2.   软件测试与质量保证
    软件测试只是质量保证工作中的一个环节,软件质量保证与软件测试是软件质量工程的两个不同层面的工作;
    质量保证:通过预防、检查与改进来保证软件质量,采用全面质量管理和过程改进的原理来开展质量保证工作,主要关注软件质量的检查与测试,主要着眼于软件开发活动的过程、步骤和产特
    软件测试:通过执行软件来,对过程中的产物(开发文档和程序)进行走查,发现问题,报告质量
    3.   软件测试的目的
    测试是程序的执行过程,目的在于发现错误;
    一个好的测试用例在于发现了至今未发现的错误;
    一个成功的测试是发现了 至今未发现的错误的测试;
    4.   软件测试原则
    所有的软件测试都应追溯到用户需求
    应当把“尽早地和不断地进行软件测试”作为测试者的座右铭
    完全测试是不可能的,测试需要终止
    测试无法显示软件潜在的缺陷;
    充分注意测试中的群集现象
    程序员应避免检查自己的程序
    尽量避免测试的随意性
    5.   软件测试对象
    程序开发过程中的各个文档、源程序
    6.   软件测试过程模型-V模型
    是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系;
    局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现
    7.   软件测试过程模型-W模型
    在V模型的基础上,增加千开发阶段的同步测试,形成W模型;测试与开发同步进行,有利用尽早的发现问题
    局限性:仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,不能支持迭代,自发性以及变更调整
    8.   软件测试过程模型-H模型
    在H模型中,软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段;软件测试可以进行尽早的进行;软件测试可以根据被测物的不同而分层次进行
    9.   测试模型使用
    在实际工作中应灵活地运用各种模型的优点
     V模型
    强调了在整个软件项目开发中需要经历的若干个测试级别,并与每一个开发级别对应;忽略了测试的对象不应该仅仅包括程序,没有明确指出对需求、设计的测试
    W模型
    补充了V模型中忽略的内容,强调了测试计划等工作的先行和对系统需求和系统设计的测试;与V模型相同,没有对软件测试的流程进行说明
    H模型
    强调测试是独立的,只要测试准备完成,就可以执行测试
     
    10.  单元测试
    定义
    又称模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作;可以从程序的内部结构出发设计测试用例,多个模块测试可以平行地独立进行测试
    目的
    发现模块内部可能存在的各种差错
    内容
    模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
    步骤
    利用设计文档设计测试用例;创建被测模块的桩模块或驱动模块;利用被测试模块、驱动模块和桩模块来建立测试环境,进行测试
     
     
    11.集成测试
    定义
    又称组装测试或联合测试,在单元测试基础上,将所有模块按概要设计和详细设计进行组装
    目的
    发现模块连接中的接口可能存在的各种差错
    内容
    穿越模块之间的数据是否会丢失;一个模块组装后是否会对另一模块或其他模块存在影响;各个子功能组装在一起是否会达到预期的父功能;全局数据结构是否有问题;单个模块的错误累积起来是否会放在
    组装方法
    一次性组装方式,非增殖式方式也叫整体拼装,对模块分别测试然后将所有模块组装;第二种增殖式组装方式,可以是自顶向下或自底向上
    完成标志
    成功地执行了测试计划中规定的所有测试用例;修正了所发现的错误;测试结果通过专门小组的评审
     
    12.确认测试
    目的
    验证软件的功能和性能及其他特性是否与用户的要求一致
    测试内容
    有效性测试 运行黑盒测试方法验证所测软件是否满足需求规格说明书列出的需求;所有文档正确且便于使用;软件可移植性、易用性、兼容性进行测试;软件配置复查 保证软件配置的所有成分都齐全
     
    13.系统测试
    目的
    验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试
    测试内容
    在真实或模拟系统运行环境下,检查完整的程序系统能否和系统(硬件设备、网络、系统软件)正确配置、连接,满足用户需求
     
    14.验收测试
    测试内容:根据任务书或合迥、供需双方约定的验收依据文档进行对整个系统的测试与评审,确认是否接收或拒绝系统;
    15.开发方测试
    通常也叫‘验收测试’或‘a测试’,在软件开发环境中,开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求
    16.用户测试
    在用户的应用环境下,用户检测与核实软件实现是否符合自己预期的要求。B测试通常被认为是用户测试,把软件有计划地免费地分发到目标市场,让用户大量使用、评价检查软件
    17.第三方测试
    由第三方测试机构来进行的测试,也称独立测试
    18.动态测试
    通过人工或使用工具运行程序进行检查,分析程序的执行状态和程序的外部表现
    19.静态测试
       不运行程序,能过人工对程序和文档进行分析与检查,包括走查、符号执行、需求确认等
    20.白盒测试
    通过对程序内部结构的分析、检测来寻找问题,检查程序的结构及路径是否正确,检查程序的内部动作是否按照设计说明的规定正常进行
    21.黑盒测试
    又称功能测试,通过运行程序发现其缺陷和错误,在程序界面处进行测试
    22.灰盒测试
    介于白盒和黑盒测试之间,关注输出对于输入的正确性,也关注程序的内部结构,但没有白盒测试那样详细、完整
    23.测试分类
    开发过程
    单元、集成、确认、系统、验证
    实施组织
    开发方、用户、第三方
    测试技术
    白盒、黑盒、灰盒或静态、动态
     
    24.软件问题分类
    软件错误、软件缺陷、软件故障、软件失效
    软件错误:在软件生存周期内的不希望或不可接受的人为错误
    软件缺陷:存在于软件(文件、程序、数据)之中的不希望或不可接受的偏差
    软件故障:软件运行过程中出现的一种不希望或不可接受的内部状态。
    软件失效:软件运行时产生的一种不希望或不可接受的外部行为
    25GB/T16260.1 产品质量-质量模型
    质量模型:代表软件质量属性的总体
    软件质量特性与度量:质量特性和子特性、外部度量、内部度量
    外部、内部质量的质量模型:质量属性包括:功能性、可靠性、易用性、效率、维护性和可移植性
    26GB/T18905.1 软件工程 产品评价-概述
    概述了软件产品评价的过程,提供了评价需求和指南
    27GB/T18905.5 软件工程 产品评价-评价者用的过程
       
    28.软件测试的国内外现状
    国外:软件测试已成为一个独立的产业,在软件公司占有重要的地位,软件测试理论研究蓬勃发展,软件测试市场繁荣,开发了大量的测试工具;
    国内:软件测试成为一个新兴产业,测试技术贫乏,从业人员少,测试服务没有足够规模;著名的软件公司已成立了专业的测试队伍,国家在职业资格中新增了‘软件评测师’,企业资集认证时软件测试能务成为重要指标,软件产品增加了登记测试,成立第三方测试机构,软件测试成为一个独立课程
    29.软件评测发展趋势
        测试工作将进一步前移
    软件架构师、开发工程师、QA人员、测试工程题将进行更新的融合
    测试行业将得到充分的尊重
    设置独立的测试部门将得到越来越多公司的软件公司的共识
    测试外包服务将快速增长
    30.测试过程的特性与要求
    软件测试过程
    是一抽象的、遵循GB/T18905《评价者用的过程》中定义软件评价过程的模型
    评价过程的特性
    可重复性:同一评价者按同一评价规格说明对同一产品进行重复地评价,应产生同一种可接受的结果
    可再现性:同不同评价者同一评价规格说明对同一产品进行评价,应产生同一种可接受的结果
    公正性:评价应不偏向任何特殊的结果
    客观性:评价结果应是客观事实
    评价过程的要求
    一般要求
    组织和质量体系:评价者应立足于一个组织;评价组织为保证质量,可以建立质量体系
    请求者职责:对软件产品确立必要的合法权利;为标识和描述产品提供必要的信息;阐述初步评价需求,与评价者协商确定实际需求,需求遵守相关的法规和标准;阐述对评价提交的信息的保密性需求;必要时在开发者和评价者之间起中介作用;必要时向评价者提供计算机和其他设备
    评价者职责:检查请求者对软件产品是否有充分合法的权利;按规定对请求者提供保密承诺;提供有资格的人员,以便实施评价;提供评价工具和技术;按照评价需求实施测试;保证评价过程中的所有记录 ;保证及时向请求者提交评价报告
    活动要求
    确立软件评价需求
    编制评价规格说明
    制定评价计划
    评价执行
    作评价结论
     
    31.软件测试与配置管理
    配置管理活动
    配置项标识:标识测试样品、标准、工具、文档报告等配置项的名称和类型、标识各配置项的所有者及储存位置
    配置项控制(变更控制):规定测试基线、基线创立时间、变更控制委员会人员组成、职能、确定变更请求的处理程序和终止条件、变更过程中测试人员变更的职能等
    配置状态报告:定义报告形式、内容和提交方式、确认过程记录和跟踪问题报告、更改请求、更改次序;确定测试报告提交的时间与方式;
    配置审计:确定审计执行人员和执行时机;确定审计的内容与方式;确定发现问题的处理方法
     
    32.测试的组织与人员  
    测试的组织
    组织结构设计因素:垂直还是缓、市场还是产品、集中还是分散、分级还是分散、专业人员还是工作人员、功能还是项目
    独立测试组织:没有此组织,建立系统不会理想
    集中管理的测试组织:成立独立部门,集中管理
    选择测试组织结构方案的准则:提供软件测试的快速决策能力;利于合作;能够独立运作并具有精干的人员配置;有利于协调测试与质量管理的关系;有利于满足软件测试过程管理要求;有利于为测试技术提供专有技校;充分利用现有测试资源;对测试者的职业道德产生积极影响
    测试的人员
    测试组织管理者
    具有理解与评价软件测试政策、标准、过程、工具、培训和度量的能力;具有领导能力;具有吸引并留住杰出测试专业人才的能力;具有沟通、支持和控制能力;具有测试时间、质量和成本控制能力
    测试人员
    应具有的能力
    一般的表达、交流、协调、质量意识、软件工程能力;测试技能和方法;测试规划能力;测试执行能力;测试分析、报告和改进能力;
    职业发展:
    1~2年测试技能;3~4年测试过程;4~5年测试组织工作;5~6年技术管理;6~12年测试管理
    人员培训
    按培训内容分类:测试基础知识和技能培训;测试设计培训、测试工具培训;测试对象软件产品培训;测试过程培训;测试管理培训
     
    33.软件测试风险分析
    软件测试风险:是软件测试过程出现的或潜在的问题,造成的原因主要是测试计划的不充分、测试方法有误或测试过程的偏离,造成测试的补充以及结果不准确
    软件测试风险主要是对测试计划执行的风险分析与制定要采取应急措施;重点在措施
    测试计划的风险:一般指测试进度滞后或出现非计划事件;常见的有交付日期、测试需求、测试范围、测试资源、人员的能力、测试预算、测试环境、测试支持、测试工具;
    34.软件测试的成本管理
    测试实施成本
    测试准备成本、测试执行成本、测试结束成本
    低测试实施成本
    测试准备环境尽可能使用软件和测试环境配置自动化;测试实施尽可能采用自动化测试工具(测试用例自动化执行),人工测试最好请初级技术人员,不使用测试工程师;测试结束编制测试报告测试结果与预期结果比较采用自动化方法(测试文档编制模板化)
    质量成本要素
    一致性成本(用于测试实施成本)、非一致性成本(由出现的问题和故障引起)
    质量成本=一致性成本+非一致性成本
    缺陷探测率DD P
    =Bugs(tester)/ (Bugs(tester)+ Bugs(customer)) 衡量测试投资回报的一个重要指标注:第116页计算题
     
    35.文档测试的范围
    用户文档
    用户手册、操作手册、维护修改建议
    开发文档
    需求说明书、概要设计、数据库设计、详细设计、可行性研究报告
    管理文档
    项目开发计划、测试计划、测试报告、开发进度月报、开发总结报告
     
    36.用户文档的内容
    包装上的文字及图案;宣传材料、广告及其他插页;授权/注册登记表;最终用户许可协议;标签和不干胶条;安装和设置指导;用户手册;联机帮助;指南、向导;样例、示例和模板;错误提示信息;
    37.用户文档测试的要点
    明确读者群:根据读者群(如初级、中级、高级用户)的不同来检查文档内容,保证用户能够看得懂、能理解
    术语:文档中术语的描述要适合定位的读者群,用法一致,标准定义与业界规范相吻合
    文档内容的正确性:要保证所有信息是真实正确的
    文档内容的完整性:要完全根据提示逐步操作,检查是否存在遗漏的地方
    文档与程序的一致性:按照文档操作后,检查软件返回的结果与文档描述是否一致
    文档的易用性:检查是否便于用户查找相应的内容
    图表与界面截图:检查所有图表与界面截图与发布的程序版本一致
    样例和示例:检查所有的样例和示例能够正确完成;
    语言:中文文档保证无错别字和二义性
    印刷与包装:印刷质量,包装质量
    38.用户手册的测试
    准确的按照手册的描述使用程序;尝试每一条建议;检查每条陈述;查找容易误导用户的内容;
    39.在线帮助的测试
    内容的准确性;帮助功能的可靠性;每一条索引和主题列表要逐条检查,是否能够由索引进入主题;帮助系统中的每一个超级链接;主题是否全部能够在索引中找到;帮助系统的风格应简洁;
    40.功能易用性测试
    业务符合性
    程序实现的业务逻辑与实际业务逻辑是否一致;
    功能定制性
    对软件功能应能够灵活定制
    业务模块集成度
    对于存在紧密关系的模块,是否方便功能转换,从一个功能进入到别一个功能
    数据共享能力
    对于多处使用的数据应可以一次输入多处使用,减少用户重复工作
    约束性
    对于流程性强的操作,应能够限制操作顺序;对非法信息应不允许进行系统
    交互性
    对于用户的每一次操作,应能够给出提示或回应,使用户清晰的看到系统的运行状态
    错误提示
    对于关键操作完成后或删除数据之前给出明确的提示信息;
     
    41.用户界面测试:界面整体、界面元素测试
    界面整体
    规范性测试:符合现行标准和规范
    合理性测试:界面与软件功能是否相融洽,界面的布局是否协调
    一致性测试:使用的控件、标签风格、错误提示信息、操作方法是否一致
    界面定制性测试:界面元素的可定制性;工具栏的可定制性;统计检索的可定制性;报表的可定制性
    界面元素
    窗口测试:大小、显示、窗口大小改变、多个窗口同时打开、支持操作方法等
    菜单测试:是否符合需求;措辞是否准确;顺序是否合理;图形布局是否一致
    图标测试:是否符合表达习惯;不同的目标是否采用不同的图标;图标尺寸是否合适;建议与对应功能相似;图标上是否有标注
    鼠标测试:交互环境中是否可以识别鼠标操作;多次点击是否识别;无规则点击是否会产生无法预料的结果;右键弹出菜单是否正确;
    文字测试:界面文字是否正确,准确,无二义性;
     
    42.硬件兼容性测试
    目的
    确认软件系统对于服务器端、客户端及网络所需的环境是否正确、合理
    测试内容
    最低配置是否能满足系统运行的需要;在推荐配置下系统的响应是否迅速;考察软件对运行硬件环境有无特殊说明;软件系统能否运行在多种硬件配置环境下
    与整机兼容性
    确认要求的最低配置和推荐配置的合理性和正确性;主要指标:机型的要求;CPU;内存;硬盘
    与板卡及配件兼容性
    独立板卡;主板芯片组;驱动程序中的自由软件
    与打印机的兼容性
    对不同厂商、不同型号的打印机进行以下测试:安装;打印测试页;调整纸张大小;选择分辨率;调整打印方向;逐页、多份打印;双面打印、网络打印
    其他
    红外线鼠标、键盘、扫描仪、视频软件,刻录软件的兼容性
     
    43.软件兼容性
    与操作系统的兼容性
    确认软件系统是否与多种类型的操作系统兼容,包括安装、关键流程的检查;操作系统包括Windows平台、Linux平台、UNIX平台;Macintosh 图形专用软件
    与数据库的兼容性
    确认软件系统在不同数据库的可移植性、互操作性,对完整性、应用系统测试;性能测试;数据库包括SQL;ODBC;JDBC;ADO;OLE DB;JDO
    与中间件的兼容性
    指对不同版本、不同补丁包的兼容性进行测试,检查应用程序是否能够正确运行,性能的变化;
    与浏览器的兼容性
    创建一个兼容性矩阵,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性;如Applets,Javascrīpt,ActiveX,VBscrīpt
    与其他软件的兼容性
    与支持软件(财务软件导出Excel)的兼容性测试;与其他同类软件的兼容性(与其他同类软件同时在机器中使用);与其他非同类软件的兼容性
     
    44.数据兼容性测试
    不同数据格式兼容性
    确认软件之间能否正确地交互和共享信息,不同格式的信息是否兼容;包括系统与其他系统复制粘贴文字是否正确;旧版本信息在新版本是否能打开;新版本文件在旧系统中是否能打开;同类软件是否可以进行数据交换
    XML符合性
    XML能够使不同来源的结构化的数据较容易地结合在一起,提供一个描述数据和交换数据的有效手段;测试步骤:在测试工具中建立标准模板;用被测软件按要求导出数据;将导出的数据与标准模板进行对比匹配测试;输出测试结果;
     
    45.平台化软件兼容性测试
    平台化软件概述
    用来构建与支撑应用软件的独立软件系统;基本要素包括支撑环境(应用系统开发与运行的基本条件)和开发体系(开发与维护管理应用软件的工具与方法);分类包括技术支撑型平台和应用实现平台
    平台化软件优点
    应用的广泛性(各行业);良好的开发性(保证接口的统一);具有灵活性和扩展性;快捷的适应性
    平台化软件兼容性
    测试内容:跨硬件平台能力(不同规模硬件平台上式);跨操作系统能力;支持多种数据库系统;客户端兼容性测试;数据兼容性测试
     
    46.新旧系统数据迁移测试
    新旧系统数据迁移
    数据迁移:新旧系统进行切换时,将历史数据进行清理、转换,并装载到新系统的过程;
    数据迁移的实现
    数据迁移的准备、数据迁移的实施、数据迁移后的校验
    数据迁移的测试
    对旧系统到新系统、新系统到旧系统进行迁移测试;生成备份测试迁移后的数据完整可靠性;
     
    47.安全测试-测试内容
    用户认证机制
    用户认证机制分为数字证书(检验用户身份的电子文件)、智能卡、双重认证、安全电子交易协议(SET电子商务中安全电子交易的国际标准);测试时有必要对用户认证机制进行全面测试,评价认证机制的合理性
    加密机制
    对加密、解密机制进行测试,验证使用是否合理,强度是否满足当前需求;保护数据安全的重要手段
    安全防护策略
    安全防护策略包括安全日志、入侵检测、隔离防护、漏洞扫描,是系统对抗攻击的主要手段
    数据备份与恢复手段
    是一种数据安全策略,需要对备份和恢复的效果进行测试,保证实际数据的安全性
    防病毒系统
    基本的防病毒技术:集中式管理、分布式杀毒(以策略为中心、以服务器为中心);数据库技术、LDAP技术的应用;多引擎支持;不同操作系统的防护;远程安装或分发安装;
    测试时对网络防病毒软件的选购、部署方式、策略定义进行评估和测试
     
    48.安全测试-测试策略
    安全系统
    安全系统防护体系
    由实体安全、平台安全、数据安全、通信安全、应用安全、运行安全、管理安全七层次,因此安全性测试测策针对7层进行测试和评估
    基本安全防护系统
    一般采用防火墙、入侵检测、漏洞扫描、安全审计、病毒防治、Web信息防篡改等基础安全技计,来保障应用系统的安全;测试时从以上方面分别进行测试
    证书业务服务系统
    包括证书认证及证书审核注册,需验证功能和性能;测试采用过程是否符合标准;证书类型是否正确;证书格式、申请、审核、下载功能是否正确;并发性、扩展性、备份
    证书查询验证服务系统
    验证功能和性能;测试查询、管理、证书信息发布、下载、更新功能;并发性、扩展性
    密钥管理系统
    验证功能和性能;测试密钥生成、发送存储、查询等基本功能,安全管理功能、系统管理功能;并发压力、最大量密钥系统的基本功能、密钥的保存期、备份;
    密码服务系统
    验证功能和性能;测试加解密功能、多密码算法支持、增加功能;长度、系统速度、扩展能力
    可信授权服务系统
    集中式授权服务 验证是否具有用户管理、审核管理、资源管理、角色管理等主要功能;分布式授权服务 验证其是否有资源访问的签名授权、授权管理等功能;同时还要对系统进行并发压力测试
    可信时间戳服务系统
    验证功能和性能;测试时间来源是否正确、保存功能、签发功能;时间精度、验证时间戳请求并发性、可扩展性
    网络信任域系统
    :由通过安全审查的网络可信接入设备和网络信任域管理系统组成;验证功能和性能;接入认证交换机、限制、管理、管理配置功能;认证时间、认证接入请求数并发性、接口
    故障恢复与容灾备份
    故障恢复、数据备份、容灾备份
     
     
     
     
    49.安全性测试方法
    功能验证
    采用黑盒测试方法,对涉及安全的软件功能进行测试
    漏洞扫描
    采用主机或系统漏洞扫描器自动检测远程或本机安全性弱点
    模拟攻击试验
    采用冒充、重演、消息篡改、服务拒绝、内部攻击、外部攻击、陷阱门、特洛伊木马方法进行测试
    侦听技术
    对数据进行截取分析的过程,主要用于对网络加密的验证
     
    50.软件产品安全测试
    侧重于用户对数据或业务功能的访问控制,数据存储和数据通信的远程安全控制
    用户管理和访问控制
    用户权限控制
    测试用户权限分配合理性、用户名、用户密码的各项限制
    操作系统安全性测试
    测试是否关闭和卸载了不必要的服务和程序、是否存在不必要的账户、权限设置合理性
    数据库权限的测试
    测试用户的权限,用于存储用户和口令的表信息尽量加密,程序中是否存在默认的用户名和密码
    通信加密
    测试软件系统通信息加密情况,采用验证和侦听技术完成,
    安全日志测试
    测试日志的完整性、正确性,是否提供安全日志的智能统计分析能力,
     
    51.网络系统全生命周期测试策略
    建设生命周期
    生命周期测试策略
    规划设计阶段
    利用仿真技术测试设计方案、网络设备评估,为网络选型提供依据;
    实施阶段
    进行网络质量测试,如吞吐量、包转发率、丢包率,保证系统的可用性和稳定性,为网络应用系统开发提供基准值
    与应用系统集成阶段
    完成应用系统的功能和性能测试,保证运行基本稳定后,将程序应用到网络上进行网络级测试,测试并发用户访问能力、响应时间、应用对网络资源占用情况,保证应用系统在网络平台上的性能
     
    52.网络测试-网络仿真技术
    定义
    是一种通过建立网络设备、链路和协议模型,并模拟网络流量的传输,从而获取网络设计或优化所需要的网络性能数据的仿真技术,也称为网络模拟技术或网络预测技术
    原理
    在计算机构造虚拟的环境反映现实的网络环境,利用数据建模和统计分析的方法模拟网络行为,从而获取特定的网络特性参数;采用基于包的建模机制来模拟实际物理网络中包的流动,包括处理、组包、拆包过程
    应用
    在网络规划中应用
    为网络规划、设计提供可靠的定量依据;可以验证实际方案或比较多个方案
    在企业网络管理和优化中应用
    作为网络辅助管理工具、可以对企业业务网络通信情况进行统计找出瓶颈、可以查出业务配置的错误、可以模拟故障了解系统的处理情况、对新增业务进行性能测试、模拟访问量预测网络的承受负载
    在网络研发中应用
    构建接近于真实网络环境和业务,可以有效的模拟新协议的各种行为细节,作出公正的评判新协议的性能;对于大型通信设备制造商,可以作为其网络设备、协议以及应用开发的工具
    网络预测
    设置服务水平、完成日常网络容量规划、离线测试网络、网络失效和容量极限分析
    软件
    OPNET (OPNET公司)、NS
     
    53.网络性能测试
    指标
    吞吐量:指被测试设备或被测试系统在不丢包的情况下,能够达到的最大包转发速率
    丢包率:高负载状态下由于缺少资源而未转发的包的比例
    延时:系统在有负载的情况下转发数据包所需的时间
    背靠背性能:通过以最大帧速率发送突发传输流,并测量无包丢失时的最大突发长度来测试缓冲区容量
    TCP/IP 4~7层负载匀衡:建立连接数、会话连接数、连接数据
    IP语音网络测试:测试语音、数据流包的丢失、单向延时,延时抖动
    宽带XDSL网络性测试:帧测试、端到端IP测试、信元测试、PPP容量测试、ATM完整性测试
    VPN网络测试:最大隧道创建数量、包丢失、延时、响应时间
    路由测试:协议、路由压力性能
    类型
    可靠性测试、可接受性测试、瓶颈测试、容量规划测试、升级测试、功能/特性测试、吞吐量测试、响应时间测试、衰减测试、配置规模测试、网络设备评估测试
    对象
    网络平台:网络操作系统、文件服务器、工作站
    应用层:应用程序的客户端、桌面操作系统和数据软件
    子系统:路由器、集线器、交换机、网桥
    全局网络路径
    方法
    网络设备:(1)放入仿真网络环境中通过分析行为进行测试(2)使用的网络测试专用设备
    网络布线:使用工具,如网络电缆测试仪、令牌环网测试仪、以太网测试仪、光缆测试仪、企业级网络测试仪
    网络协议:专用工具
    网络性能:七层网络结构分析模型法、网络连接结构的分析法,客户端、网络链路、服务器端三个模块
    标准
    RFC;YD/T
    工具
    物理线缆测试仪、网络运行模拟工具、协议分析仪、专用网络测试设备
     
    54.网络测试-网络应用测试
    网络应用监控
    概述
    监控功能主要能过网络探测器设备安装在某一网段上采集数据
    目标
    及时准确了解网络状况,定位问题的根源
    工具
    Network Vantage:全面应用监控和报告产品,帮助发现和优化网络上的应用性能;
    Sniffer:捕捉流量、监控网络活动、分析错误信息,定位问题
    网络故障分析
    步骤
    清楚故障现象;收集需要的用于帮助隔离可能故障原因的信息;根据收集到的信息考虑故障原因;根据分析的故障原因,建立一个诊断计划;执行诊断计划;改变参数确认结果
    软件问题诊断
    建立在网络应用分析的基础上,分析关键因素:会话信息(往返行程和流量信息)、包信息、响应时间信息、负载信息、高峰信息、线程信息、响应时间预测、带宽模拟  注意421页故障定位举例
    硬件问题诊断
    物理层:连接方式、连接电缆、设备配置是否正确  使用show interface命令;
    数据链路层:路由器的配置、连接端口、接口与通信设备封装;通过查看路由器配置检查封装,show命令
    网络层:沿源到目标的路径,查看路由表,同时检查路由器接口的IP地址
     
    55Web应用的测试策略
    按系统架构分类
    客户端的测试、服务器端的测试、网络上的测试
    按职能分类
    应用功能的测试、Web应用服务的测试、安全系统的测试、数据库服务的测试
    按软件质量特性分类
    功能测试、性能测试、兼容性测试、安全性测试、易用性测试
    按开发阶段分类
    设计测试、开发测试、应用测试
     
    56Web应用设计测试
    设计测试的主要内容是对设计从全面性、适合性、标准性等方面进行检查
    总体架构设计测试
    采用瘦客户端或胖客户端是否合需求:瘦客户端 客户端只作少量处理、业务逻辑规则在服务器端执行;胖客户端 客户端即显示用户页面,又执行部分业务逻辑;验证设计中采用的模式是否适合需求
    确定Web架构的组成部分是否满足需求:验证各种服务器、中间件形成的架构是否满足需求,各种搭配是否兼容
    服务器的配置及分布是否满足需求:验证服务器的配置和分布是否满足用户的功能、性能、成本等需求
    客户端设计测试
    功能设置的测试:验证Web应用中各项功能设置是否满足需求,应主要实现信息服务、办公自动化、Internet支持
    信息组织结构设计的测试:信息组织结构设计模式包括线性结构、分层结构、非线性结构;验证设计模式是否符合用户需求,能否使用户直观、快捷的浏览到所需信息
    页面设计的测试:页面显示一致性、友好性、直观的导航系统、不同类型浏览器、布局
    服务器端设计测试
    容量规划测试:将所要求的延迟和带宽与该体系结构中每一环节的额定容量作一下比较,每个组成部分都必须满足需求;估算点击率是否满足需求;估算延迟和流量是否满足需求;估算Web应用系统所需服务器的资源消耗
    安全系统设计测试:对常识性安全策略、加密技术、防火墙、防毒体系进行测试
    数据库设计测试
     
    57Web应用开发测试
    对Web应用的源代码和组件进行测试,保证代码的正确性、组件的功能正常
    代码测试
    测试源代码规则、链接测试、框架测试(窗口大小改变信息改变情况)、表格测试(大小调整情况)、图形测试
    组件测试
    进行表单测试、Cookies测试、脚本测试、CGI(服务器端技术)、ASP测试(代码、不同浏览器)、ActiveX控件测试(客户端技术)
    使用Junit进行单元测试
     
    58Web应用运行测试
    与其他系统比较
    相同:测试内容、测试方法、测试手段基本相同;
    不同:测试重点不同;采用的工具不同
    功能测试
    可以采有黑盒测试方法进行功能测试,注意客户端的选择测试、客户端浏览器的配置、客户分辨率显示、内容测试
    自动化技术:Web应用链接质量保证技术、Web应用功能测试技术
    易用性测试
    界面测试:页面中各元素布局的协调性、不同页面风格的统一性、用户在界面中操作的便利性、界面动态操作测试
    辅助功能测试:用户是否能够较快的找到相应的使用说明、导航、站点地图、帮助信息功能
    图形测试:主要查看所有图形信息是否有明确的用途、大小、质量、颜色、风格
    负载压力测试
    负载测试测量Web系统在某一负载级别上的性能;压力测试测试系统的限制和故障恢复能力
    测试步骤:确定交易执行响应时间;做计最大并发用户数;模拟用户请求,逐步加压;负载没有达到应优化
    客户端配置与兼容性测试
    浏览器的配置测试:缓存设置、cookies设置、显示设置、安全设置各项不同的设置对Web功能的影响程序,影响的配置在功能说明书中是否进行描述
    平台兼容性测试:不同操作系统兼容性测试
    浏览器兼容性测试:与平台兼容性测试结合,测试不同操作系统下不同浏览器类型的应用
    安全性测试
    安全体系测试:测试内容包括部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、参数操作、异常管理、审核和日志记录
    应用级安全测试:测试注册与登录、在线超时、操作留痕、备份与恢复
    传输级安全测试:测试经客户端传送到服务器端可能存在的安全漏洞以及服务器防范非法访问的能力
     
    59.负载压力测试基本概念
    负载压力
    指系统在某种指定软件、硬件以及网络环境下承受的流量,如并发的用户数、持续运行时间、数据量等。其中并发的用户数是负载压力的重要体现。
    负载压力测试
    指在一定测试约束条件下,测试系统所能承受的并发用户量、运行时间、数据量,以确定系统所能承受的最大负载压力,负载压力测试是性能测试的重要组成部分
    性能测试
    用来保证产品发布后系统的性能能够满足用户需求,包括两种测试策略:性能评测、性能调优
    负载测试
    通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试
    压力测试
    通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下,系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试压力测试是为了发现在什么情况下系统的性能会变得不可接受
    并发性能测试
    并发性能测试的过程,是一个负载测试和压力测试的过程;
    逐渐增加并发用户数负载,直到系统的瓶颈或者不能接收的性能点,能过综合分析交易执行指标,资源监控指标来确定系统并发性能的过程;
    并发性能测试是负载压力测试中的重要内容;
    并发性能测试包括:应用在客户端性能的测试、应用在网络上性能的测试、应用在服务器端上性能的测试三个方面
    疲劳强度测试
    采用系统稳定运行情况下所能支持的最大并发用户数,或者日常运行用户数,持续执行一段时间业务,保证达到系统疲劳强度需求的业务量,通过综合分析交易执行指标和资源监控指标,来确定系统处理最大工作量强度性能的过程
    大数据量测试
    l          大数据量测试包括独立的数据量测试和综合数据量测试两类
    l          独立的数据量测试:指针对某些系统存储、传输、统计、查询等业务进行的大数据量测试
    l          综合数据量:指和压力性能测试、负载性能测试、疲劳性能测试相结合的综合测试
     
    60.负载压力测试解决方案
    一.  并发性能测试
    并发压力过程与测试定位
    (1)         并发负载压力的实施:客户端——应用客户端的测试
    (2)         负载压力的传输介质:网络——应用网络上的测试
    (3)         压力到达:各类服务器——应用服务器端的测试
    二. 并发性能测试-应用服务端测试
    1. 目的:模拟大量并发用户执行不同业务操作,达到实施负载压力的目的
    1.   测试环境
    (1)         测试工具主控台(1个):负责管理各个测试工具代理,收集各类测试数据
    (2)         负载生成器(多个):即代理,模拟虚拟用户
    (3)         服务器
    2.   测试过程
    (1)         创建方案:方案信息包括    虚拟用户组(Vuser)
                                      Vuser将运行的测试脚本
                                      用于运行脚本的负载生成器
    (2)         定义测试目标:  虚拟用户数:测试应用程序可以同时运行多秒个Vuser
    每秒点击次数
    每分钟页面数    测试服务器稳定性
    每秒事务数
    事务响应时间:测试在期望的事务响应时间内可以同时运行多少个Vuser,在脚本中指定要测试的事务名称以及Vuser的范围
    (3)         制定方案执行计划:制定方案执行的时间安排,如开始时间、执行持续时间、启动/停止多少个Vuser数量等。注:如果脚本中包含有集合点,方案将不会按计划运行;集合点:在方案中指定Vuser,各Vuser执行的脚本,运行的时间,启动方案后,并不能保证所有的Vuser能够达到同步操作的效果,设置集合点,Vuser执行到集合点时,会被Controller滞留在集合点,等待所有Vuser全部到达后,执行某一项指定操作,从而达到同步并发的效果
    3.   影响服务器的负载级别
    (1)         选择在方案运行过程中活动的集合点
    (2)         选择加入每个集合的Vuser数
    4.   控制服务器上的负载峰值
    (1)         创建Vuser脚本,插入必要的集合点(采用录制功能将操作过程录制形成脚本,插入某一项操作的集合点)
    (2)         创建方案(建立Vuser组,指定每组的user及数量、运行的脚本等信息)
    (3)         向方案中添加Vuser组,搜索设置的集合点,并将集合点名称添加到‘集合信息’列表中
    (4)         设置虚拟用户负载的级别
    (5)         通过选择加入到方案中的集合点及加入每个集合的Vuser数,可以确定负载的精确级别
    (6)         设置集合的属性
    (7)         对于每一个集合,都可以设置集合策略
    (8)         运行方案(在此之前,可以同时配置负载生成器和Vuser行为)
    5.   客户端交易处理性能指标
    (1)         并发用户数指标
    (2)         交易处理指标:平均事务响应时间、每秒事务数、每秒事务总数、事条摘要、事务性能摘要、事务响应时间(负载下、百分比、分布)
    (3)         Web请求指标:每秒点击次数、吞吐量、吞吐量摘要、HTTP状态代码摘要、每秒HTTP响应数、每秒下载页面数、每秒重试次数,重试次数摘要、连接数、每秒连接数、每秒SSL连接数
    (4)         Web页面组件指标:激活网页细分、页面组件细分(随时间变化)、页面下载时间细分(随时间变化)、第一次缓冲时间细分(随时间变化)、已下载组件大小
    二.并发性能测试-应用网络上性能测试
        应用网络上性能测试包括:应用网络故障分析和网络应用性能监控
    1. 应用网络故障分析
    (1)         测试目标:显示网络带宽,延迟、负载和TCP端口的变化是如何影响用户的响应时间的
    (2)         作用
    l        优化性能
    l        预测系统响应时间
    l        确定网络带宽需求
    l        定位应用程序和网络故障
    (3)         网络故障分析工具
    l        作用:      使应用跨越多个网段的活动过程变得清晰
                    提供有关应用效率的统计数据
                    模拟用户在不同网络配置环境下的响应时间,决定应用投产的网络环境
    l        工作原理:  多个捕捉点:Agent,被动监听数据包来实现实时数据采集
                    一个分析:Agent Manager进行对所跟踪的数据的分析
    l        获取信息:  监控不同探针之间的连接状态,传输的字节数以及通信往返行程次数
    会话性能概要,监控哪段网络延迟大,带宽对网络双向性能的影响,节点用于处理和用于传输的时间
    服务器与客户端之间帧传输情况统计,监控到与应用相关的帧的分布,对每一个帧可以与相关的数据包关联,并且可以对帧解码
    服务器与客户端之间传送包信息统计,监控包的详细信息,并且可以将包与帧及线程相关联
    线程信息统计,监控线程的内容和生存周期,以及线程与数据包的关系
    负载的高峰时刻,负载的平均值,高峰时刻可以与相关的线程、数据包、帧相关联
    故障错误总结:应用级错误、TCP错误、IP错误、其他错误
       
    2. 网络应用性能监控指标
    (1)         测试目标:在系统试运行之后,需要及时准确地了解网络上正在发生什么事;什么应用在运行,如何运行;多少PC正在访问LAN或WAN;哪些应用程序导致系统瓶颈或资源竞争
    (2)         作用
    l        分析关键应用程序的性能
    l        定位问题的根源是在客户端、服务器、应用程序还是网络
    l        哪些应用程序占用大量带宽
    l        哪些用户产生了大量的网络流量
    (3)         网络应用性能监控工具
    l        组成:      探针:采集与存储数据,并根据应用对数据进行分类,设置的原则是根据网络组成和监控要求
    探针管理器:管理配置探针,设定数据采集与上传时间,合并收集的数据;
    时间服务器:对探针进行时针同步
    交互界面:数据展示平台
    l        监控信息:  应用监视:
    关键特性:客户和服务器通信量,应用响应时间和资源应用的业务水平等
    按会话统计传输负载:测试应用和会话级响应时间,以及自动为通过网络中每一个联网设备的每一个应用程序生成负载图
    应用、会话级、事务响应时间
    延迟在何处被引入网络,瓶颈在哪里
    趋势分析
     
     
    三.并发性能测试-应用服务器端的测试
    (一) 概述
    1. 对应用服务器端的测试主要包括三方面:操作系统、数据库和中间件的监控
    2. 监控手段:可以采用工具自动监控,也可以使用操作系统、数据库、中间件本身提供的监控工具
    3. 利用工具监控的优点
    (1)         减少故障诊断和分析时间 
    (2)         减少手工定位的时间和避免误诊
    (3)         在问题发生前定位故障
    (4)         验证可达到的性能水平和服务水平协议
    (5)         持续的服务器、数据库和应用性能和可用性监控
    (6)         故障诊断和恢复:自动报警、故障恢复程序、故障恢复信息
    (7)         服务器、应用可用性和性能报告
    (二) 操作系统监控
    操作系统的监控涉及后台重要服务器的操作系统监控,对于主流的操作系统,主要关注:内存、CPU、硬盘
    监控建议:
    1.磁盘管理
    (1)         采集物理读/写和逻辑读/写信息
    (2)         收集操作系统和其他平台上的磁盘忙信息
    (3)         监控I/O
    2.文件系统
    (1)         显示每个文件系统的使用率,检测文件系统空闲空间的大小
    (2)         剪裁文件系统-删除指定的CORE(核心)文件和其他文件
    (3)         显示文件系统的mount on device、type、size
    (4)         可以监控特殊的文件系统,如NFS(网络文件系统),CD-ROM
    (5)         检测特定文件的存在及超出特定期限的文件存在
    3.内存
    (1)         显示可用的内存数量
    (2)         决定当前的内存短缺量
    (3)         帮助分析内存问题
    (4)         显示内存的实存、所有虚存和kernel(核心内存)的状态等信息
    4.CPU
    (1)         记录CPU的使用率
    (2)         监测CPU参数,包括CPU idle(空闲),CPU waits,CPU system usage,CPU user usage,run queue length(运行队列长度)
    (3)         显示CPU context(上下关系) switches 的总数
    (4)         显示CPU处理系统任务和完成用户任务的时间比例
    5.操作系统举例
    (1)         UNIX操作系统
    (2)         Windows操作系统
    (三) 数据库监控
    1.共性的指标
    (1)         监控数据库系统中关键的资源
    (2)         监测读写页面的使用情况
    (3)         监控超出共享内存缓冲区的操作数
    (4)         监测上一轮询期间作业等待缓冲区的时间
    (5)         跟踪共享内存中物理日志和逻辑日志的缓冲区的使用率
    (6)         监控磁盘的数据块使用情况以及被频繁读写的热点区域
    (7)         监控用户事务或者表空间监控事务日志
    (8)         监控数据库锁资源
    (9)         监测关键业务的数据表的表空间增长
    (10)      监控SQL执行情况
    2.监控建议-针对监控内存缓冲区、会话及磁盘等方面
    (1)         监控超出共享内存缓冲区的操作:可以调整缓冲区大小,更好的支持系统运行
    (2)         扩展的会话/用户检查以及参数控制:发现不合理顺序扫描操作,从而分配附加的资源,修改应用程序,降低对系统资源的要求
    (3)         磁盘:监控数据块的使用情况以及被频繁读写的热点区域,可以平衡数据量的存储分配及I/O分配
    3.数据库举例
    (1)         Oracle:内存统计、SQL分析、会话统计、事件统计
    (2)         Sysbase:
    (3)         DB2:
    (4)         SQL Server:
     
    (四) 中间件监控
    1.中间件分类
    (1)         Web服务器: Apache
    (2)         Web应用服务器: Websphere、WebLogic
    (3)         应用服务器: tuxedo
    2.中间件举例
    (1)         TUXEDO:
    (2)         WebSphere:队列性能计数器、通道性能计数器
    (3)         WebLogic:LogBaroadcasterRuntime、ServerSecurityRuntime
     
    四.负载压力测试解决方案-疲劳强度测试
    强调长时间的考核,主要是过长时间运行系统,发现问题
    1.日常强度疲劳强度测试
       模拟系统的日常业务(正常情况),持续执行‘一段时间’,暴露系统的性能问题,如内存泄露、资源争用
    2.高峰业务疲劳强度测试
    (1)  模拟系统的高峰业务(最大业务量),持续执行‘一段时间’,暴露系统的性能问题
    (2)  时间指标要满足: (1) 这段模拟时间所处理的交易量要达到系统疲劳强度需求的业务量 (2) 在这段测试周期中必须通过加大负载,以及尽可能长的测试周期来保证疲劳强度测试
     
    五.负载压力测试解决方案-大数据量测试
    1.大数据量测试类型
    (1)         独立数据量测试:针对某些系统存储、传输、统计、查询等业务进行单用户大数据量测试,如大量的批处理任务
    (2)         综合数据量测试:采用并发测试、疲劳强度测试以及大数据量测试相结合的综合测试方案
    2.自动生成大数据量
    (1)         借助自动化测试工具,利用数据库测试数据自动生成工具,如TESTBytes
    (2)         利用自动化负载压力测试工具,模拟用户业务操作,同时并发数百个或数千个用户生成相关数据
    (3)         自主开发数据生成工具
    (4)         数据库本身的辅助工具
    3.大数据量管理
    (1)         手工管理:
    (2)         自动化工具管理:File-Aid/CS 数据库管理工具 ,完成比较数据和数据库结构;转换关系数据库数据成XML数据;比较XML数据与关系数据库数据;比较XML文件;数据迁移
     
    61.负载压力测试指标分析
       主要包括客户端交易处理性能指标、服务器资源监控指标、数据库资源监控指标、Web服务器监控指标、中间件监控指标
    62.负载压力测试实施
    测试计划
    分析应用程序:系统组件、系统配置、分析使用模型、分析任务分布
    定义测试目标:以可度量的指标制定目标、确定测试时间
    计划方案实施
    检查测试目标:响应时间、最优硬件配置、可靠性、瓶颈、系统容量
    测试需求分析
  • 生命在两极之间移动

    director 发布于 2009-06-30 23:55:50

        以前有一个农夫,他有一块贫瘠的农田。他抱怨着:"如果神让我来控制天气,一切的事情都会变得更好, 因为它很显然不是很懂得农作物需要的天气。
         
    神对他说:"我会给你一年的时间让你控制天气, 你想要有什么天气,就可以有什么天气。"这个可怜的人非常高兴,马上试着说:"我现在要晴天。"然后太阳就出来了。后来他又说:"下雨吧!"然后就下雨了。 这一整年他就这样先让阳光出现,然后再下雨。
         
    种子越长越大,看着农作物的成长变成了一种快乐。他很得意的说:"现在神可以了解如何控制天气了吧!" 这些农作物从来没有那么大、那么绿、颜色绿得那么深。
         
    然后丰收的时候到了。农夫带着他的镰刀去收割小麦,但是他的心沉到了谷底,因为植物的茎上面什么都没有。 神去找他:"你的农作物怎样了?" 这个人开始抱怨:"很惨,我的主啊,非常惨!" "但是你不是如愿以偿控制了天气吗?""你想要的东西不是都变得很好吗?" "当然!这就是我困惑的地方,我得到了我想要的雨水与阳光, 但是还是没有收成。" 然后神对他说:"但是你从来没有要求风、暴雨、 冰雪以及每一件会净化空气与让根更坚硬、更有抵抗力的东西, 那就是长不出农作物的理由。"
         
    只有经历挑战才可能有生命。只有当你拥有好天气与坏天气、喜悦与痛苦、冬天与夏天、沮丧与快乐、不适与舒服才可能有生命。
         
    生命在这两极之间移动,在这两极之间,你就学到了如何保持平衡。在这两只翅膀间,你就学到了如何去生活。我想不只这一件事是必需找到平衡,还有很多事情也是一样的,在两极之间,寻找一个平衡点,其实是人生中的一种考验。
  • TD的安装【转】

    wistaria 发布于 2008-12-24 10:13:52

    1 操作系统

    由于要使用IISSQL SERVER数据库,考虑到运行的稳定性,选用的操作系统为WIN2000 SERVER WIN 2003 SERVER版。

    2,安装IIS

    安装TD工具前一定要先安装IIS服务。

    3,安装MS-SQL SERVER

    TD的支持的数据库有SybaseMS-SQL SERVEROracleAccess,以用来存储TD项目的相关数据。在这里我们使用MS-SQL SERVER做为TD的连接数据库。至于SQL SERVER的安装就很简单了,在这里就不多说了。

    4,安装TD

    1)在安装好IISMS-SQL SERVER后,进行TD的安装。进入到图下步骤时,输入:

    Maintenance no.KSQMQSQ-HQSQDQS-Q3QSQ3S-Q2SSQI8

    License no.B343P-44B44-43444-6444S 

     

    2Next】后,进入到图下步骤,默认是选择了Access 做为TD的数据库,我们同时选择MS-SQL SERVER

     

    3)【Next】后,进入到图下步骤,此时注意,MS SQL Alias最好更改为当前的SQL Server名,我当前的为“LJZ”。否则在安装完成后,必须再对客户端网络实名进行设置。

     

      4Next】后,

    进入到图下步骤,此时输入当前系统帐户的用户名和密码。

     

    5Next】后,进入到图下步骤,这里设置的是TD项目文件的储存库路径,保存着如每个项目用户的界面布局样式以及项目上传的附件等等。

    6Next】后,会弹出提示框,提示你是否共享该文件夹,我们选择Yes

    7Yes】后,又弹出提示框,提示你设置该文件夹的共享名,默认为TD_Dir.

    8OK】后,进入到图下步骤,这里是对TD的邮件服务进行设置,我们不使用邮件服务,所以不进行任何选择或设置。

     

    9Next】后,进入到图下步骤,这里是设置TDIIS虚拟目录,Host Name默认为当前的计算机名,而Virtual Directory Name 默认为TDBIN Physiical Location则为该虚拟目录所在的物理路径,默认在IIS的文件目录InetPub下。TDBIN中将存放的是TD系统的核心服务文件,我们可以进行自定义的设置,但这里我们使用默认的值。

     

    10Next】后,弹出提示框,提示你该目录不存在,是否创建。

    11Yes】后,进入到图下步骤,此处不进行选择,因为安装包没有包含该插件。

    12Next】后,进入到图下步骤,这里默认是选择的,是安装TD的演示项目与TD的演示系统Mercury Tours,该系统部是署于Tomcat V3.3上。我们不进行选择。

    13)一直Next】后,进入到图下步骤,TD开始进行安装,安装比较耗资源,不要做太多操作,耐心等待。

    14)安装完成后会有在线注册的按钮,不进行点击,直接NEXT

    15Next】后,会弹出提示框,提示你重起计算机以完成TD的安装,推荐立即重起。

     

    5TD的配置

    TD的安装完成后,下面还要进行TD的一些基本配置,让TD更符合我们的需求,更好的工作,包括界面汉化以及字段的汉化和自定义等。

    1)  汉化

    在安装目录TDBIN/Install/下存放的是一些为连接服务的客户端加载的系统文件。其中的tdclientui80.xco文件,该文件会自动加载到客户端的C:\Program Files\Common Files\Mercury Interactive\TD2000_80目录下,并生成为tdclientui80.ocx文件。注意其中两个文件的后缀名区别。文件后缀可通过更改方式变换为OCXXCO

    由于Mercury并为发行官方的汉化包,所以采用第三方的资源包进行汉化。汉化方式,把得到的汉化资源dclientui80.xco文件粘贴到服务器 InetPub/TDBIN/Install/ 目录下,覆盖掉原文件即可。在之前访问过服务器的客户端,在下次连接时由于不再加载更新后的数据,所以必须得删除客户端下的 C:\Program Files\Common Files\Mercury Interactive\TD2000_80 目录下覆盖tdclientui80.ocx文件,使再次访问时自动加载汉化后的新组件。也可以通过在客户端 C:\Program Files\Common Files\Mercury Interactive\TD2000_80 目录下覆盖tdclientui80.ocx文件达到汉化的目的。


  • 数据库测试的分类和方法

    huaxiang0208 发布于 2009-06-03 10:57:42

    测试过程的角度来说我们也可以把数据库测试分为
    系统测试
    传统软件系统测试的测试重点是需求覆盖,而对于我们的数据库测试同样也需要
    对需求覆盖进行保证。那么数据库在初期设计中也需要对这个进行分析,测试.例
    如存储过程,视图,触发器,约束,规则等我们都需要进行需求的验证确保这些
    功能设计是符合需求的.另一方面我们需要确认数据库设计文档和最终的数据库相
    同,当设计文档变化时我们同样要验证改修改是否落实到数据库上。
    这个阶段我们的测试主要通过数据库设计评审来实现。
    集成测试
    集成测试是主要针对接口进行的测试工作,从数据库的角度来说和普通测试稍微
    有些区别对于数据库测试来说,需要考虑的是
    数据项的修改操作
    数据项的增加操作
    数据项的删除操作
    数据表增加满
    数据表删除空
    删除空表中的记录
    数据表的并发操作
    针对存储过程的接口测试
    结合业务逻辑做关联表的接口测试
    同样我们需要对这些接口考虑采用等价类、边界值、错误猜测等方法进行测试
    单元测试
    单元测试侧重于逻辑覆盖,相对对于复杂的代码来说,数据库开发的单元测试相
    对简单些,可以通过语句覆盖和走读的方式完成
    系统测试相对来说比较困难,这要求有很高的数据库设计能力和丰富的数据库测
    经验。而集成测试和单元测试就相对简单了。
    而我们也可以从测试关注点的角度对数据库进行分类
    功能测试
    对数据库功能的测试我们可以依赖与工具进行
    DBunit
    一款开源的数据库功能测试框架,可以使用类似与Junit的方式对数据库的基本操
    作进行白盒的单元测试,对输入输出进行校验
    QTP
    大名鼎鼎的自动测试工具,通过对对象的捕捉识别,我们可以通过QTP来模拟用户
    的操作流程,通过其中的校验方法或者结合数据库后台的监控对整个数据库中的
    数据进行测试。个人觉得比较偏向灰盒
    DataFactory
    一款优秀的数据库数据自动生成工具,通过它你可以轻松的生成任意结构数据库
    ,对数据库进行填充,帮助你生成所需要的大量数据从而验证我们数据库中的功
    能是否正确。这是属于黑盒测试
    数据库性能
    虽然我们的硬件最近几年进步很快,但是我们需要处理的数据以更快的速度在增
    加。几亿条记录的表格在现在是司空见惯的,如此庞大的数据量在大量并发连接
    操作时,我们不能像以前一样随意的使用查询,连接查询,嵌套查询,视图,这
    些操作如果不当会给系统带来非常巨大的压力,严重影响系统性能
    性能优化分4部分
    1物理存储方面
    2逻辑设计方面
    3数据库的参数调整
    4SQL语句优化.
    我们如何对性能方面进行测试呢,业界也提供了很多工具
    通过数据库系统的SQL语句分析工具,我们可以分析得到数据库语句执行的瓶颈,
    从而优化SQL语句
    Loadrunner
    这个不用多说,我们可以通过对协议的编程来对数据库做压力测试
    Swingbench(这是一个重量级别的feature,类似LR,而且非常强大,只不过专门
    针对oracle而已)
    数据库厂商也意识到这点,例如
    oracle11g已经提供了real application test,提供数据库性能测试,分析系统
    应用瓶颈。
    还有很多第三方公司开发了SQL语句优化工具来帮助你自动的进行语句优化工作从
    而提高执行效率。
    安全测试
    软件日益复杂,而数据又成为了系统中重中之重的核心,从以往对系统的破坏现
    在更倾向于对数据的获取和破坏。而数据库的安全被提到了最前端
    自从SQL 注入攻击被发现,冒失万无一失的数据库一下从后台变为了前台,而一
    旦数据库被攻破,整个系统也会暴露在黑客的手下,通过数据库强大的存储过程
    ,黑客可以轻松的获得整个系统的权限。而SQL的注入看似简单缺很难防范,对于
    安全测试来说,如何防范系统被注入是测试的难点。
    业界也有相关的数据库注入检测工具,来帮助用户对自身系统进行安全检测。
    对于这点来说业界也有标准,例如ISO IEC 21827,也叫做SSE CMM 3.0,是CMM和
    ISO的集成的产物,专门针对系统安全领域的
    另外一方面,数据库的健壮性,容错性和恢复能力也是我们测试的要点
    我们也可以发现功能测试,性能测试,安全测试,是一个由简到繁的过程,也是
    数据库测试人员需要逐步掌握的技能,这也是以后公司对数据库测试人员的要求
  • Index and Location Ordinal Identifier 索引标识符与位置标识符

    ljonathan 发布于 2009-03-23 09:53:25

    Index and Location Ordinal Identifier 索引标识符与位置标识符
    2008-10-27 14:55

     

    QTP除了可以获取到被测对象的主属性、辅助属性值外,还可以获取到被测对象的Ordinal Identifier值。当QTP发现有多个对象具有相同的主属性值、辅助属性值而无法对它们进行唯一识别时, Ordinal Identifier会获取每个对象的序列值,以将它们区别开来。

    由于序列值是一个相对值,任何页面的变更都有可能导致这些值发生改变,因此,只在主属性与辅助属性无法唯一识别对象的情况下,QTP才会获取该序列值。
    在运行测试脚本时,如果使用对象的属性值以及Smart Identification机制都无法唯一识别应用程序中的对象,才会使用到序列值。如果QTP可以通过其它属性值对对象进行识别,则会忽略序列值。
    QTP可以使用以下类型的ordinal identifiers来识别对象:
    Index      表示对象在程序代码中的出现顺序,这个顺序是相对于其它具有相同属性的对象而言的。
    Location 表示对象在窗口、Frame或对话框中出现的顺序,这个顺序是相对于其它具有相同属性的对象而言的。
    CreationTime(仅适用于Browser对象) 表示Browser对象打开的顺序,这相顺序是相对于其它已打开的具有相同属性的对象而言的。
    一般情况下,Ordinal Idenfifier类型适用于所有类。在Object Identification窗口,通过Ordial identifier下拉框,可以选择其它类型。
    注:QTP在录制脚本时,如果通过主属性与辅助属性已能够唯一识别对象,则不会获取对象的ordinal identifier顺序值。你可以在脚本录制完成后,在Object Properties或Object Repository对话框中使用Add/Remove操作,手动添加顺序值。
     
     
    1. 使用Index属性识别对象
    QTP在录制过程中,可以获取到对象的Index属性值来唯一识别对象。QTP根据对象在程序代码中的出现顺序来决定该属性值。第1个出现的对象的值是0。
    Index属性值object-specific的。因此,假如一个WebEdit测试对象的Index属性值为3时,QTP会查找程序页面中的第4个WebEdit对象;但是,如果一个WebElement对象的Index属性值为3,则QTP查看程序页面中的第4个Web对象,而不管对象是属于Web对象的哪种类型,因为WebElement对象可以是任何Web对象。
    例如,假设一个页面包括以下对象:
    一个Image对象,名为Apple;
    一个Image对象,名为UserName;
    一个Webedit对象,名为UserName;
    一个Image对象,名为Password;
    一个Webedit对象,名为Password。
    下面的语句指的应该是上表第3行所描述的对象,因为它是第1个名为UserName的WebEdit对象。
    WebEdit("Name:=UserName", "Index:=0")
    下面的语句指的应该是上表第2行所描述的对象,因为它是第1个名为UserName的Web对象。
    WebElement("Name:=UserName", "Index:=0")
    2. 使用Location属性识别对象
    QTP在录制脚本时,可以获取被测对象的Location属性值来唯一识别对象。这个属性值就是多个相同对象在窗口、框架、对话框中的出现顺序。第1个出现的对象,属性值为0。顺序值的分配是先列后行,先左后右。
    在下面的例子中,对话框中的单选按钮按它们的位置排序。

    Location属性值是object-specific的。因此,当一个WinButton对象的Location属性值为3时,QTP从顶端向底端搜索,然后从左向右搜索,直到找到页面中的第4个WinButton对象。但是,如果被搜对象是WinObject,则QTP从顶端向底端搜索,然后从左向右搜索,直到找到第4个Standard对象,因为WinObject对象可以是任何Standard对象。
    例如,假设一个对话框中包括以下对象:
    一个Button对象,名为OK;
    一个Button对象,名为Add/Remove;
    一个Check Box对象,名为Add/Remove;
    一个Button对象,名为Help;
    一个Check box对象,名为Check spelling。
    下面的指句指应该是第3行中所描述的对象,因为它是第1个名为Add/Remove的Check Box对象。
    WinCheckBox("Name:=Add/Remove", "Location:=0")
    下面的指句指应该是第2行中所描述的对象,因为它是第1个名为Add/Remove的WinObject对象。
    WinObject("Name:=Add/Remove", "Location:=0")
     
     
  • QTP创建函数库,可以调用自己定制的函数

    ljonathan 发布于 2009-04-24 10:23:41

     

    我的QTP 不能新建函数库,有碰到过类似问题的来指导下

    在QTP中依次选择File--New--Fuction Library,但是程序没有什么反应,不能建立应该的*.sql文件

     
    终于解决了,和我预想的差不多
    要安装一个 Quality Center的插件
    现在终于可以创建了,呵呵

    使用:

    File----->settings----->Resources----->add a new file to the file list

     

    请教创建的函数库文件的调用语句


    在QTP中通过File--New--Fuction Library创建了一个后缀名为qfl的文件,请问如何在测试文件里调用它?
    如调用vbs脚本文件可以这样写:ExecuteFile "MyFunctions.vbs"
    有没有相应的语句来调用一个后缀名为qfl的文件?*.qfl 为自己创建的函数库文件。

    创建函数库方法:

    1.Choose File > New > function liberay.
    2.Create a new function library
    3.enter the following lines exactly:
    public Function myfunc()
    msgbox "one"
    msgbox "two"
    msgbox "three"
    End Function

    然后保存,然后加入resource中,然后在expert view中直接用myfunc()
    就可以了.

    只能在Resources中设置共享的函数库文件吗?没有直接的调用语句(无须在Settings设置Resources)的方法吗?

    本人今天又仔细阅读了英文帮助,有另外一种方法,就是将自己定义的函数定义为测试对象方法,在keyword view的Item选项中选定相应的对象,在Operation中就会出现你定义的方法名称,进而选定该方法即可。无须用语句调用。

  • QTP检查点设置(转)

    ljonathan 发布于 2009-04-24 10:31:54

    检查点类型:!y xU#K/VRo202848

    \,Q@'N6O'W;e/^2028481.标准检查点(Standard Checkpoint)检查对象的属性,如可以检查某个按钮的是否被选取;51Testing软件测试网#y4{+SF@*@,DMw
    2.页面检查点(Page Checkpoint) 检查网页的特性,如可以检查加载页面所需的时间,或者检查网页是否包含损坏的链接;
    9xsI8af Na2028483.图片检查点(Image Checkpoint)检查应用程序或网页中的图像的值,如可以检查所选图像的源文文件是否正确;
    %S"n%rG.u\!QA c2028484.位图检查点(Bitmap Checkpoint)检查位图格式的网页或应用程序区域;如。被测应用程序中有一个按钮,显示<查看文档>其中<号码>会被输入到应用程序中其它位置窗体的四位数字代码替换。可以创建一个文本区域检查点,以确认在该按钮上显示与窗体中的号码相同;
    'ctF9KQcz?0[!V2028485.文本检查点(Text Checkpoint)检查网页或窗口中的文字内容是否正确;51Testing软件测试网0~eP*{9T!Rw
    6.文本区域检查点(Text Area Checkpoint)检查网页或窗口中的文字是否在指定的区域显示;51Testing软件测试网O ^ R.DHN
    7.表检查点(Table Checkpoint)检查表内部信息,假设被测试应用程序包含一个表,改表列出了从纽约到旧金山所有可用航班。可以添加一个表检查点,以检查该表中的第一个航班的时间是否正确;
    )C S*Ao,G&tHje2028488.数据库检查点(Database Checkpoint)检查由应用程序访问的数据库到内容,如使用数据库检查点来检查网站上包含航班信息的数据库内容;51Testing软件测试网*s/n t6Q Q p)s0o-\

    vU|@5q2028489.Output Value 输出值检查,如输出网页中某一图片的属性(长宽高等);51Testing软件测试网a G l6JY4Q
    10.可访问性检查点(Accessibility Checkpoint)对网站区域属性进行识别,以检查是否符合可访问性规则的要求;51Testing软件测试网#V~/cD(L pV
    11.XML检查点(XML Checkpoint) 检查xml文件数据内容;51Testing软件测试网}B`7[2|2x_0rVg~

    51Testing软件测试网 M7uO,uEH

    -----------------------------------------------------------51Testing软件测试网CdQ;@K

    51Testing软件测试网Y4Z7H(l&D@

    51Testing软件测试网oBI_-]3Z

    1) 理解检查点51Testing软件测试网#`/|9qVV

    QuickTest enables you to add checks to yourtestor component.51Testing软件测试网8V^Z$Ve

    检查点比较指定属性的当前值与期望值,以判断当前的程序(或站点)功能是否正常。

    %Fj M{;v ~1r3R!W:U2[202848

    当你增加了一个检查点以后,在KeyWord模式下会增加一个CheckPoint,在Expert模式下会增加一条CheckPoint语句。在运行测试时,QTP比较CheckPoint的期望值与当前值,如果结果不匹配,则检查点失败,你可以在TestResults窗口中查看到检查点的结果。51Testing软件测试网'[S&~TR%w2ow+W5@?

    如果你想获取 checkpoint的返回值(一个布尔值,表示检查成功或失败),你必须在专家模式下将checkpoint 参数两端加上括号。如51Testing软件测试网"m_TgN;`;I

    a = browser("MyBrowser").page("MyPage").check (checkPoint("MyProperty"))

    -kk4yWg C{+?G202848

     51Testing软件测试网9F8i_*x1[Y?.]T ]

    2) 向测试脚本中添加检查点

    o/oq3zohZf4g1y Ay202848

    可以在录制脚本的过程中添加,也可以在修改脚本的过程中添加。51Testing软件测试网f5L_\ _!O'fW

    途径:菜单 Insertcheckpoint、或按钮;在Keywork视图中选择一个STEP,然后选右键菜单Insert Standard Checkpoint;在Active Screan中选择任意一个object,然后选右键菜单Insert Standard Checkpoint51Testing软件测试网a} @ ` w

     51Testing软件测试网-i.B~9E;FE4B[ W

    3) checkpoint的种类:

    P k)^ J/j202848

    可以在站点或应用程序中插入不同种类的checkpoint51Testing软件测试网4tz(VS ^.pz

    l         Standard Checkpoint (标准检查点)

    h U2W U;`f202848

    检查程序或网页object的属性值,检查对象如buttons, radio buttons, combo boxes, lists, 等等。51Testing软件测试网u}!i O$L;N b

    标准检查点支持所有的add-in 环境 (see Supported Checkpoints).51Testing软件测试网,B;v2?)KPF,SC{a

    l         Image Checkpoint (图像检查点)51Testing软件测试网:VL&@On

    检查程序或网页中图像的值,如你可以检查图像 的源文件是否正确。51Testing软件测试网X H-]&o2a(o+K:F6M

    注:你也可以给图片object插入一个标准检查点,这个标准检查点也是图像检查点。

    8LM8UYdVm1p _Ab202848

    l         Bitmap Checkpoint(图片检查点)

    ]b_qQ;j202848

    将程序或网页的某个区域作为一个图片,建立检查点。如,某个站点可以展示一个城市的地图,这个地图有控制地图缩放的按钮,你点击1次“zoom in”按钮后,录制下放大了的地图快照。通过建立bitmap 检查点,可以检查“zoom in”功能是否正确。51Testing软件测试网H y8K(eD

    l         Table Checkpoint(表检查点)

    $K(i/I-c&\G202848

    检查一个表中的信息。例如,假设被测的程序或网站包括一个table,本table中包含了所有的从New YorkSan Fransisco的有效航班。你可以通过Table检查点来检查第1个航班的时间是否正确。51Testing软件测试网 PeSmp L+t$p

    注意:你也可以通过为表Object插入标准检查点的方法创建表检查点。

    OxB#k.v202848

    l         Text Checkpoint(文本检查点)

    R.SSn Y(B202848

    检查位于程序或网站某个位置的字符串。例如,假设程序或网站显示“Flight departing from New York to San Francisco”的语句,你可以创建一个文本检查点检查"New York" 是否显示于"Flight departing from"  "to San Francisco"之间。

    4TdM/}I5hH"~0N202848

    所有的add-in环境都支持文本检查点。51Testing软件测试网d"MT9U;Y?(]x

    l         Text Area Checkpoint51Testing软件测试网iL$L5^5O"j hq:`

    l         Accessibility Checkpoint51Testing软件测试网3` S|.B"T%N8y

    l         Page Checkpoint

    )T8q2u0x/m_,d3P202848

    l         Database Checkpoint51Testing软件测试网N{]ACaX[

    检查database的内容。例如,可以使用数据库检查点来检查包含航班信息的数据库的内容。

    e5eh5i&[%V:Gc202848

    所有环境都支持数据库检查点。

    4B.NX _ co/K`202848

    l         XML Checkpoint51Testing软件测试网 \I(L0L"^ bG*q

    l         下表是QTP中在不同环境下对各类检查点的支持情况。51Testing软件测试网0q"NJ:U;i.z7qK3?G,A

    )e:q A#`'T#}5?d202848

     51Testing软件测试网LO*A:P GD6^ p

    Web51Testing软件测试网n WF5w,V2g

    Std

    RxzB[ G]7I202848

    VB51Testing软件测试网 u@ZKj e kr

    ActiveX

    )W6y'Ard N | a202848

    Other Object51Testing软件测试网y5D-Z2~/[W?/v

    Standard51Testing软件测试网1r)w,c X.e6O^?'@

    S

    wRW8Ti'^4u|202848

    S51Testing软件测试网ih8h U6s+D

    S51Testing软件测试网Yw ad0Y p9i+M;H

    S51Testing软件测试网(f+zO0}-P A$qo/vW w

    NA

    ;\Rw.P%t-M Lrn202848

    Image51Testing软件测试网4H^"C,[_@N E

    S51Testing软件测试网(}.n3C W Zx

    NS

    pOJwx;n6HC uJ202848

    NS51Testing软件测试网3q1y5Yb1P6|,`,S-}

    NS51Testing软件测试网N6r/E%|s)N7U(P/L

    NA51Testing软件测试网|AlX*c'K)kL+P;Y

    Table

    Zr.aq u$bR202848

    S51Testing软件测试网ky ~h0\I

    NS51Testing软件测试网f,t ^e8`

    NS51Testing软件测试网 YBd_iy^I&O

    S51Testing软件测试网&@CC-UxY

    NA

    Lq|7qY202848

    p7a{ v%yHBe20284851Testing软件测试网x!~ gc8^A8q'n#F

     

    C(yw2^x-E;k202848

    {?6v:|'@202848---------------------------------------------

    .VLal8{R202848
    一、录制参数设置
           Tools--web event recording configuration
           Toolsoptionsactive screen
           这两个参数的设置直接影响到QTP录制的精度。有的时候由于录制级别设置的问题,有的界面或某个界面元素可能无法被保存下来,那么你就无法在其上使用任何检查点,边录制边添加检查点的方法就可以避免这个问题.
  • QTP连接Oracle数据库,并查询数据 ConnectOracleDatabase

    ljonathan 发布于 2009-04-24 14:45:35

    因为第一次弄,又不熟悉VBS,弄了半天,多谢网上的各位前辈提供的资料

    实现效果:连接Oracle数据库,在里面查出数据,并逐行显示

    最后的脚步,如下:


    Dim Conn
    Set Conn = CreateObject("ADODB.Connection")

    '----------------------------------------------------------
    '方法一: '利用*.udl文件,建立连接后,复制地址
    'Conn.ConnectionString = "Provider=OraOLEDB.Oracle.1;Password=jonathan;Persist Security Info=True;User ID=system;Data Source=jonathan;Server=192.168.1.25"
    '      conn.open= "Provider=OraOLEDB.Oracle.1; Password=密码; Persist Security Info=True;User ID=用户名;Data Source=数据源服务名;Server=数据库服务器地址"         '利用*.udl文件
    '-------------------------------------------------------------

    '方法二: 添加数据库检查点,复制那个ConnectionString 
     Conn.ConnectionString =  "DSN=192.168.1.25;UID=SYSTEM;PWD=JONATHAN;DBQ=JONATHAN;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;MTS=F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;"
    Conn.Open

    '查看是否连接成功,成功状态值为1
    'msgbox Conn.state
    If Conn.State = 0 Then
         msgbox  "连接数据库失败"
    else
        msgbox   "连接数据库成功"
    End If


    ''创建数据库记录集对象(也就是查询结果)
    Set res = createobject("ADODB.Recordset") 


    ''打开以指定查询语句查询所得的记录集 
    res.Open"select * from qtp",conn,2,2  

    '从查询结果的指定字段取出值,循环输出

    while(not Res.eof)

    userid = res("userid")
    username = res("name")
    password = res("password")

    msgbox userid
    msgbox username
    msgbox password
    Res.MoveNext
    wend

    'msgbox res("userid")
    'msgbox res("name")
    'msgbox res("password")


    res.close        '关闭记录集
    Set res=nothing        '释放对象
    conn.close        '关闭连接
    Set conn=nothing        '释放对象

     

    =============================================================

    一、利用*.udl文件获得连接字符串的方法:

    1、新建个空的文本文件,然后重命名为test.udl


    2、双击打开test.udl,在Provider中选择Oracle Provider for OLE DB


    3、点击Next或者上面的Connection标签,在DataSource中输入数据库服务器的网络名称(网址),并输入登录数据库的用户名和密码,注意保存密码上打勾


    4、点击 Test Connection,若测试通过,则点OK退出该udl文件

    5、右键点击test.udl,选择用记事本打开,有没发现你要写的连接字符串已经乖乖躺在那里了~赶紧Ctrl+C,Ctrl+V吧~

    二、利用插入数据库检查点的方法,获得连接字符串,就不说了

        Insert--->CheckPoint---->Database Checkpoint---->

    其他:

    有位仁兄说:odbc的文件数据源方式估计快淘汰了

    看来要弄个更加通用的连接方法,继续摸索……