软件测试小黑指北-知识点复习

======================软件测试知识点复习========================

 

 

 

请认真思考以下问题:

 

  1. 什么是软件?.............................................................................................. 2
  2. 什么是软件缺陷?....................................................................................... 2
  3. 测试的目的是什么? ................................................................................... 2
  4. 你知道的软件测试的原则有哪些? .............................................................. 2
  5. 软件测试的对象都有哪些?......................................................................... 3
  6. 你所知道的测试模型有哪些? ..................................................................... 3
  7. 你所了解的测试充分性准则有哪些?........................................................... 6
  8. 测试生命周期.............................................................................................. 7
  9. 什么是黑盒测试?....................................................................................... 8
  10. 黑盒测试方法包括哪些? ............................................................................ 8
  11. 什么是白盒测试?..................................................................................... 10
  12. 什么是灰盒测试?..................................................................................... 10
  13. 静态测试和动态测试 ................................................................................. 10
  14. 单元测试................................................................................................... 10
  15. 集成测试....................................................................................................11
  16. 系统测试....................................................................................................11
  17. 验收测试....................................................................................................11
  18. α测试和β测试 .........................................................................................11
  19. 回归测试....................................................................................................11
  20. 功能测试包括哪些? ................................................................................. 12
  21. 性能测试分为哪几种?.............................................................................. 12
  22. 软件缺陷的严重性和优先级....................................................................... 12
  23. 23. bug 的生命周期 ......................................................................................... 13
  24. 24. bug 的处理流程 ......................................................................................... 13
  25. Web 测试 .................................................................................................. 14
  26. SQA 与测试 .............................................................................................. 14
  27. 准确与精确 ............................................................................................... 14
  28. C/S 结构与 B/S 结构的特点分析 ................................................................ 15
  29. 驱动模块与桩模块..................................................................................... 16

===========================参考答案==================================

什么是软件?

软件的定义:软件是能国完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加 上描述程序的操作和使用的文档。

软件 = 程序 + 文档

程序定义:程序是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的语句序列。

程序=算法+数据结构 

文档的定义:文档是软件开发活动的记录,主要供人们阅读,既可用于专业人员和用户之间的通信和交流,也可以用于软件开发过程的管理和运行阶段的维护。

(需求分析文档、业务理解文档、概要设计、详细设计包括数据库设计)  用户操作手册

什么是软件缺陷?

缺陷的定义:软件缺陷这一概念用来描述各种软件错误,是所有软件错误的统称。

    把符合下列 5 种特征之一的软件错误认为是软件缺陷:

l  软件未达到软件产品需求说明书中指明的需求;

l  软件出现了软件产品需求说明书中指明不会出现的错误;

l  软件功能超出了软件产品需求说明书中指明的范围;

l  软件未达到软件产品需求说明书中虽未指明但应达到的要求;

l  测试人员认为难以理解、不易使用、运行速度缓慢或者最终用户认为不好的问题。

测试的目的是什么?

想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。

测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。

实施测试收集到的测试结果数据为可靠性分析提供了依据。

测试不能表明软件中不存在错误,它只能说明软件中存在错误。

你知道的软件测试的原则有哪些?

l  应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。

l  测试用例应由测试输入数据和对应的预期输出结果这两部分组成。

l  程序员应避免只检查自己的程序。

l  在设计测试用例时,应包括合理的输入条件和不合理的输入条件。

l  充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。

l  严格执行测试计划,排除测试的随意性。

l  应当对每一个测试结果做全面检查。

l  妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。

软件测试的对象都有哪些?

软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。

需求分析、概要分析、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计说明以及源程序, 都应成为软件测试的对象。

你所知道的测试模型有哪些?

V  模型 、 W 模型 、 H 模型 、X 模型 、前置模型 

l  V 模型

在软件测试方面,V 模型是最广为人知的模型,尽管很多富有实际经验的测试人员还是不太熟悉 V 模型,或者其它的模型。V 模型已存在了很长时间,和瀑布开发模型有着一些共同的特性,由此也和瀑布模型一样地受到了批评和质疑。V 模型中的过程从左到右,描述了基本的开发过程和测试行为。V 模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。

    

 

 

 

      

V 模型问题: 

○1 测试是开发之后的一个阶段。 

○2 测试的对象就是程序本身。 

○3 实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现。 

○4 整个软件产品的过程质量保证完全依赖于开发人员的能力和对工作的责任心,而且上一步的结果必须是充分和正确的,如果任何一个环节出了问题,则必将严重的影响整个工程的质量和预期进度 

l  W 模型

 

 

 

 相对于 V 模型,W 模型增加了软件各开发阶段中应同步进行的验证和确认活动。W 模型由两个 V 字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。 W 模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。

W        模型有利于尽早地全面的发现问题。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,这将显著减少总体测试时间,加快项目进度。 但 W 模型也存在局限性。在 W 模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。这样就无法支持迭代的开发模型。

对于当前软件开发复杂多变的情况,W 模型并不能解除测试管理面临着困惑。

l  H 模型

H模型中, 软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。软件测试可以尽早的进行,并且可以根据被测物的不同而分层次进行。

 

 

 

 

这个示意图演示了在整个生产周期中某个层次上的一次测试“微循环”。图中标注的其它流程可以是任意的开发流程,例如设计流程或者编码流程。也就是说, 只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了。

H 模型揭示了一个原理:软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。H 模型指出软件测试要尽早准备, 尽早执行。不同的测试活动可以是按照某个次序先后进行的,但也可能是反复的,只要某个测试达到准备就绪点,测试执行活动就可以开展。

l  X 模型

X 模型也是对 V模型的改进,X 模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序。

           

 

 

 

X 模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终成为可执行的程序,然后再对这些可执行程序进行测试。己通过集成测试的成品可以进行封装并提交给用户,也可以作为更大规模和范围内集成的一部分。多根并行的曲线表示变更可以在各个部分发生。由图中可见, X 模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。但这样可能对测试造成人力、物力和财力的浪费,对测试员的熟练程度要求比较高。

l  前置模型前置测试模型则体现了开发与测试的结合,要求对每一个交付内容进行测试。前置测试模型是一个将测试和开发紧密结合的模型,此模型将开发和测试的生命周期整合在一起,随项目开发生命周期从开始到结束每个关键行为。

 

 

 

 

 

前置测试模型体现了以下的要点:

○1 开发和测试相结合

○2 对每一个交付内容进行测试

○3 在设计阶段进行计划和测试设计

○4 测试和开发结合在一起

○5 让验收测试和技术测试保持相互独立

○6 反复交替的开发和测试

○7 发现内在的价值

你所了解的测试充分性准则有哪些?

l  空测试对任何软件都是不充分的。空测试用例集合意味着软件没有测试。

l  有限性:对任何软件都存在有限的充分测试集合。因为软件测试必须的有限时间内完成。

l  单调性:如果一个软件系统在一个测试用例集合上是的测试是充分的,那些,再多测试一些用例也应是充分的。

l  非复合性:即使对软件所有成分都作了充分的测试,也不表明整个软件的测试已经充分了。

l  非分解性:即使对软件整体做了充分的测试,也不表明软件系统中各个成分都已得到充分的测试。

l  复杂性:软件越复杂,需要的测试用例就越多。

l  回报递减率:测试得越多,进一步测试所能得到的充分性增长就越少。

l  软件测试的充分性与软件需求和软件实现有关.

测试生命周期

测试计划、测试设计、测试开发、测试执行、测试评估、测试维护

l  测试计划

测试计划就是定义一个测试项目的过程,以便能够正确的度量和控制测试。

完整测试计划应包含的内容: 

对测试范围的界定 、风险的确定 、资源的规划 、时间表的制定  

l  测试设计 

   测试用例的选择

书写测试设计,其步骤如下:

生成测试需求报告

   ↓

 指定测试过程

    ↓    指定测试用例(可选)

    ↓

    回顾测试覆盖率

l  测试开发输入:被测软件、基于测试需求的测试设计

输出:测试过程和测试用例目标:

  ○1 创建可以重用的测试过程和测试用例

  ○2 维护测试过程、测试用例与相关测试需求的一一对应。

测试开发的步骤:

○1 设立开发环境

○2 录制和回放原型过程

○3 录制测试过程和测试用例

○4 测试和调试测试过程

○5 修改测试过程(可选)

○6 建立外部数据集合

如果测试过程是用来循环一套输入和输出数据,就需要建立数据集合。

○7 重复测试和调试测试过程,回到○4 

l  测试执行        具体步骤:

      ○1 建立测试系统

    ○2 准备测试过程

    ○3 运行初始化过程

    ○4 执行测试

    ○5 从终止的测试恢复

    ○6 验证预期结果

    ○7 调查突发结果

    ○8 记录缺陷日记 

l  测试评估

测试评估的目标 ○1 量化测试进程

○2 生成缺陷和测试覆盖率的总结报告       具体步骤:

      ○1 回顾测试日记

○2 评估测试需求的覆盖率

○3 分析缺陷

○4 决定是否达到完成测试的标准,没有满足标准时        再测试

       降低标准

       确定软件的一个满足标准的子集,看是否可以发布。 

l  测试维护

对测试用例库,测试脚本,bug 库等进行维护,保证延续性等  什么是黑盒测试?

这种方法是把测试对象看做一个黑盒,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明。

黑盒测试叫做功能测试或数据驱动测试。

一种特殊的黑盒测试叫做接口测试,它不管程序的需求和实现细节,仅依据程序与其外部环境的接口来选择测试数据。

黑盒测试方法是在程序接口上进行测试,主要上为了发现以下错误:

l  是否有不正确或遗漏了的功能?

l  在接口上,输入能否正确地接受?能否输出正确的结果?

l  是否有数据结构错误或外部信息(例如数据文件)访问错误?

l  性能上十分能够满足要求?

l  是否有初始化或终止性错误?黑盒测试方法包括哪些?

等价类划分、因果图、正交实验设计法、边值分析、判定表驱动法、功能测试等。

l  等价类划分  等价类划分是一种典型的黑盒测试方法,用这一方法设计测试用例可以不用考虑程序的内部结构,只以对程序的要求和说明,即需求规格说明书为依据,仔细分析和推敲说明书的各项需求,特别是功能需求,把说明中对输入的要求和输出的要求区别开来并加以分解。 

由于穷举测试的数量太大,以致于无法实际完成,促使我们在大量的可能数据中选取其中的一部分作为测试用例。例如,在不了解等价分配技术的前提下,测试了 1+1、1+2、

1+3和1+4之后,还有必要测试1+5和1+6吗?能否放心地认为它们正确吗?那么1+999… (可以输入的最大数值)呢?这个测试用例是否与其他用例不同?是否属于另外一种类别?另外一个等价区间?这是软件测试员必须考虑到的问题。 

等价类别或者等价区间是指测试相同目标或者暴露相同软件缺陷的一组测试案例。

1+999…和 1+13 有什么区别呢?至于 1+13,就像一个普通的加法,与 1+5 或者 1+392 没有什么两样,而 1+999…则属于邻界的极端情况。假如输入最大允许数值,然后加 1,就会出现问题——也许就是软件的缺陷。这个极端案例属于一个单独的区间,与常规数字的普通区间不同。 

等价类划分的办法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据当作测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能出现同样的错误。使用这一方法设计测试用例,首先必须在分析需求规格说明的基础上划分等价类,列出等价类表。 

在考虑等价类划分时,先从程序的功能说明中找出每个输入条件,然后为每个输入条件划分两个或更多个等价类。等价类可分两种情况:有效等价类和无效等价类。

有效等价类是指对程序的规格说明是有意义的、合理的输人数据所构成的集合;

无效等价类是指对程序的规格说明是不合理的或无意义的输人数据所构成的集合。 

l 边界值分析  软件测试常用的一个方法是把测试工作按同样的形式划分。对数据进行软件测试,就是检查用户输入的信息、返回结果以及中间计算结果是否正确。 

即使是最简单的程序,要处理的数据也可能数量极大。还记得在计算器上简单加法的全部可能性吗?再想一想字处理程序、导航系统和证券交易程序。使这些数据得以测试的技巧(如果称得上的话)是,根据下列主要原则进行等价分配,以合理的方式减少测试案列:边界条件、次边界条件、空值和无效数据。 

边界值分析(Boundary Value Analysis,BVA)是一种补充等价划分的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类边界的测试用例。实践证明,在设计测试用例时,对边界附近的处理必须给予足够的重视,为检验边界附近的处理专门设计测试用例,常常可以取得良好的测试效果。BVA 不仅重视输人条件边界,而且也从输出域导出测试用例。 

边界值设计测试遵循的五条原则:  

○1 如果输入条件规定了取值范围,应以该范围的边界内及刚刚超范围边界外的值作为测试用例。如以 a 和 b 为边界,测试用例应当包含 a 和 b 及略大于 a 和略小于 b 的值;  ○2 若规定了值的个数,分别以最大、最小个数及稍小于最小、稍大于最大个数作为测试用例; 

○3 针对每个输出条件使用上述 1、2 条原则; 

○4 如果程序规格说明中提到的输入或输出域是个有序的集合(如顺序文件、表格等),就应注意选取有序集的第一个和最后一个元素作为测试用例; 

○5 分析规格说明,找出其他的可能边界条件。 

l 因果图如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。

因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。

    用因果图生成测试用例的基本步骤:

○1 分析软件规格说明描述中,哪些是原因 (即输入条件或输入条件的等价类),哪些是结果 (即输出条件),并给每个原因和结果赋予一个标识符。

○2 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。  

○3 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。

为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。

○4 把因果图转换成判定表。

○5 把判定表的每一列拿出来作为依据,设计测试用例。

什么是白盒测试?

l  此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。

l  通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。

l  逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术,它属白盒测试;

是通过对程序逻辑结构的遍历实现程序的覆盖。

语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定-条件覆盖(分支-条件覆盖)、条件组合覆盖、路径覆盖什么是灰盒测试?

灰盒测试,确实是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不像白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。

灰盒测试结合了白盒测试盒黑盒测试的要素.它考虑了用户端、特定的系统知识和操作环境。

它在系统组件的协同性环境中评价应用软件的设计。

 灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识盒与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率。

 灰盒测试涉及输入和输出,但使用关于代码和程序操作等通常在测试人员视野之外的信息设计测试。

静态测试和动态测试

l  静态测试不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。

l  动态测试实际运行被测软件,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

单元测试

l  定义

对软件中的最小可测单元进行检查和验证。

l  依据

源程序、《详细设计》集成测试

l  定义

将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。

l  依据

单元测试的模块、《概要设计》系统测试

l  定义

将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。

l  依据

《需求规格说明书》验收测试

l  定义

在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,是软件正式交给用户使用的最后一道工序。

l  依据

《需求规格说明书》、验收标准 α测试和β测试

l  α测试

由用户、测试人员、开发人员等共同参与的内部测试。

l  β测试

完全交给最终用户测试。

回归测试

回归测试是在软件维护阶段,对软件进行修改之后进行的测试。

其目的是检验对软件进行的修改是否正确。这里,修改的正确性有两重含义:

所作的修改达到了预定目的,如错误得到改正,能够适应新的运行环境等等;不影响软件的其他功能的正确性。

功能测试包括哪些?

逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。

性能测试分为哪几种?

一般性能测试、稳定性测试、负载测试和压力测试。

l  一般性能测试

让被测软件在正常的软硬件环境下运行,不向其施加任何压力的性能测试。

l  稳定性测试

连续运行被测软件,检查软件运行时的稳定程度。

l  负载测试

让被测软件在其能忍受的压力的极限范围内连续运行,来测试软件的稳定性。

l  压力测试

连续不断地给被测软件增加压力,直到将被测软件压垮为止。

软件缺陷的严重性和优先级

l  严重性软件缺陷对软件质量的破坏程度,即此软件缺陷的存在将对软件的功能和性能产生怎样的影响。

      在软件测试中,软件缺陷的严重性的判断应该从软件最终用户的观点做出判断,即判断缺陷的严重性要为用户考虑,考虑缺陷对用户使用造成的恶劣后果的严重性。

l  优先级

表示处理和修正软件缺陷的先后顺序的指标,即哪些缺陷需要优先修正,哪些缺陷能够稍后修正。

确定软件缺陷优先级,更多的是站在软件研发工程师的角度考虑问题,因为缺陷的修正顺序是个复杂的过程,有些不是纯粹技术问题,而且研发人员更熟悉软件代码,能够比测试工程师更清楚修正缺陷的难度和风险。

l  缺陷的严重性和优先级的关系缺陷的严重性和优先级是含义不同但相互联系密切的两个概念。他们都从不同的侧面描述了软件缺陷对软件质量和最终用户的影响程度和处理方式。

一般地,严重性程度高的软件缺陷具备较高的优先级。严重性高说明缺陷对软件造成的质量危害性大,需要优先处理,而严重性低的缺陷可能只是软件不太尽善尽美,能够稍后处理。

但是,严重性和优先级并不成正比。有时候严重性高的软件缺陷,优先级不一定高,甚至无需处理,而一些严重性低的缺陷却需要及时处理,具备较高的优先级。

修正软件缺陷不是一件纯技术问题,有时需要综合考虑市场发布和质量风险等问题。例如,假如某个严重的软件缺陷只在很极端的条件下产生,则没有必要马上解决。另外,假如修正一个软件缺陷,需要重新修改软件的整体架构,可能会产生更多潜在的缺陷,而且软件由于市场的压力必须尽快发布,此时即使缺陷的严重性很高,是否需要修正,需要全盘考虑。另一方面,假如软件缺陷的严重性很低,例如,界面单词拼写错误,但是假如是软件名称或公司名称的拼写错误,则必须尽快修正,因为这关系到软件和公司的市场形象。

bug 的生命周期

新建、确认、解决、关闭、重新打开 bug 的处理流程

 

 

 


 

 

Web 测试

web 测试分为 6 个部分:

l  功能测试  链接测试、表单测试、数据校验、cookies 测试、数据库测试、应用程序特定的功能需求、设计语言测试

l  性能测试(包括负载/压力测试) 

连接速度测试、负载测试、压力测试

l  用户界面测试 

       导航测试、图形测试、内容测试、表格测试、整体界面测试

l  兼容性测试 

      平台测试、浏览器测试、分辨率测试、Modem/连接速率、打印机、组合测试

l  安全测试 

目录设置、SSL、登录、日志文件、脚本语言

l  接口测试 

服务器接口、外部接口、错误处理

SQA 与测试

一般规范的软件测试流程包括项目计划检查、测试计划创建、测试设计、执行测试、更新测试文档,而 SQA 的活动可总结为:协调度量、风险管理、文档检查、促进/协助流程改进、监察测试工作。它们的相同点在于二者都是贯穿整个软件开发生命周期的流程。

软件质量保证(SQA)的职能是向管理层提供正确的可视化的信息,从而促进与协助流程改进。SQA 还充当测试工作的指导者和监督者,帮助软件测试建立质量标准、测试过程评审方法和测试流程,同时通过跟踪、审计和评审,及时发现软件测试过程中的问题,从而帮助改进测试或整个开发的流程等,因此有了 SQA,测试工作就可以被客观的检查与评价,同时也可以协助测试流程的改进。

而测试为 SQA 提供数据和依据,帮助 SQA 更好地了解质量计划的执行情况、过程质量、产品质量和过程改进进展,从而使 SQA 更好地做好下一步工作。

它们的不同之处在于 SQA 侧重对流程中过程的管理与控制,是一项管理工作,侧重于流程和方法。而测试是对流程中各过程管理与控制策略的具体执行实施,其对象是软件产品(包括阶段性的产品),即测试是对软件产品的检验,是一项技术性的工作。测试,常常被认为是质量控制的最主要手段。但是,随着时间的推移,软件质量保证和软件质量控制之间的界限越来越模糊了,两者合二为一。也就是说,软件测试是 SQA 中的重要手段,SQA 的主要功能在软件测试中得到体现,集中在静态测试中,两者的关系越来越紧密,已无法分开。

准确与精确

准确是指你得到的测定结果与真实值之间的接近程度。

精确是指使用同种备用样品进行重复测定所得到的结果之间的重现性。 

C/S 结构与 B/S 结构的特点分析

l  系统的性能  

    在系统的性能方面,B/S 占有优势的是其异地浏览和信息采集的灵活性。任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用 B/S 系统的终端。 

    不过,采用 B/S 结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重。采用 C/S 结构时,客户端和服务器端都能够处理任务,这虽然对客户机的要求较高,但因此可以减轻服务器的压力。而且,由于客户端使用浏览器,使得网上发布的信息必须是以 HTML 格式为主,其它格式文件多半是以附件的形式存放。而 HTML 格式文件(也就是 Web 页面)不便于编辑修改,给文件管理带来了许多不便。  

l  系统的开发 

    C/S 结构是建立在中间件产品基础之上的,要求应用开发者自己去处理事务管理、消息队列、数据的复制和同步、通信安全等系统级的问题。这对应用开发者提出了较高的要求,而且迫使应用开发者投入很多精力来解决应用程序以外的问题。这使得应用程序的维护、移植和互操作变得复杂。如果客户端是在不同的操作系统上,C/S 结构的软件需要开发不同版本的客户端软件。但是,与 B/S 结构相比,C/S 技术发展历史更为“悠久”。从技术成熟度及软件设计、开发人员的掌握水平来看,C/S 技术应是更成熟、更可靠的。 

l  系统的升级维护 

    C/S 系统的各部分模块中有一部分改变,就要关联到其它模块的变动,使系统升级成本比较大。B/S 与 C/S 处理模式相比,则大大简化了客户端,只要客户端机器能上网就可以。对于 B/S 而言,开发、维护等几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器端的软件就可以,这减轻了异地用户系统维护与升级的成本。如果客户端的软件系统升级比较频繁,那么 B/S 架构的产品优势明显——所有的升级操作只需要针对服务器进行,这对那些点多面广的应用是很有价值的,例如一些招聘网站就需要采用 B/S 模式,客户端分散,且应用简单,只需要进行简单的浏览和少量信息的录入。 

l  C/S 模式的优点和缺点 

       C/S 模式的优点 

       ○1 由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。 

       ○2 操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。 

       ○3 C/S 结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。 

      C/S 模式的缺点 

       ○1 需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。 

       ○2 兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程序。 

       ○3 开发成本较高,需要具有一定专业水准的技术人员才能完成。 

l  B/S 模式的优点和缺点 

B/S 模式的优点 

    ○1 具有分布性特点,可以随时随地进行查询、浏览等业务处理。 

    ○2 业务扩展简单方便,通过增加网页即可增加服务器功能。 

    ○3 维护简单方便,只需要改变网页,即可实现所有用户的同步更新。 

    ○4 开发简单,共享性强。 

       B/S 模式的缺点 

    ○1 个性化特点明显降低,无法实现具有个性化的功能要求。 

    ○2 操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。 

    ○3 页面动态刷新,响应速度明显降低。 

    ○4 无法实现分页显示,给数据库访问造成较大的压力。

    ○5 功能弱化,难以实现传统模式下的特殊功能要求。 

驱动模块与桩模块

l  驱动模块

模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。

l  桩模块

模拟被测模块所用的模块。

 

 
posted @ 2021-12-28 10:44  临易  阅读(241)  评论(0编辑  收藏  举报