发布新日志

  • 软件测试的生命周期

    2009-01-04 10:38:54

    软件测试生命周期包括6个阶段(大体上):
    1)计划 2)分析,3)设计,4)构建,5)测试周期,6)最后测试和实施,7)实施后。
    1. 计划(产品定义阶段)
     高层次的测试计划(包含多重测试周期)
     质量保证计划(质量目标,测试标准等 )
     确定计划评审的时间
     报告问题过程
     确定问题的分类
     确定验收标准-给质量保证员和用户。
     建立应用程序测试数据库
     确定衡量标准,例如缺陷数量/严重程度和缺陷起源(仅举几个例子) 。
     确定项目质量度量
     开始制定项目整体测试时间表(时间,资源等)
     必需阶段:评审产品定义文档
     文档中加入质量保证标准,作为工程改善进程的一部分
     根据该产品的特点帮助确定问题的范围
     大约每月要花5 -1 0小时在这一方面
     计划在数据库管理所有测试用例,包括手工方面或者自动化方面。
    2. 分析(外部文档阶段)
     根据业务需求开发功能验证矩阵。
     制定测试用例格式-估计时间和分配优先级。
     制定测试周期矩阵与时间线
     根据功能验证矩阵开始编写测试用例
     根据业务需求计划测试用例基准数据
     确定用于自动化测试的测试用例。
     自动化团队开始在测试工具中创建变量文件和高层次的测试脚本。
     为自动化系统中的跟踪组件设置路径和自动化引导。
     界定压力和性能测试的范畴。
     按照每个测试用例的数据要求开始建立基准数据库。
     定义维护基准数据库的过程,即备份,恢复,验证。
     开始规划项目所需的测试周期数,和回归测试次数。
     开始文档复查,如:功能设计文档,业务需求文档,产品规格说明书,产品外部文档等。
     审查测试环境和实验室,前端与后端系统都要。
     准备使用McCabe工具,以支持白盒测试中代码的研发和复杂性分析
     建立反馈机制并开始录入文档。
     必需阶段:审查外部文件
     文档中加入质量保证标准,作为工程改善进程的一部分。
     根据群体执行反馈编写测试用例
     开始研制测试用例估计数目,每个用例的执行时间,和用例是否自动化这些方面的度量
     为每个测试用例确定基准数据,
     大约每月要花25小时在这一方面
    3. 设计(文档架构阶段)
     根据变更修改测试计划
     修改测试周期矩阵和时间线
     核实测试计划和用例用到的数据都输入到数据库,或是否必需的。
     修改功能验证矩阵
     继续编写测试用例,根据变化添加新的用例
     制定风险评估标准
     规范自动化测试和多用户测试的细节。
     挑选出一套用于自动化测试的测试用例,并且把这些用例脚本化
     规范压力测试和性能测试的细节。
     最终确定的测试周期。 (根据用例的估计时间和优先权确定每个周期所用的测试用例数)
     最终确定的测试计划
     估计单元测试所需资源
     必需阶段:审查架构文件
     文档中加入质量保证标准,作为工程改善进程的一部分。
     确定要进行编码的的实际组件或模块
     在这定义单元测试标准,通过/失败准则等。
     单元测试报告,报告进行单元测试后的模块质量如何,白盒测试和黑盒测试都要包括输入/输出数据和所有决定点。
     列出所有要进行单元测试的模块
    4. 构建(单元测试阶段)
     完成所有计划
     完成测试周期矩阵和时间线
     完成所有测试用例。 (手动)
     完成第一套自动化测试用例的测试脚本。
     完成压力和性能测试的计划
     开始压力和性能测试
     McCabe工具支持-提供度量
     测试自动化测试系统,并修复错误。
     发展单元测试
     运行质量保证验收测试套件,以确保软件已经可以交给QA测试。
    5. 测试周期/ 错误修正( 重复/系统测试阶段)
     测试周期1,执行第一套的测试用例(前端和后端)
     报告错误
     错误审核-不断开展的活动。
     根据需求修改测试用例
     根据需求增加测试用例
     测试周期二
     测试周期三
    6. 最后的测试和实施(代码冻结阶段) 
     执行所有前端测试用例-人工和自动化。
     执行所有后端测试案例-人工和自动化。
     执行所有压力和性能测试。
     提供对正在进行的缺陷跟踪度量。
     提供对正在进行的复杂性和设计的度量。
     更新测试用例和测试计划的估计时间。
     文件测试周期,回归测试,并更新相应文档。
    7. 实施后
     开展实施后评估会议以回顾整项工程。 (经验所得)
     准备最终的缺陷报告和相关度量。
     制定战略以防止类似的问题在今后的项目中重复出现。
     创建如何改进流程的计划目标和里程碑,
     McCabe工具-制作最后的报道和分析。
     自动化测试组-1 )审查测试用例以评估其他可用于自动化回归测试的用例2 )清理自动化测试用例和变量,和3 )审查自动化测试和手工测试结果的整合过程
     测试实验室和测试环境-清理测试环境,标记和存档用过测试用例和数据,恢复测试仪器到原始状态等。
  • 应聘华为 16道经典面试题

    2009-01-03 18:55:02

    在我们的工作中,有很多的客户问到关于华为的面试的问题,希望我们能提供一些关于华为面试的经验,也有很多的客户建议我们能开设这样一个板块,向大家介绍如何面对知名企业的面试,我们也将相关的面试经验收集整理,供大家参阅,今天要讲的是华为的面试经验!
        面试过程中,面试官会向应聘者发问,而应聘者的回答将成为面试官考虑是否接受他的重要依据。对应聘者而言,了解这些问题背后的“猫腻”至关重要。本文对面试中经常出现的一些典型问题进行了整理,并给出相应的回答思路和参考答案。读者无需过分关注分析的细节,关键是要从这些分析中“悟”出面试的规律及回答问题的思维方式,达到“活学活用”。

        问题一:“请你自我介绍一下”

        ■思路:1、这是面试的必考题目。

        2、介绍内容要与个人简历相一致。

        3、表述方式上尽量口语化。

        4、要切中要害,不谈无关、无用的内容。

        5、条理要清晰,层次要分明。

        6、事先最好以文字的形式写好背熟。

        问题二:“谈谈你的家庭情况”

        ■思路:1、况对于了解应聘者的性格、观念、心态等有一定的作用,这是招聘单位问该问题的主要原因。

        2、简单地罗列家庭人口。

        3、宜强调温馨和睦的家庭氛围。

        4、宜强调父母对自己教育的重视。

        5、宜强调各位家庭成员的良好状况。

        6、宜强调家庭成员对自己工作的支持。

        7、宜强调自己对家庭的责任感。

        问题三:“你有什么业余爱好?”

        ■思路:1、业余爱好能在一定程度上反映应聘者的性格、观念、心态,这是招聘单位问该问题的主要原因。

        2、最好不要说自己没有业余爱好。

        3、不要说自己有那些庸俗的、令人感觉不好的爱好。

        4、最好不要说自己仅限于读书、听音乐、上网,否则可能令面试官怀疑应聘者性格孤僻。

        5、最好能有一些户外的业余爱好来“点缀”你的形象。

        问题四:“你最崇拜谁?”

        ■思路:1、最崇拜的人能在一定程度上反映应聘者的性格、观念、心态,这是面试官问该问题的主要原因。

        2、不宜说自己谁都不崇拜。

        3、不宜说崇拜自己。

        4、不宜说崇拜一个虚幻的、或是不知名的人。

        5、不宜说崇拜一个明显具有负面形象的人。

        6、所崇拜的人人最好与自己所应聘的工作能“搭”上关系。

        7、最好说出自己所崇拜的人的哪些品质、哪些思想感染着自己、鼓舞着自己。

        问题五:“你的座右铭是什么?”

        ■思路:1、座右铭能在一定程度上反映应聘者的性格、观念、心态,这是面试官问这个问题的主要原因。

        2、不宜说那些医引起不好联想的座右铭。

        3、不宜说那些太抽象的座右铭。

        4、不宜说太长的座右铭。

        5、座右铭最好能反映出自己某种优秀品质。

        6、参考答案——“只为成功找方法,不为失败找借口”

        问题六:“谈谈你的缺点”

        ■思路:1、不宜说自己没缺点。

        2、不宜把那些明显的优点说成缺点。

        3、不宜说出严重影响所应聘工作的缺点。

        4、不宜说出令人不放心、不舒服的缺点。

        5、可以说出一些对于所应聘工作“无关紧要”的缺点,甚至是一些表面上看是缺点,从工作的角度看却是优点的缺点。

        问题七:“谈一谈你的一次失败经历”

        ■思路:1、不宜说自己没有失败的经历。

        2、不宜把那些明显的成功说成是失败。

        3、不宜说出严重影响所应聘工作的失败经历4、所谈经历的结果应是失败的。

        5、宜说明失败之前自己曾信心白倍、尽心尽力。

        6、说明仅仅是由于外在客观原因导致失败。

        7、失败后自己很快振作起来,以更加饱满的热情

    面对以后的工作。

        问题八:“你为什么选择我们公司?”

        ■思路:1、面试官试图从中了解你求职的动机、愿望以及对此项工作的态度。

        2、建议从行业、企业和岗位这三个角度来回答。

        3、参考答案——“我十分看好贵公司所在的行业,我认为贵公司十分重视人才,而且这项工作很适合我,相信自己一定能做好。”

        问题九:“对这项工作,你有哪些可预见的困难?”

        ■思路:1、不宜直接说出具体的困难,否则可能令对方怀疑应聘者不行。

        2、可以尝试迂回战术,说出应聘者对困难所持有的态度——“工作中出现一些困难是正常的,也是难免的,但是只要有坚忍不拔的毅力、良好的合作精神以及事前周密而充分的准备,任何困难都是可以克服的。”

        问题十:“如果我录用你,你将怎样开展工作”

        ■思路:1、如果应聘者对于应聘的职位缺乏足够的了解,最好不要直接说出自己开展工作的具体办法。

        2、可以尝试采用迂回战术来回答,如“首先听取领导的指示和要求,然后就有关情况进行了解和熟悉,接下来制定一份近期的工作计划并报领导批准,最后根据计划开展工作。”

        问题十一:“与上级意见不一是,你将怎么办?”

     ■思路:1、一般可以这样回答“我会给上级以必要的解释和提醒,在这种情况下,我会服从上级的意见。”

        2、如果面试你的是总经理,而你所应聘的职位另有一位经理,且这位经理当时不在场,可以这样回答:“对于非原则性问题,我会服从上级的意见,对于涉及公司利益的重大问题,我希望能向更高层领导反映。”

        问题十二:“我们为什么要录用你?”

        ■思路:1、应聘者最好站在招聘单位的角度来回答。

        2、招聘单位一般会录用这样的应聘者:基本符合条件、对这份共组感兴趣、有足够的信心。

        3、如“我符合贵公司的招聘条件,凭我目前掌握的技能、高度的责任感和良好的饿适应能力及学习能力 ,完全能胜任这份工作。我十分希望能为贵公司服务,如果贵公司给我这个机会,我一定能成为贵公司的栋梁!”

        问题十三:“你能为我们做什么?”

        ■思路:1、基本原则上“投其所好”。

        2、回答这个问题前应聘者最好能“先发制人”,了解招聘单位期待这个职位所能发挥的作用。

        3、应聘者可以根据自己的了解,结合自己在专业领域的优势来回答这个问题。

        问题十四:“你是应届毕业生,缺乏经验,如何能胜任这项工作?”

        ■思路:1、 如果招聘单位对应届毕业生的应聘者提出这个问题,说明招聘单位并不真正在乎“经验”,关键看应聘者怎样回答。

        2、对这个问题的回答最好要体现出应聘者的诚恳、机智、果敢及敬业。

        3、如“作为应届毕业生,在工作经验方面的确会有所欠缺,因此在读书期间我一直利用各种机会在这个行业里做兼职。我也发现,实际工作远比书本知识丰富、复杂。但我有较强的责任心、适应能力和学习能力,而且比较勤奋,所以在兼职中均能圆满完成各项工作,从中获取的经验也令我受益非浅。请贵公司放心,学校所学及兼职的工作经验使我一定能胜任这个职位。”

        问题十五:“你希望与什么样的上级共事?”

        ■思路:1、通过应聘者对上级的“希望”可以判断出应聘者对自我要求的意识,这既上一个陷阱,又上一次机会。

        2、最好回避对上级具体的希望,多谈对自己的要求。

        3、如“做为刚步入社会新人,我应该多要求自己尽快熟悉环境、适应环境,而不应该对环境提出什么要求,只要能发挥我的专长就可以了。”

        问题十六:“您在前一家公司的离职原因是什么?”

        ■思路:1、最重要的是:应聘者要使找招聘单位相信,应聘者在过往的单位的“离职原因”在此家招聘单位里不存在。

        2、避免把“离职原因”说得太详细、太具体。

        3、不能掺杂主观的负面感受,如“太幸苦”、“人际关系复杂”、“管理太混乱”、“公司不重视人才”、“公司排斥我们某某的员工”等。

        4、但也不能躲闪、回避,如“想换换环境”、“个人原因”等。

        5、不能涉及自己负面的人格特征,如不诚实、懒惰、缺乏责任感、不随和等。

        6、尽量使解释的理由为应聘者个人形象添彩。 7、如“我离职是因为这家公司倒闭。我在公司工作了三年多,有较深的感情。从去年始,由于市场形势突变,公司的局面急转直下。到眼下这一步我觉得很遗憾,但还要面对显示,重新寻找能发挥我能力的舞台。”

        同一个面试问题并非只有一个答案,而同一个答案并不是在任何面试场合都有效,关键在于应聘者掌握了规律后,对面试的具体情况进行把握,有意识地揣摩面试官提出问题的心理背景,然后投其所好。

     

  • 常用名词

    2008-12-28 11:40:26

    fault--故障
    在软件中一个错误的表现。

    feasible path--可达路径
    可以通过一组输入值和条件执行到的一条路径。

    feature testing--特性测试
    参考功能测试(Functional Testing)

    FMEA--失效模型效果分析(Failure Modes and Effects Analysis)
    可靠性分析中的一种方法,用于在基本组件级别上确认对系统性能有重大影响的失效

    FMECA--失效模型效果关键性分析(Failure Modes and Effects Criticality Analysis)
    FMEA的一个扩展,它分析了失效结果的严重性。

    FTA--故障树分析(Fault Tree Analysis)
    引起一个不需要事件产生的条件和因素的确认和分析,通常是严重影响系统性能、经济性、安全性或其它需要特性。
    functional decomposition--功能分解
    参考模块分解(modular decomposition)

    Functional Specification --功能规格说明书
    一个详细描述产品特性的文档。

    Functional Testing--功能测试
    测试一个产品的特性和可操作行为以确定它们满足规格。

    glass box testing--玻璃盒测试
    参考白盒测试(White Box Testing)

    IEEE--美国电子与电器工程师学会(Institute of Electrical and Electronic Engineers)

    incremental testing--渐增测试
    集成测试的一种,组件逐渐被增加到系统中直到整个系统被集成。
    infeasible path--不可达路径
    不能够通过任何可能的输入值集合执行到的路径。

    input domain--输入域
    所有可能输入的集合。

    inspection--检视
    对文档进行的一种评审形式。

    installability testing--可安装性测试
    确定系统的安装程序是否正确的测试。

    instrumentation--插装
    在程序中插入额外的代码以获得程序在执行时行为的信息。

    instrumenter--插装器
    执行插装的工具

    Integration Testing--集成测试
    测试一个应用组合后的部分以确保它们的功能在组合之后正确。该测试一般在单元测试之后进行。

    interface--接口
    两个功能单元的共享边界。

    interface analysis--接口分析
    分析软件与硬件、用户和其它软件之间接口的需求规格。

    interface testing--接口测试
    测试系统组件间接口的一种测试。

    invalid inputs--无效输入
    在程序功能输入域之外的测试数据。

    isolation testing--孤立测试
    组件测试(单元测试)策略中的一种,把被测组件从其上下文组件之中孤立出来,通过设计驱动和桩进行测试的一种方法。

    job control language--工作控制语言
    用于确定工作顺序,描述它们对操作系统要求并控制它们执行的语言。

    LCSAJ--线性代码顺序和跳转(Linear Code Sequence And Jump)
    包含三个部分:可执行语句线性顺序的起始,线性顺序的结束,在线性顺序结束处控制流跳转的目标语句。

    LCSAJ coverage--LCSAJ覆盖
    在组件中被测试执行到的LCSAJ的百分比。

    LCSAJ testing--LCSAJ测试
    根据LCSAJ设计测试用例的一种技术。

    Load Testing--负载测试
    通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。

    logic analysis--逻辑分析
    (1)评价软件设计的关键安全方程式、算法和控制逻辑的方法。(2)评价程序操作的顺序并且检测可能导致灾难的错误。

    logic-coverage testing--逻辑覆盖测试
    参考结构化测试用例设计(structural test case design)

    maintainability--可维护性
    一个软件系统或组件可以被修改的容易程度,这个修改一般是因为缺陷纠正、性能改进或特性增加引起的。

    maintainability testing--可维护性测试
    测试系统是否满足可维护性目标。

    modified condition/decision coverage--修改条件/判定覆盖
    在组件中被测试执行到的修改条件/判定的百分比。

    modified condition/decision testing --修改条件/判定测试
    根据MC/DC设计测试用例的一种技术。

    Monkey Testing--跳跃式测试
    随机性,跳跃式的测试一个系统,以确定一个系统是否会崩溃。

    MTBF--平均失效间隔实际(mean time between failures)
    两次失效之间的平均操作时间。

    MTTF--平均失效时间 (mean time to failure)
    第一次失效之前的平均时间

    MTTR--平均修复时间(mean time to repair)
    两次修复之间的平均时间

    multiple condition coverage--多条件覆盖
    参考分支条件组合覆盖(branch condition combination coverage)

    mutation analysis--变体分析
    一种确定测试用例套完整性的方法,该方法通过判断测试用例套能够区别程序与其变体之间的程度。

    Negative Testing--逆向测试/反向测试/负面测试
    测试瞄准于使系统不能工作。

    non-functional requirements testing--非功能性需求测试
    与功能不相关的需求测试,如:性能测试、可用性测试等。

    N-switch coverage--N切换覆盖
    在组件中被测试执行到的N转换顺序的百分比。

    N-switch testing--N切换测试
    根据N转换顺序设计测试用例的一种技术,经常用于状态转换测试中。

    N-transitions--N转换
    N+1转换顺序

    operational testing--可操作性测试
    在系统或组件操作的环境中评价它们的表现。

    output domain--输出域
    所有可能输出的集合。

    partition testing--分类测试
    参考等价划分测试(equivalence partition testing)

    path--路径
    一个组件从入口到出口的一条可执行语句顺序。

    path coverage--路径覆盖
    在组件中被测试执行到的路径的百分比。

    path sensitizing--路径敏感性
    选择一组输入值强制组件走一个给定的路径。

    path testing--路径测试
    根据路径设计测试用例的一种技术,经常用于状态转换测试中。

    performance testing--性能测试
    评价一个产品或组件与性能需求是否符合的测试。

    portability testing--可移植性
    测试瞄准于证明软件可以被移植到指定的硬件或软件平台上。

    Positive Testing--正向测试
    测试瞄准于显示系统能够正常工作。

    precondition--预置条件
    环境或状态条件,组件执行之前必须被填充一个特定的输入值。

    predicate--谓词
    一个逻辑表达式,结果为‘真’或‘假’。

    predicate data use--谓词数据使用
    在谓词中的一个数据使用。

    program instrumenter--程序插装
    参考插装(instrumenter)

    progressive testing--递进测试
    在先前特性回归测试之后对新特性进行测试的一种策略。

    pseudo-random--伪随机
    看似随机的,实际上是根据预先安排的顺序进行的。

    QA--质量保证(quality assurance)
    (1)已计划的系统性活动,用于保证一个组件、模块或系统遵从已确立的需求。(2)采取的所有活动以保证一个开发组织交付的产品满足性能需求和已确立的标准和过程。

    QC--质量控制(quality control)
    用于获得质量需求的操作技术和过程,如测试活动。

    Race Condition--竞争状态
    并行问题的根源。对一个共享资源的多个访问,至少包含了一个写操作,但是没有一个机制来协调同时发生的访问。

    recovery testing--恢复性测试
    验证系统从失效中恢复能力的测试。

    regression analysis and testing--回归分析和测试
    一个软件验证和确认任务以确定在修改后需要重复测试和分析的范围。

    Regression Testing--回归测试
    在发生修改之后重新测试先前的测试以保证修改的正确性。

    release--发布
    一个批准版本的正式通知和分发。

    reliability--可靠性
    一个系统或组件在规定的条件下在指定的时间内执行其需要功能的能力。

    reliability assessment--可靠性评价
    确定一个已有系统或组件的可靠性级别的过程。

    requirements-based testing--基于需求的测试
    根据软件组件的需求导出测试用例的一种设计方法。

    review--评审
    在产品开发过程中,把产品提交给项目成员、用户、管理者或其它相关人员评价或批准的过程。

    risk--风险
    不期望效果的可能性和严重性的一个度量。

    risk assessment--风险评估
    对风险和风险影响的一个完整的评价。

    safety--(生命)安全性
    不会引起人员伤亡、产生疾病、毁坏或损失设备和财产、或者破坏环境。

    safety critical--严格的安全性
    一个条件、事件、操作、过程或项,它的认识、控制或执行对生命安全性的系统来说是非常关键的。

    Sanity Testing--理智测试
    软件主要功能成分的简单测试以保证它是否能进行基本的测试。参考冒烟测试

    SDP--软件开发计划(software development plan)
    用于一个软件产品开发的项目计划。

    security testing--安全性测试
    验证系统是否符合安全性目标的一种测试。

    security.--(信息)安全性
    参考计算机系统安全性(computer system security)

    serviceability testing--可服务性测试
    参考可维护性测试(maintainability testing)

    simple subpath--简单子路径
    控制流的一个子路径,其中没有不必要的部分被执行。

    simulation--模拟
    使用另一个系统来表示一个物理的或抽象的系统的选定行为特性。

    simulation--模拟
    使用一个可执行模型来表示一个对象的行为。

    simulator--模拟器
    软件验证期间的一个设备、软件程序、或系统,当它给定一个控制的输入时,表现的与一个给定的系统类似。

    SLA--服务级别协议(service level agreement)
    服务提供商与客户之间的一个协议,用于规定服务提供商应当提供什么服务。

    Smoke Testing--冒烟测试
    对软件主要功能进行快餐式测试。最早来自于硬件测试实践,以确定新的硬件在第一次使用的时候不会着火。
  • QTP日期格式

    2008-12-27 23:02:37

    前几天的时候,用QTP别一个AX日期控件对象的时候
    不知道是对象的关系还是QTP的关系不可以用SET方法瓷柚弥?只可以用SETdate来设置,
    而且格式只有d-M-yyyy,如"7-Mar-2007"
    而日期只有2007-3-7  yyyy-m-d,
    先是有FormatDateTime,cdate(vbs没format)来转换,我用的是简体中文系统,所以无果
    看来只好自己做,如果自己做的话就要拼字符串,日-短英月-长年,日和年可以用day和year取出来
    月的话就要写select来做吗?,我发现短英月就是英文月份的前3个字符,这样的话,我就只要取出一个英文月份名就可以了,
    如何取出英文月份名呢,我想了,日期格式是和区域设置有关,幸好vbs中有GetLocale和SetLocale,我就方便了,这样我先设置美国英文"en-gb",得到"07 March 2007"(dd MM yyyy),看来月份是有了,不过这个在中间,不太方便我就是试了试别的英语国家,终于在加拿大"en-ca"中有了"March 07, 2007" 这样我就只要取左3个字符了.

    Function MyCdate(oDate)
    currentLocale = GetLocale
    original = SetLocale("en-ca")

    mon=left(cstr(FormatDateTime(oDate,1)),3)
    original = SetLocale(currentLocale)
    MyCdate=cstr(day(odate))+"-"+mon+"-"+cstr(year(odate))

    End Function

  • 在Windows下配置CVSNT

    2008-12-27 22:09:40

    因为需要跨网络合作开发,公司决定使用CVS作为配置库管理工具。本人以前没有使用过CVS,而公司服务器又使用的是Window2003系统。

      经过搜索后,决定使用cvsNT+tortoisecvs来实现。

      从www.cvsnt.org 下了最新版CvsNT,默认只有2.0.58版的,其他版本找不到。

      从sourceforge.net 下了最新版的tortoisecvs

      然后从网上找了很多相关的资料,就开始安装了。

      其中经过若干尝试之后。还是无法正常使用。

      第二天,无意中把端口号去掉之后,竟然调用成功。

      现在把配置过程罗列如下:

      CvsNT设置

      1.安装CvsNT,并重新启动

      2.打开Service Control Panel

      3.设置Advabced->Temporary为任意一个空目录

      钩选上所有选项

      设置Lock地址为Localhost ,其他选项不要改动

      4.添加Repositories

      点击Add按钮,选择一个准备好的空目录如Location= C:/cvsAdmin ;Name =/cvsAdmin

      系统会提示是否初始化,点确定

      5.如果CvsService或CvsLock服务没有启动,请先启动他们

         测试服务器

      1.开始菜单-run-cmd,进入命令行环境

      2.输入Cvs ,会出现相应的帮助,如果没出现,说明环境变量中的Path值没有设置,你可以手动设置到你的Cvs.exe文件所在的目录

      3.set cvsroot=:sspi:localhost:/cvsAdmin

      4.输入cvs version ,显示当前CvsNt版本号

      Client: Concurrent Versions System (CVSNT) 2.0.58a (client/server

      Server: Concurrent Versions System (CVS) 1.11.2 (client/server)

      5.cvs login

      输入你的Windows登陆密码

      6.cvs ls

      显示所以module,至少会有一个CVSROOT

      7.如果以上步骤都没有错误,说明CVSNT配置成功

      添加用户

      1.使用cvs passwd命令可以添加用户和修改密码

      2.可以修改 C:/cvsAdmin/cvsroot目录下的passwd文件,如果没有的话,可以自己建一个

      添加 test:,这样就添加了一个密码为空的test用户了。

      3.添加用户后可以使用:pserver:test@localhost:/cvsAdmin登录了

      tortoisecvs设置

      1.安装tortoisecvs选择完全安装

      2.重新启动计算机

      3.新建一个文件夹如(c:\test),右击,创建新模块,使用pserver协议输入机器IP地址和用户名(不要输入端口号,我可深受其害),

      Repositories folder为/cvsAdmin

      如果不出意外的话,一个新的模块test就建立了

      4.测试Checkout功能:右键菜单-〉cvs->checkout 选择一个模块名test,如果不知道的话,可以使用获取列表的功能

      5.ok,提示cvs操作成功,但是我们什么都没看到,自己查看输出信息,其中包含了cannot open CVS/Entries for reading: No such file or directory,什么意思呢,原来cvs中的模块为空时,它无法取得任何实体,就什么都不生成了,解决的方法很简单,就是在新建的模块中添加一个文件,并提交,再测试一下,果然,cvsAdmin自动为我们生成了。哎,这一点,可把我给害苦了。

      -------------------------------------------------------------------------------------------------------------------------------

      按照上面的步骤进行一次安装,安装完毕后发现服务虽然启动,但是环境仍然没有配置好,需要在控制台下执行set cvsroot=:sspi:localhost:/cvsAdmin,然后我在用客户端的myeclipse进行连接的时候需要输入用户名和密码,起初我以为用户名是cvsroot,密码是空,但是后来总提示我这样或者那样的错误,然后我就像用上面所说的方法执行命令修改密码,但是仍然不成功。

      我到cvsroot下面去找passwd这个文件,发现没有,需要新建一个这样的文件,但是虽然它用文本能够打开,但是在鼠标,右键的时候没有新建此类型的选项,于是乎我只能把config这个文件拷贝到cvsroot文件夹外面,改个名字为passwd,然后在拷贝回来,但是这个时候问题又出现了,按照上面的办法我把文件里面所有的文本内容都删除,然后写上test:,结果连接的时候告诉我没有test这个用户名,之后折腾了很久根据各种提示吧,把用户名改成了Administrator,(也就是在passwd这个文件写上Administrator:)然后在控制台下改密码为1234,在myeclipse上仍然连接不上,这个时候我突然意识到cvs应该是区分大小写的,于是把小写的administrator改成了Administrator,就成功的连接上了。


     

  • 根据性能需求设计性能测试的设计用例

    2008-12-21 20:51:47

    某网站提供会员模板下载、上传、购买、支付等功能,目前进入性能测试阶段,通过性能需求可以了解到主要有以下几个性能指标需要进行测试:
    -{5e2Q.O7zGN0U233591产品页面刷新性能51Testing软件测试网C T5O:D cX ~
    产品上传性能51Testing软件测试网(ol @gi mC4P
    产品下载性能
    3NEn-\3X4{233591搜索性能51Testing软件测试网7B3l"d/fhs |8z8D2GO
    目前给出的指标为:
    } @,G$@ oT233591延迟:51Testing软件测试网:jZI^0vP!W E-s-@,P
    测试项          响应时间      抖动 备注    51Testing软件测试网];YPYc
    产品页面刷新     <5秒         <2秒     51Testing软件测试网4[6[uc ~
    产品下载相应时间  <4秒        <2秒  

    51Testing软件测试网(dG$[ ra"s
    吞吐量:51Testing软件测试网siE!_Q5a1Q
    编号      项                       吞吐量   
    ,fau |_|?$\233591Perf.T.1 所有登录用户在线状态更改频率 每10分钟1次   
    %O_:w J~3BH233591Perf.T.2 每日页面平均访问量          60000次    51Testing软件测试网K.V`{5vP
    Perf.T.3 每日下载量                 50000   
    ixBim!K3]lFk233591Perf.T.4 平均每日新增会员数量         500    51Testing软件测试网HYpPTQ&z
    Perf.T.5 高峰同一模板下载量           100用户并发下载    51Testing软件测试网iA\9]v}0~
    Perf.T.6 高峰不同模板下载量           150用户并发下载 

    51Testing软件测试网En8A!Q&}7~@/a
    容量:51Testing软件测试网/Fc l k~/t&x
    编号      项             容量    51Testing软件测试网k}l&ie;['F ?
    Perf.C.1 用户数          <=100万   
    `6k)v+V.B0} Ae0c^233591Perf.C.2 活动用户数       10000   
    u qp] X(P233591Perf.C.3 模板中心总用户数  <=25万 

    51Testing软件测试网(| D,lM._` P~
    根据如上性能需求及数据我们该如何设计性能测试用例及场景呢?(可以说给出的性能需求很垃圾,没有丝毫价值,但没办法还是点做啊)
    n;E$[#@V,V(v8PG233591首先,我不去在乎它要求的性能是什么,我只需要去做在一定的测试环境下对系统进行压力测试,找到各个性能指标的临界点就好了,至于是否达到性能指标,在和性能需求对照编写测试报告即可。

    转载请保留:本文出自huruihai的51Testing软件测试博客:http://www.51testing.com/?41972


    S2uw(a:PPQn233591所以,针对这几个需要进行性能测试的页面,我们做一下分析,如何设计场景才能尽可能准确地体现出系统的性能:
    *JL&[;lcV }233591先说一下搜索页面
    8n%d'su {O0M#|233591搜索页面根据对项目的了解,搜索后,将所有符合条件的结果遍历出来,显示在前台,每页的显示数量是一定的,超出的部分分页显示。根据上面的描述我们可以看出搜索结果是在将符合条件的所有结果集均发送到前台页面,对于页面显示对性能的消耗我们可以忽略不计,主要的压力来自数据的传输、sql的执行及应用服务器的处理过程,所以我可以从两个方面设计场景:

    转载请保留:本文出自huruihai的51Testing软件测试博客:http://www.51testing.com/?41972

    51Testing软件测试网C%FE J? z ZU
    a、虚拟用户一定,不同
    数据库数量级的情况下,搜索的性能51Testing软件测试网2|Z'dI1~
    如何确定虚拟用户的数量成为一个关键,我们可以让客户提供一个常规情况下每天访问用户数(如果没有实际数据可参考,可以根据产品方案中期望的用户数来代替),我们就用这个用户数来进行测试;再来分析一下不同的数据库数量级,如果系统运营1年的产品数据量是5万条,那么我们就根据这个值分别取1W条、3W条、5W条、10W条、20W条数据量来进行测试(具体的分法可以根据实际情况而定),所以对于这个测试目标,我们可以设计5个场景进行:
    $ImC{fw!GtbNs8`233591 51Testing软件测试网Bv5x L7f$W_L/a
    虚拟用户数 数据库数量级 录制页面 并发用户数 执行时间 思考时间   
    ,R_&u p]5oQ233591100      10000       搜索页面 随机产生   30分钟   加入思考时间   
    Z&H$e7VJO9t@233591100      30000       搜索页面 随机产生   30分钟   加入思考时间   
    2vr5L;Ecfa$B233591100      50000       搜索页面 随机产生   30分钟   加入思考时间   
    #O#Wc#V b:RfN\A233591100      100000      搜索页面 随机产生   30分钟   加入思考时间    51Testing软件测试网Wz^!z7kw+Ht0X
    100      200000      搜索页面 随机产生   30分钟   加入思考时间 
    ;O"w]#|N(np"};I i/QQ Y233591b、一定数据库数量级,不同量虚拟用户的情况下,搜索的性能51Testing软件测试网7K9M2gW9w4e/bv0yU"W
    我们定下来一个常规的数据库数据量,在数据量不变的情况下逐步增加虚拟用户数,测试一下不同虚拟用户压力下系统的性能51Testing软件测试网 C z MUI%k"hycw
     
    C#{f Sc;rwM233591虚拟用户数 数据库数量级 录制页面 并发用户数 执行时间 思考时间    51Testing软件测试网 TR%_*q/]J8L
    50        50000      搜索页面 随机产生   30分钟   加入思考时间    51Testing软件测试网VS8d4[P~s
    80        50000      搜索页面 随机产生   30分钟   加入思考时间    51Testing软件测试网-W.F\_q(lU3r#D*m4P7[.v
    100       50000      搜索页面 随机产生   30分钟   加入思考时间   
    &[P"da r;W)e$d9^Nl233591120       50000      搜索页面 随机产生   30分钟   加入思考时间    51Testing软件测试网0P-ZKG(H:w
    150       50000      搜索页面 随机产生   30分钟   加入思考时间 

    产品上传51Testing软件测试网B%KW;D [ O"TY
       影响上传性能的主要因素有上传文件的大小和上传的请求数,所以我们就从这两个方面设计用例。
    ^z~.N;S b@*j;js233591   a、虚拟用户数一定,上传不同大小的文件51Testing软件测试网-|)U)x6|3NM#N,{
     
    1um@.Y_ Lo233591虚拟用户数 上传文件大小 录制页面 并发用户数 执行时间 思考时间    51Testing软件测试网/uZ7o/Ob,dUi.z
    50        100k       上传页面 随机产生   30分钟   取消思考时间    51Testing软件测试网+A,Q:d9[%g0B d
    50        300k       上传页面 随机产生   30分钟   取消思考时间   
    F5J3A9@4h;l(x23359150        500k       上传页面 随机产生   30分钟   取消思考时间    51Testing软件测试网+bZ,z;gJJbL7f B|0O
    50        800k       上传页面 随机产生   30分钟   取消思考时间    51Testing软件测试网/G)j~ Q1[5l)k
    50        1M         上传页面 随机产生   30分钟   取消思考时间 

       b、上传文件大小一定,不同量的虚拟用户51Testing软件测试网%}fXY'S:S~S
     
    8O!M9WT8ld#E-o&O233591虚拟用户数 上传文件大小 录制页面 并发用户数 执行时间 思考时间   
    ;jd:]-d7D1U(c23359120       300k        上传页面 随机产生 30分钟     取消思考时间   
    6eaLpBH23359150       300k        上传页面 随机产生 30分钟     取消思考时间   
    'Kv!u.}!UF o23359180       300k        上传页面 随机产生 30分钟     取消思考时间   
    }xb(_^Q|Wf233591100      300k        上传页面 随机产生 30分钟     取消思考时间 

    产品下载51Testing软件测试网 X3s!dy%U:rN&mG
    影响下载性能的主要因素有下载文件的大小和下载的请求数,所以我们就从这两个方面设计用例

    转载请保留:本文出自huruihai的51Testing软件测试博客:http://www.51testing.com/?41972


    h-F xnc8Zf7I/[ hGQ233591   a、虚拟用户数一定,下载不同大小的文件
    #]%q n(K1\5Q#?0D.U233591 
    IC3Uk8j1O{ k)j233591虚拟用户数 下载文件大小 录制页面 并发用户数 执行时间 思考时间   
    'b N7{G~9U^m+^6s23359150        100k       下载页面 随机产生 30分钟 取消思考时间    51Testing软件测试网] fF2eZ~8]
    50        300k       下载页面 随机产生 30分钟 取消思考时间    51Testing软件测试网 |%I1h#k3X8uS
    50        500k       下载页面 随机产生 30分钟 取消思考时间    51Testing软件测试网.V8T A8ubQ
    50        800k       下载页面 随机产生 30分钟 取消思考时间    51Testing软件测试网} K*y-}k`/Xc
    50        1M         下载页面 随机产生 30分钟 取消思考时间 

       b、下载文件大小一定,不同量的虚拟用户51Testing软件测试网B8S Hb/~ c0c
     
    ,[wmP b @J233591虚拟用户数 下载文件大小 录制页面 并发用户数 执行时间 思考时间    51Testing软件测试网1P I%{'{`3?8J
    20         300k      下载页面 随机产生  30分钟    取消思考时间    51Testing软件测试网\ n?6MDj2H4S
    50         300k      下载页面 随机产生  30分钟    取消思考时间    51Testing软件测试网:@o2[1t7j
    80         300k      下载页面 随机产生  30分钟    取消思考时间    51Testing软件测试网B{0z3z T
    100        300k      下载页面 随机产生  30分钟    取消思考时间 
    SY t5y.[2y^)T y233591

  • 安全测试(security esting)

    2008-12-21 19:17:56

    所谓安全性测试(security testing)是有关验证应用程序的安全服务和识别潜在安全性缺陷的过程。

     

    WEB安全性测试
      一个完整的WEB安全性测试可以从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密。参数操作、异常管理、审核和日志记录等几个方面入手。
    1.        安全体系测试
    1)        部署与基础结构
      网络是否提供了安全的通信
      部署拓扑结构是否包括内部的防火墙
      部署拓扑结构中是否包括远程应用程序服务器
      基础结构安全性需求的限制是什么
      目标环境支持怎样的信任级别
    2)        输入验证
    l        如何验证输入
    A.        是否清楚入口点
    B.        是否清楚信任边界
    C.        是否验证Web页输入
    D.        是否对传递到组件或Web服务的参数进行验证
    E.        是否验证从数据库中检索的数据
    F.        是否将方法集中起来
    G.        是否依赖客户端的验证
    H.       应用程序是否易受SQL注入攻击
    I.        应用程序是否易受XSS攻击
    l        如何处理输入
    3)        身份验证
      是否区分公共访问和受限访问
      是否明确服务帐户要求
      如何验证调用者身份
      如何验证数据库的身份
      是否强制试用帐户管理措施
    4)        授权
      如何向最终用户授权
      如何在数据库中授权应用程序
      如何将访问限定于系统级资源
    5)        配置管理
      是否支持远程管理
      是否保证配置存储的安全
      是否隔离管理员特权
    6)        敏感数据
      是否存储机密信息
      如何存储敏感数据
      是否在网络中传递敏感数据
      是否记录敏感数据
    7)        会话管理
      如何交换会话标识符
      是否限制会话生存期
      如何确保会话存储状态的安全
    8)        加密
      为何使用特定的算法
      如何确保加密密钥的安全性
    9)        参数操作
      是否验证所有的输入参数
      是否在参数过程中传递敏感数据
      是否为了安全问题而使用HTTP头数据
    10)        异常管理
      是否使用结构化的异常处理
      是否向客户端公开了太多的信息
    11)        审核和日志记录
      是否明确了要审核的活动
      是否考虑如何流动原始调用这身份
    2.        应用及传输安全
      WEB应用系统的安全性从使用角度可以分为应用级的安全与传输级的安全,安全性测试也可以从这两方面入手。
      应用级的安全测试的主要目的是查找Web系统自身程序设计中存在的安全隐患,主要测试区域如下。
      注册与登陆:现在的Web应用系统基本采用先注册,后登录的方式。
    A.        必须测试有效和无效的用户名和密码
    B.        要注意是否存在大小写敏感,
    C.        可以尝试多少次的限制
    D.        是否可以不登录而直接浏览某个页面等。

    在线超时:Web应用系统是否有超时的限制,也就是说,用户登陆一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
      操作留痕:为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进入了日志文件,是否可追踪。
      备份与恢复:为了防范系统的意外崩溃造成的数据丢失,备份与恢复手段是一个Web系统的必备功能。备份与恢复根据Web系统对安全性的要求可以采用多种手段,如数据库增量备份、数据库完全备份、系统完全备份等。出于更高的安全性要求,某些实时系统经常会采用双机热备或多级热备。除了对于这些备份与恢复方式进行验证测试以外,还要评估这种备份与恢复方式是否满足Web系统的安全性需求。
      传输级的安全测试是考虑到Web系统的传输的特殊性,重点测试数据经客户端传送到服务器端可能存在的安全漏洞,以及服务器防范非法访问的能力。一般测试项目包括以下几个方面。
      HTTPS和SSL测试:默认的情况下,安全HTTP(Soure HTTP)通过安全套接字SSL(Source Socket Layer)协议在端口443上使用普通的HTTP。HTTPS使用的公共密钥的加密长度决定的HTTPS的安全级别,但从某种意义上来说,安全性的保证是以损失性能为代价的。除了还要测试加密是否正确,检查信息的完整性和确认HTTPS的安全级别外,还要注意在此安全级别下,其性能是否达到要求。
      服务器端的脚本漏洞检查:存在于服务器端的脚本常常构成安全漏洞,这些漏洞又往往被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
      防火墙测试:防火墙是一种主要用于防护非法访问的路由器,在Web系统中是很常用的一种安全系统。防火墙测试是一个很大很专业的课题。这里所涉及的只是对防火墙功能、设置进行测试,以判断本Web系统的安全需求。

    另推荐安全性测试工具:
      Watchfire AppScan:商业网页漏洞扫描器(此工具好像被IBM收购了,所以推荐在第一位)
      AppScan按照应用程序开发生命周期进行安全测试,早在开发阶段就进行单元测试和安全保证。Appscan能够扫描多种常见漏洞,例如跨网站脚本、HTTP应答切开、参数篡改、隐藏值篡改、后门/调试选项和缓冲区溢出等等。


      Acunetix Web Vulnerability Scanner:商业漏洞扫描器(目前用的比较多,不过这东东N占内存)
    Acunetix WVS自动检查您的网页程序漏洞,例如SQL注入、跨网站脚本和验证页面弱密码破解。Acunetix WVS有着非常友好的用户界面,还可以生成个性化的网站安全评估报告。

  • IT人士群聚喝酒文化

    2008-12-21 16:27:03

    大家喝的是啤酒,这时你入座了……

    你给自己倒了杯可乐,这叫低配置。

    你给自已倒了杯啤酒,这叫标准配置。

    你给自己倒了杯茶水,这茶的颜色还跟啤酒一样,这叫木马。

    你给自己倒了杯可乐,还滴了几滴醋,不仅颜色跟啤酒一样,而且不冒热气还有泡泡,这叫超级木马。

    你的同事给你倒了杯白酒,这叫推荐配置。




    人到齐了,酒席开始了。

    你先一个人喝了一小口,这叫单元测试。

    你跟旁边的人说哥们咱们随意,这叫交叉测试。

    但是他说不行,这杯要干了,这叫压力测试。

    于是你说那就大家一起来吧,这叫内部测试。

    这个时候 boss 向全场举杯了,这叫公开测试。




    菜过三巡,你就不跟他们客气了。

    你向对面的人敬酒,这叫 p2p。

    你向对面的人敬酒,他回敬你,你又再敬他……,这叫 tcp。

    你向一桌人挨个敬酒,这叫令牌环。

    你说只要是兄弟就干了这杯,这叫广播。

    可是你的上司 jj 听了不高兴了,只有兄弟么,罚酒三杯。这叫炸弹。

    可是你的下级 mm 听了不高兴了,我喝一口,你喝一杯,这叫恶意攻击。

    有一个人过来向这桌敬酒,你说不行你先过了我这关,这叫防火墙。

    你的小弟们过来敬你酒,这叫一对多。

    你是 boss,所有人过来敬你酒,这叫服务器。




    酒是一样的,可是喝法是不同的。

    你喝了一杯,boss 喝了一口,这叫 c#。

    你喝了一杯,mm 喝了一口,这叫 vb。

    你喝了一杯,你大哥喝了半杯,这叫 c++。

    你喝了半杯,你小弟喝了一杯,这叫汇编。

    你喝了一杯,你的搭档也喝了一杯,这叫 c。




    你越喝脸越红,这叫频繁分配释放资源。

    你越喝脸越白,这叫资源不释放。

    你已经醉了,却说我还能喝,叫资源额度不足。

    你明明能喝,却说我已经醉了,叫资源保留。

    你喝一段时间就上厕所,这叫 cache。




    酒过三巡,你也该活动活动了。

    你一桌一桌地走,这叫轮巡。

    你突然看到某一桌的漂亮 mm,走了过去,这叫优先级。

    你去了坐下来就不打算走了,这叫死循环。

    你的老大举杯邀你过去,你只好过去,这叫激活事件。

    你向一桌敬酒,他们说不行不行,我们都喝白的,于是你也喝白的,这叫本地化。

    你向 boss 敬酒,可是 boss 被围了起来,你只能站在外圈,这叫排队。

    你终于到了内圈,小心翼翼地向前一步,这叫访问临界区。

    你拍着 boss 的肩膀说哥们咱们喝一杯,这叫越界。

    你不知喝了几圈了,只会说两个字,干了,这叫 udp。

    可是还有人拿着酒瓶跑过来说,刚才都没跟你喝,这叫丢包。




    喝酒喝到最后的结果都一样。

    你突然跑向厕所,这叫捕获异常。

    你在厕所吐了,反而觉得状态不错,这叫清空内存。

    你在台面上吐了,觉得很惭愧,这叫程序异常。

    你在 boss 面前吐了,觉得很害怕,这叫系统崩溃。

    你吐到了 boss 身上,只能索性晕倒了,这叫硬件休克。

  • linux学习方向和方法浅谈

    2008-12-17 21:59:19

    由于本人是做Linux培训的,所以对于初学Linux系统的朋友接触的比较多,对于初学Linux时遇到的问题了解的也够深刻,以下言论有不周到的地方望朋友们指出:

    首先说明希望学Linux的朋友能够忘记Windows2000,最起码忘记Windows下的盘符、应用程序等基础的东西,其次要深刻明白Linux和Windows是2个不同的系统平台,可以去对比着学习,但不要直接拿Windows那套东西直接套用到Linux学习中。

    学习方向:

    一、桌面系统,就是系统安装好后的视窗系统,在Windows下叫Windows,在Linux下叫 X Windows,其实只是名字不一样而已(看看红旗做的桌面,真是跟Windows要做象有多象,真 晕,这样虽然有助于Linux桌面的使用,但对于Linux系统的推广真是没什么好处)

    很多初学Linux人的安装好Linux后,进入其 X Windows桌面,兴奋不已,以为大功告成,Linux自己会了,这种想法是很可怕的;如果我告诉你Linux的X Windows环境不是Linux 系统,它只是在Linux下面运行的应用程序(类似于在Windows下运行office2000),你是怎么想的?

    Windows下的应用程序几乎是不能直接在Linux系统下安装和使用,学编程的应该明白,所以不要去找Windows工具盘安装你的RAR,QQ,realone等常用工具,你是装不上的。

    你可以尝试去安装你硬件的最新驱动程序,安装Linux下的常用工具,做一些Linux简单的汉化,你就会理解经常在论坛里问这方面问题的朋友的困难了。

    总之,学桌面,不是学Linux系统。

    二、内核源代码学习。跟unix操作系统一样都是用C语言编写。

    去买正版的Linux系统(不是很贵),会附带一张或者2张Linux源代码盘,Linux程序员从这里开始,是起点也是终点。

    三、系统管理

    也就是管理Linux系统环境:SHELL、图形、系统服务、硬件驱动等等。

    系统管理Linux跟UNIX类似(是看了些Unix系统管理才这样说的),基本上都是通过命令----->配置文件----->脚本文件。

    初学这建议从这里开始,不要一味去安装XWindows,这个X Windows环境只要你尽量保持经常使用,相信学会是自然而然的事情.(感觉那真实没什么好学的,只要计算机应用在1年以上的朋友,应该都能在下面操作吧)

    四、应用开发

    在Linux应用上,Linux确实跟它的竞争对手Windows相比还有一定的差距。不过在高端的应用上,Linux的市场是越来越大,如:

    Linux内核开发:

    ----PDA个人掌上电脑;

    ----专用的网络设备;防火墙设备,VPN设备等是用Linux编写的,国产的,现在销售的十分不错;

    ----硬件驱动程序

    Linux网络编程:

    ----php编程,建立动态站点;

    ----jsp编程,

    ----perl,cgi编程;

    Linux系统下数据库的开发:

    ----my sql中小型数据库系统;

    ----oracle数据库

    ----DB2数据库,IBM数据库系统

    五、服务器领域

    一说Linux,很多自然就想到了做服务器,但现在网络服务器方面,Linux的市场占有率确实是第一的;

    Linux服务器领域:

    ----代理服务器,使用的是Linux的iptables功能;

    ----电影服务器,使用的是Linux的samba服务的功能,文件和打印共享服务器

    ----游戏服务器,cs服务器,在Linux系统下使用cs的Linux版本建立的服务器

    ----客户存档服务器,采用的Linux的ftp服务器,常用的有:wu-ftp,pro-ftp软件建立的

    ----www服务器,使用的是Linux下的apache服务器软件

    ----ftp服务器,下载服务器,使用的是Linux下的wu-ftp,pro-ftp,vs-ftp软件

    ----mail服务器,采用的是Linux下的sendmail,qmail软件

    ----dns服务器,使用的是Linux下的bind软件

    ----数据库服务器,使用的是mysql或者oracle软件

    ----防火墙,软件防火墙服务器,使用的是Linux的iptables功能建立的

    ----路由器,软路由器,使用的是Linux下的routed软件建立的

    ----拨号服务器,vpn服务器等等

    六、系统集成

    范围太广,内容太多。相信IBM等建立的Linux研发中心主要就是做这个的。  
     
     
    Linux学习方法论---为您学习Linux指明方向

    学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。
      
         学习效率,掌握程度,熟悉操作是日常学习Linux中的三大法宝。以下是作者学习Linux的一些个人经验,供参考:

    1,应对Linux的发展历史和特点有所了解,Linux是抢占式多任务多用户操作系统,Linux最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具。

    2,熟悉并掌握安装Linux,安装是学习的前提。目前较常见的安装方法有二种:
    硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区,在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。

    3,掌握硬件配置,如显卡,声卡,网卡等,硬件只要不是太老或太新一般都能被支持,作为一名Linux系统管理员建议多阅读有关硬件配置文章,对各种不支持或支持不太好的硬件有深刻的了解。

    4,熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件,永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。

    5,一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通,把用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。

    6,掌握在Linux系统中安装软件,在安装Linux工具盘后大致日常所需的软件都会有,一般网络提供下载的软件都会有安装说明。

    7,熟读Linux系统有关知识,如系统目录树,有关内容可购书阅读或搜索论坛。

    8,清楚了解网络的基础知识,特别是在Linux下应用知识,如接入internet等等。

    9,学习Linux系统在服务中的配置方法及使用方法。Linux在服务器中应用相当广,应对常用的apache,samba,ftp等服务器基本配置清楚了解。[重点,应巩固学习]

    10,了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。

    11,编程学习及开发,Linux是免费,开源的操作系统,并且可开发工具相当多,如果您支持自由软件,一定要同广大热爱自由软件人士一同为其不懈努力。

    12,学习Linux应具备的。[书籍+网络资源]
    这里提五点主要建议:
    一,有疑问前,知识学习前,先用搜索。
    二,熟读写基础知识,学得会不如学得牢。
    三,选择交流平台,如QQ群,网站论坛等。
    四,尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。
    五,写学习日记,这是学习历程的见证,同时我坚持认为是增强学习信念的法宝。

  • c/s和 b/s的比较

    2008-12-17 21:56:22

    C/S和B/S 之比较

     

    c/s是客户机(client)/服务器(server),b/s是浏览器(browser)/服务器。c/s之间通过任意的协议通信,一般要求有特定的客户端。比如QQ就是c/s模式,你的桌面上的QQ就是腾讯公司的特定的客户端,而服务器就是腾讯的服务器。再比如你看的网络电视也是如此,比如你的桌面上的pplive、Tvcoo等,这些软件都是c/s模式的,他们要求在用户有特定的客户端。而B/S模式是靠应用层的http协议进行通信的(当然也要靠底层的好多协议支持),一般不需要特定的客户端,而是需要有统一规范的客户端,那就是你的浏览器!Web页就是B/S 模式,也就是说咱们说的网站就是B/S模式。

     

     

     

    b/s 是 brower/server 就是用浏览器(如ie)为应用程序客户端操作服务器。这样用浏览器来操作简单易用,但是对输入没有很好的验证。逻辑实现不多。本地只是用于获取数据然后大部分验证需要提交服务器来完成。

    c/s 是client/server 客户端软件则是一个拥有很多逻辑验证的软件,本地验证成功后才提交服务器。

    我找到的更详细信息:

    一、什么是C/S和B/S

    要想对“C/S”和“B/S”技术发展变化有所了解,首先必须搞清楚三个问题。

    第一、什么是C/S结构。
    C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

    传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高,效率低。

    第二、什么是B/S结构。
    B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

    以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

    第三、管理软件主流技术。
    管理软件技术的主流技术与管理思想一样,也经历了三个发展时期。首先,界面技术从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的发展时期。其次,今天所有电脑的浏览器界面,不仅直观和易于使用,更主要的是基于浏览器平台的任何应用软件其风格都是一样的,使用人对操作培训的要求不高,而且软件可操作性强,易于识别;再者,平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。

    二、C/S和B/S 之比较

    C/S和B/S是当今世界开发模式技术架构的两大主流技术。C/S是美国 Borland公司最早研发,B/S是美国微软公司研发。目前,这两项技术以被世界各国所掌握,国内公司以C/S和B/S技术开发出产品也很多。这两种技术都有自己一定的市场份额和客户群,各家企业都说自己的管理软件架构技术功能强大、先进、方便,都能举出各自的客户群体,都有一大群文人墨客为自己摇旗呐喊,广告满天飞,可谓仁者见仁,智者见智。

    1、C/S架构软件的优势与劣势

    (1)、应用服务器运行数据负荷较轻。
    最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。

    (2)、数据的储存管理功能较为透明。
    在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。

    (3)、C/S架构的劣势是高昂的维护成本且投资大。
    首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。

    其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。

    2、B/S架构软件的优势与劣势

    (1)、维护和升级方式简单。

    目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。

    (2)、成本降低,选择更多。

    大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。

    比如说很多人每天上“网易”(原文为新浪)网,只要安装了浏览器就可以了,并不需要了解“网易”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。

    (3)、应用服务器运行数据负荷较重。

    由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。


    3,C/S 与 B/S 区别

    Client/Server是建立在局域网的基础上的,Browser/Server是建立在广域网的基础上的。

    (1)、硬件环境不同:

    C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务。
    B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例如电话上网, 租用设备, 信息自己管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。

    (2)、对安全要求不同

    C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强。 一般高度机密的信息系统采用C/S 结构适宜,可以通过B/S发布部分可公开信息。
    B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群。

    (3)、对程序架构不同

    C/S 程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。
    B/S 对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。比C/S有更高的要求,B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持网络的构件搭建的系统。SUN和IBM推的JavaBean构件技术等,使B/S更加成熟。

    (4)、软件重用不同

    C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好。
    B/S 对的多重结构,要求构件相对独立的功能。 能够相对较好的重用。就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。

    (5)、系统维护不同

    系统维护是软件生存周期中,开销大,相当重要
    C/S 程序由于整体性,必须整体考察,处理出现的问题以及系统升级难, 可能是再做一个全新的系统。
    B/S 构件组成方面构件个别的更换,实现系统的无缝升级。 系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。

    (6)、处理问题不同

    C/S 程序可以处理用户面固定,并且在相同区域, 安全要求高的需求,与操作系统相关, 应该都是相同的系统。
    B/S 建立在广域网上, 面向不同的用户群,分散地域, 这是C/S无法作到的,与操作系统平台关系最小。

    (7)、用户接口不同

    C/S 多是建立在Window平台上,表现方法有限,对程序员普遍要求较高。
    B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流, 并且大部分难度减低,降低开发成本。

    (8)、信息流不同

    C/S 程序一般是典型的中央集权的机械式处理,交互性相对低。
    B/S 信息流向可变化, B-B、 B-C、 B-G等信息流向的变化, 更象交易中心
    回答者:tfrist - 秀才 二级 10-27 10:36
    其他回答共 1 条
    第一、什么是C/S结构。

    C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系
    统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

    传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高,效率低。



    第二、什么是B/S结构。

    B/S(Browser/Server)结构即浏览器和服务器结构。它是随着
    Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端
    (Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

    以目前的技术看,局域网建立B/S结构的网络应
    用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地
    点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服
    务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

    第三、管理软件主流技术。

    管理软件技术的主流技术与管理思想一样,也经历了三个发展时期。首先,界面技术从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的发展时期。其次,今天所有电脑的
    浏览器界面,不仅直观和易于使用,更主要的是基于浏览器平台的任何应用软件其风格都是一样的,使用人对操作培训的要求不高,而且软件可操作性强,易于识
    别;再者,平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。



    二、C/S和B/S之比较

    C/S和B/S是当今世界开发模式技术架构的两大主流技术。C/S是美国Borland公司
    最早研发,B/S是美国微软公司研发。目前,这两项技术以被世界各国所掌握,国内公司以C/S和B/S技术开发出产品也很多。这两种技术都有自己一定的市
    场份额和客户群,各家企业都说自己的管理软件架构技术功能强大、先进、方便,都能举出各自的客户群体,都有一大群文人墨客为自己摇旗呐喊,广告满天飞,可
    谓仁者见仁,智者见智。

    1、C/S架构软件的优势与劣势

    (1)、应用服务器运行数据负荷较轻。

    最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。

    (2)、数据的储存管理功能较为透明。

    在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。

    (3)、C/S架构的劣势是高昂的维护成本且投资大。

    首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。

    其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。



    2、B/S架构软件的优势与劣势

    (1)、维护和升级方式简单。

    目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。

    (2)、成本降低,选择更多。
    大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。

    比如说很多人每天上“网易”(原文为新浪)网,只要安装了浏览器就可以了,并不需要了解“网易”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。

    (3)、应用服务器运行数据负荷较重。

    由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。

    3,C/S与B/S区别

    Client/Server是建立在局域网的基础上的,Browser/Server是建立在广域网的基础上的。

    (1)、硬件环境不同:C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。



    B/S建立在广域网之上的,不必是专门的网络硬件环境,例如电话上网,租用设备,信息自己管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。



    (2)、对安全要求不同

    C/S一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜,可以通过B/S发布部分可公开信息。



    B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群。

    (3)、对程序架构不同

    C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。



    B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。比C/S有更高的要求,B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统。SUN和IBM推的JavaBean构件技术等,使B/S更加成熟。



    (4)、软件重用不同

    C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。

    B/S对的多重结构,要求构件相对独立的功能。能够相对较好的重用。就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。

    (5)、系统维护不同

    系统维护是软件生存周期中,开销大,相当重要

    C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级难,可能是再做一个全新的系统。

    B/S构件组成方面构件个别的更换,实现系统的无缝升级。系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。

    (6)、处理问题不同

    C/S程序可以处理用户面固定,并且在相同区域,安全要求高的需求,与操作系统相关,应该都是相同的系统。

    B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的,与操作系统平台关系最小。

    (7)、用户接口不同

    C/S多是建立在Window平台上,表现方法有限,对程序员普遍要求较高。

    B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流,并且大部分难度减低,降低开发成本。

    (8)、信息流不同

    C/S程序一般是典型的中央集权的机械式处理,交互性相对低。

    B/S信息流向可变化,B-B、B-C、B-G等信息流向的变化,更象交易中心。

  • QTP 视频

    2008-12-13 19:35:07

  • 输入框测试考虑侧重点

    2008-12-13 16:10:12

    测试重点:

      一、普通输入框字段校验测试

      二、邮箱输入框字段校验测试

      三、验证码输入框字段校验测试(假设是4位数字)

      四、手机号码输入框字段校验测试(假设限制16个字符,只能输入数字)

      异常情况包括如下:

      一、普通输入框字段校验测试

      01)不输入,空内容

      02)输入1个字符

      03)若输入框有长度限制为N个字符,测试N-1个字符,N个字符,N+1个字符,N+N+...(超长)这几个边界值

      还需要测试下通过复制大于长度的值粘贴进去看是否能输入

      04)输入半角/全角空格

      05)输入半角/全角,大写/小写英文字符

      06)输入半角/全角数字

      07)输入简体中文字符(默认全角)

      08)输入繁体中文字符(默认全角)

      09)输入半角特殊字符:!@#¥%……&*()

      10)输入全角特殊字符:!@#$%^&*()

      11)输入html字符保持:&nbsp空格的转义字符;<scrīpt></scrīpt>;<br>;<tr>;<td>;< /tr>;</td>;</html>;</body>;</table>

      12)输入Javascrīpt函数:<b>Hello</b>,alert("hello")

      13)在需要密码验证,或者需要二次输入确认的地方,通过复制粘贴第一次的输入内容应该是不能通过的

      14)高危词,违禁词,敏感词

      15)输入正常内容的前,后,中间加入多个空格,看保存时是否会过滤掉或过滤为一个,是否会引起保存问题,是否算入长度计算

      16)输入日文字符

      二、邮箱输入框字段校验测试

      01)输入合理的英文及数字字符组成的正确格式

      02)格式正确的前提下输入第一部分中的异常字段校验

      03)输入无@的格式,如:ab.com

      04)输入@前无内容的格式,如@b.com

      05)输入@后无内容的格式,如a@

      06)输入@前后均没有内容的格式,如@

      07)输入没有域名的格式,如a@b.,a@b

      08)输入email中有多个@的,如a@@b.com,a@b@c.d

      09)输入@后面直接跟域名的,如a@.com

      10)输入@后面有多个分隔符的,如a@b.c.d,a@b.c.d.e

      11)输入@前面有分隔符的情况,如a.b@c.d,a.b.c@d.e,a.b@c,a.b.c@d

      三、验证码输入框字段校验测试(假设是4位数字)

      01)不输入,空内容

      02)空格输入

      03)输入空格+正确验证码,空格出现在开头,中间,结尾均需要测试

      04)输入4位其他非数字内容

      05)输入第一部分中的异常字段校验

      06)输入前3位或后3位验证码正确数字

      07)输入4位正确验证码+其他数字

      四、手机号码输入框字段校验测试(假设限制16个字符,只能输入数字)

      01)不输入,空内容

      02)空格输入

      03)输入空格+数字,空格出现在开头,中间,结尾均需要测试

      04)输入其他非数字内容

      05)输入第一部分中的异常字段校验

      06)输入1个数字

      07)输入16位数字

      08)输入超过17位数字

      09)输入超长全数字测试

      10)输入空格+数字,空格出现在开头,中间,结尾均需要测试

  • OTP的使用技巧

    2008-12-13 15:13:36

    这是从兰兰的论坛上找来的,这些内容对我有很大的帮助,所以我就把它粘来了,以备不时之需。。 

    1.runaction 后面能不能接变量(动态调用action,所以从数据库取数据做action名字了,但是调用总是找不到)? 

      A:脚本中原有RunAction "testbase [case1]", oneIteration

        把引号中的内容放到Global表中的第22行,然后将代码修改为:

        datatable.getsheet("Global")

        datatable.setcurrentrow(22) 

        strLogin=DataTable("ActionName","Global")

        RunAction strLogin, oneIteration   

        help中也有相关帮助

        :

        Syntax

        RunAction ActionName, [IterationMode , IterationRange , Parameters]

        ActionName : String : The name of the action  

    2.QTP8.2 中调用VB函数的问题(VBscrīpt写了一些测试脚本需要的几个通用函数,有没有办法可以用类似include的方式进行调用,而不需要每次都把这些函数Copy到新的脚本中)?

      A:程序开头加上ExecuteFile "..\..\..\project\DeVariable.vbs" 

    3.QTP 如何做回归测试(300多个TestCaseTD是否可以管理)

      A:TD可以实现,可以生成测试集,一个测试集可以包含若干个测试脚本

        QTP8.2本身提供一个工具Test Batch Runner但是运行完没有报告。

        MI有另一个工具叫MTMmultitestmanager 

     

    5.QTP中如何设置使用别的浏览器(XP系统,用IE访问程序时,每次总提示屏蔽安装ActiveX插件,需要手动安装.但把这个过程录制到QTP后,回放一次是成功的。当我给某个输入框参数化了好多数据后,回放过程中,某些就会失败.

        可能有两个方面可以解决这问题1、每个动作设置延迟时间 2、设置为用别的浏览器。)

        (失败的提示信息是  object not visible)

      A:1.延迟可用WAIT XX单位是秒)

        2.可以安装插件添加新的浏览器

           SystemUtil.Run "file” "params" "dir" "op'' "mode"

           QTP运行可执行文件的方法及其参数

         ps: 建议是用IE浏览器,或者IE内核浏览器做测试  

    6.checkpoint 检查网页,是否能实现只要网页出现乱码就返回错误报告?

      A:Text not displayed能解决问题

        关于 Text Checkpoint 的总结。

        1Text Checkpoint 的检查部分分为三个部分。Checked Text Text Before Text After。在默认的情况下,Checked Text执行的是精确检查,其余两个部分执行的是模糊检查。Text Before(After)检查的内容可以比实际的内容少。但是不能有和是实际内容不相符的地方,否则就失败。

        2) Exact match选项。如果选择了这个选项,三部分完全都进行精确检查。个人觉得和只检查checked Text部分没有区别。

        3) Text not displayed。这个选项本质上就是一个结果取反的过程。就是把检查的结果给反过来,pass变成FailFail变成pass。我觉得这样就很容易理解。 

    7.WSH 的应用方法

      A:WSH 实际上是一个脚本语言的运行环境,它之所以具备强大的功能,是在于其充分挖掘了脚本语言的潜力。因此,如果抛开脚本语言而空谈 WSH ,那实际上就没有了意义。而如果再展开来讲述脚本语言,显然就离开了今天的主题。 

    在这种情况下,只好采取一种折衷的方法:给大家推荐几个脚本文件利用 WSH 执行任务的实例,希望大家能通过这些例子对 WSH 的使用有一个初步的认识。 

      脚本文件的编写十分方便,你可以选用任意一个文字编辑软件进行编写,编写完成后,只需将它保存为 WSH 所支持的文件名就可以了(如.js 文件和.vbs 文件)。最常用的就是记事本编辑器,下面的实例都是以它作为工具编写的。  

    打开记事本编辑器,在上面编写如下内容:

      Wscrīpt.Echo("走近 WSH")

      将它保存为以 .vbs .js 为后缀名(千万不要写成了 .txt)的文件并退出记事本。双击执行这个文件。

      这一次,我们要利用 WSH 完成一次创建十个文件夹的工作。代码如下:

      dim objdir

      set ōbjdir=wscrīpt.createobject("scrīpting.filesystemobject")

      for k=1 to 10

      anewfolder="c:\chapter" & k

      objdir.createfolder(anewfolder)

      next  

    同样,将它存为 .vbs 文件并退出。运行后,我们会发现,C 盘根目录下一次性多出了十个新文件夹。 

        最后,再举一个在服务器上的运用。下面的代码将帮助你重新启动指定的 IIS 服务:  ' define a constant for stopped services

      Const ADS_SERVICE_STOPPED = 1  

    ' get an ADSI object for a computer

      Set ōbjComputer = GetObject("WinNT://MYCOMPUTER,computer") 

    ' get an object for a service

      Set ōbjService = objComputer.GetObject("Service","MYSERVICE")  

    ' check to see if the service is stopped

      If (objService.Status = ADS_SERVICE_STOPPED) Then  

    ' if the service is stopped, then start it

      objService.Start  

      End If  

    将它以 startsvc.vbs 为名保存在 C: 盘根目录。并通过如下命令执行:Cscrīpt C:\STARTSVC.VBS。运行后,经你指定的 IIS 服务项将被重新开启。 

    其实,在 Windows samples 目录下,有个 WSH 文件夹,那里面有不少很具代表性的 .vbs . js 脚本文件。  

    此外,利用 WSH 还可以自己编写脚本文件来提高网络管理方面的效率。  

    8. EXCEL 中导出数据进行测试  

    datatable.AddSheet("51sheet")

    datatable.ImportSheet "f:\test.xls","testsheet","51sheet" 

    Dim i,RowCount ' 定义两个变量

    i=0

    RowCount=datatable.GetSheet("51sheet").GetRowCount ' 设置 RowCount 等于 51sheet 中的行数。

    msgbox RowCount

    Do while i<rowcount

    i=i+1 ' 第一次进入循环,执行这句后, i=1

    'datatable.getsheet("51sheet").setcurrentrow(i)   这句话被我注释掉了,正确的写法应该是下面这样,分开写。  

    datatable.getsheet("51sheet")

    datatable.setcurrentrow(i) 

    ' 执行过上面两句后, CurrentRow 是第一行。  

    tempData=DataTable.GetSheet("51sheet").GetParameter("Name").Value                 

    ' 现在,我们调用 msgbox 看看下面这种调用方法得到的是什么值?没错,是第一行的值,下一次循环呢?

    ' 得到的是第二行的值么?

    msgbox "GetParameter-Name:"&tempData ' 这里弹出我们要看的值。

    ' 下面我们用另外一种方法来得到。

    msgbox "GetParameter-i:"&DataTable.GetSheet("51sheet").GetParameter(1).Value ' 这里我用 GetParameter(1) 去得到 sheet 中第一列的值。

    loop  

    9.关于 dtGlobalsheet dtLocalsheet 

    1) dtGlobalsheet 只有一个,它的 index 值比较特殊,它有两个 index 值,一个是 1 还有一个是内置的默认的 1000

    你可以用 1 或者 1000 去引用它都是正确的。当然了,如果你用 dtGlobalsheet 来引用它也是正确的。这个 sheet Name 叫做 "Global" 。注意: SheetName 是区分大小写的。

    2) dtLocalsheet 可以用 index:1001 来引用,当然,也可以用 2 来引用。至于其它自定义的 sheet 嘛,你就只能用 index:3 来引用了。

    它没有内置的默认的类似前两个那样的 index 值。

    3) datatable 这个对象只有一个。就是所有 sheet 的集合。或许你把它理解为 excel 文件比较好。

    dtsheet 呢?就是其中的每个 sheet 。所不同的就是 MI 为他们做了一些默认值。在我们的应用中,可能会有多个 action, 如: actiion1,actiion2,actiion3

    这些 action 也分别对应有各自默认的 LoaclSheet. 即: actiion1 actiion2 actiion3   

    如果每个 action 中,我们都只用到一个 sheet ,那就好办了,在每个 action 中都可以用 localsheet 来引用,但是如果我们有两个及两个以上的 sheet. 那么就比较容易乱套了。 

    10.移动当前位置的行  

    For i=1  to 3

    datatable.getsheet("Global")

    datatable.setcurrentrow(i)

    DataTable("C","Global") = DataTable("nodename","Global") ‘把表Global中的nodename字段中的内容取出来。

    Next 

    11.如何能记录到页面的校验码?(Output value能不能得到web页面的校验码,一般的校验码是由图片随即生成的 ,用QTP怎么录脚本在登陆前得到校验码并输入到校验码一栏)

       A:1)一个很简单的方法:测试时叫开发屏蔽掉检验码的功能后,再录制脚本。检验码的功能可以手工很简单测试出来。

         2)想得到图片的校验码,唯一的方法就是跟程序员拿程序,然后自己在脚本里面写FUCNTION!

            其它就要手动输入了

    3. 自动测试实施计划

       1)分析实施自动化测试可能存在的风险:就是决定是否实施, 用成本 时间 效果 。。

       2)制定实施的时机:也就是在什么阶段

       3)研究所要测试的功能 性能

       4)分析在测试中可能遇到的问题 和困难

       5)预估所需要的人时和相应的硬件

       7)确定负责人员和相关测试人员

       6)制定详细的测试计划 方案

       7)最后是执行计划  

    14. 一个Action里如何调用在另一个Action中定义的函数、过程(或变量、常量)

       例如:

       -----------------------------------

       'Action_A

         Public strURL   

            ...... ......

        Function QueryList()

            ...... ......

            ...... ...... 

        End Function

       ------------------------------------

       'Action_B

       '如何调用 QueryList函数和strURL

       A1)可以把这些变量和Function放在vbs文件作为resource文件共享,在每个Action中添加该文件.    

    如果function中出现控件调用,那么必须确保该控件在相应的Actionobject repository中是存在的.

       2)定义一个可被调用的ACTION里面唯一的放一个FUNCTION 

    15.如何管理QTP的源代码?(QTP生成的源代码比较多,而且和环境控件都有关,假如需要多人同时开发, 请问如何管理源代码?)

       A: 一个是代码你可以通过vss,cvs等来进行管理

         一个是通过td或者qc的基于用例的代码管理 

     

    其实第一种方法是基于版本控制来进行的,第二种方法是基于用例管理进行的

         角度不同,管理方法也不同,不过团队协作需要的大家分工明确,进度控制。代码管理可以借鉴开发的方法。  

    16: 脚本不能回放,IE中的AtiveX设置有问题??

       A: TOOL---OPTIONS----Ative screen

         然后点开advanced..,LOAD  ACTIVEX CONTROLS打勾

         TOOL---OPTIONS----Ative screen

         然后点开advanced..,run scrīpts-->disabled!  

    17 .如何参数化link 

    Browser("Browser").Page("Page").Sync

    Browser("Browser").Navigate "http://www.51testing.com/cgi-bin/index.php"

    Browser("Browser").Page("51Testing 软件测试论坛---软件测试,软件质量工程师").Sync 

    Set tags=Browser("Browser").Page("51Testing软件测试论坛---软件测试,软件质量工程师").Object.links

    Dim i,j, arr()

    i=0

    For Each element in tags

        If Ucase(element.tagname)="A" and left(element.InnerText,1)="[" Then

                            ReDim Preserve arr(i+1)

                        arr(i)=element.InnerText

        i=i+1

            end if

    Next 

    For j=0 to i

                            Browser("Browser").Page("51Testing软件测试论坛---软件测试,软件质量工程师").Link("[ 版主讨论区 ]").SetTOProperty "Text",arr(j)

                Browser("Browser").Page("51Testing软件测试论坛---软件测试,软件质量工程师").Link("[ 版主讨论区 ]").Click

                            Browser("Browser").Back

    Next  

    这段代码先是打开一个空的页面,然后输入url.

    到达论坛首页。 

    然后得到所有版面的名称,也就是link的名称。

    存到数组里面。

    然后使用SetTOProperty更换录制时候录下的link的属性。

    这时候再click  

    18. QTP Debug状态,Export View 区域不能写入任何东西  

    A: 如果你的目的是在debug过程中修改已执行过的命令,可以在Debug viewCommand中执行命令,如重新执行已经执行过的命令,修改变量的值等等。 

    如:Window("Flight Reservation").WinEdit("Name:").Set "51testing"

    已经执行,如果现在想修改“51testing”为“testing”,可以在command中执行

    Window("Flight Reservation").WinEdit("Name:").Set "testing"  

    19 动态变化值如何获取 

    A:VAL=Browser("欢迎使用我的工作台").Page("欢迎使用我的工作台").Frame("managePlace_7").WebRadioGroup("userAccountId_0").GetROProperty("Value")

    Browser("欢迎使用我的工作台").Page("欢迎使用我的工作台").Frame("managePlace_7").WebRadioGroup("userAccountId_0").select val 

    20 .如何一一获得Table 某栏 link text?

    A:通过上面link 的学习. 我终于融会贯通,完成了我的问题: 与大家共享:

    //////////////////////////////////////////////////////////////////////////////////////

    Browser("Login").Page("Page").Frame("contents").ViewLink("treeview").Image("Tplus").Click

    Browser("Login").Page("Page").Frame("contents").ViewLink("treeview").Image("Tplus_2").Click

    Browser("Login").Page("Page").Frame("contents").ViewLink("treeview").Link("开课设置").Click

    Browser("Login").Page("Page").Frame("main").WebList("drpStatus").Select "任意"

    Browser("Login").Page("Page").Frame("main").WebButton("查找").Click

    Browser("Login").Page("Page").Sync

     

    Dim finded,findCode,Nowout

    'define a constrat for find

    findCode = 110901  

    finded = false

     

    Function MaxPage(pageString)

       'msgbox pageString

       Dim ilen,i,j

       ilen = len(pageString)

       i=ilen

       While i>0

            j = mid(pageString,i,1)

               'msgbox j

               If instr("123456789",j)>0 Then

               MaxPage = j

                       'msgbox MaxPage

                       Exit function

               End If

               i=i-1

       Wend

    End Function

     

     

    Dim trowcount,maxp

    trowcount = Browser("Login").Page("Page").Frame("main_8").WebTable("开课代码").RowCount

    msgbox "Rowcount: "&trowcount

    Nowout = Browser("Login").Page("Page").Frame("main_8").WebTable("开课代码").GetCellData(trowcount,1)

    Nowout = trim(Nowout)

    maxp = MaxPage(Nowout)

    msgbox "max page: "& maxp

     

    Dim nowPage,checkid

    For nowPage = 1 to maxp

       If  finded Then

               Exit for

       End If

      ' link to the 当前所需page

      If nowpage>1 Then

        Browser("Login").Page("Page").Frame("main_8").Link("[2]").SetTOProperty "Text","["&nowpage&"]"

        Browser("Login").Page("Page").Frame("main_8").Link("[2]").Click

        Browser("Login").Page("Page").Sync

       end if

     

      ' Get the rowcount of table in now page

       trowcount = Browser("Login").Page("Page").Frame("main_8").WebTable("开课代码").RowCount

       msgbox "Rowcount: "&trowcount

     

      'link every record in the table of the page

       for i = 2 to trowcount  - 2

            Nowout = Browser

数据统计

  • 访问量: 5831
  • 日志数: 13
  • 建立时间: 2008-12-13
  • 更新时间: 2009-01-04

RSS订阅

Open Toolbar