【2007】知识是需要沉淀的; 思想是在不断学习,磨练中成熟的; 技术是在创新中开拓的…………… 【2007】不经历风雨,怎能见彩虹,没有人能随随便便成功。加油!

集成测试

上一篇 / 下一篇  2009-09-24 13:54:19 / 个人分类:软件测试理论

集成测试

[;R!{} g;?'^0

  51Testing软件测试网R'e RS#Cf'WRs]V

集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求)如根据结构图〕组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。51Testing软件测试网Xn,j6T ^&@ XE {n

  集成测试方法51Testing软件测试网t(U-r5Lgy#T

  集成测试应该考虑以下问题:

.L3T&JEl&e4gwg0

  1、在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;

;pJ$gY6L5tE0

  2、各个子功能组合起来,能否达到预期要求的父功能;51Testing软件测试网E4vs6J.tMh;U??

  3、一个模块的功能是否会对另一个模块的功能产生不利的影响;51Testing软件测试网Y5u(\d E4Os

  4、全局数据结构是否有问题;

r8Vq*{RG`0

  5、单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。51Testing软件测试网Uc9SD$o"w0Q

  因此,单元测试后,有必要进行集成测试,发现并排除在模块连接中可能发生的上述问题,最终构成要求的软件子系统或系统。对子系统,集成测试也叫部件测试。

4u2d:\)qUy2p0

  任何合理地组织集成测试,即选择什么方式把模块组装起来形成一个可运行的系统,直接影响到模块测试用例的形式、所用测试工具的类型、模块编号和测试的次序、生成测试用例和调试的费用。通常,有两种不同的组装方式:一次性组装方式和增值式组装方式。

,cf#l+gW$H!]bq0

  集成测试的实施51Testing软件测试网h(Na8_+}|6L,e"s-p

  集成测试是一种正规测试过程,必须精心计划,并与单元测试的完成时间协调起来。在制定测试计划时,应考虑如下因素:

i M2J e*{uW/Aa0

  1、是采用何种系统组装方法来进行组装测试;

/_ [&\4V{0

  2、组装测试过程中连接各个模块的顺序;

wN@M+S Le0`0

  3、模块代码编制和测试进度是否与组装测试的顺序一致51Testing软件测试网*F'tIE2N(@q \&e

  4、测试过程中是否需要专门的硬件设备;51Testing软件测试网%a l9v1SI gW

  解决了上述问题之后,就可以列出各个模块的编制、测试计划表,标明每个模块单元测试完成的日期、首次集成测试的日期、集成测试全部完成的日期、以及需要的测试用例和所期望的测试结果。

\ |!d7Q%lv/m,n MfY0

  在缺少软件测试所需要的硬件设备时,应检查该硬件的交付日期是否与集成测试计划一致。例如,若测试需要数字化仪和绘图仪,则相应测试应安排在这些设备能够投入使用之时,并需要为硬件的安装和交付使用保留一段时间,以留下时间余量。此外,在测试计划中需要考虑测试所需软件(驱动模块、桩模块、测试用例生成程序等)的准备情况。51Testing软件测试网^ q{2M?Q6Lq

  集成测试完成标准

-@0D1EP(W*HF4qz0

  怎样判定集成测试过程完成了,可按以下几个方面检查:

Exq^/k v{,?!gE0

  1、成功地执行了测试计划中规定的所有集成测试;51Testing软件测试网$RlZW8z}J

  2、修正了所发现的错误;51Testing软件测试网Z PilXy-J i,S

  3、测试结果通过了专门小组的评审。51Testing软件测试网'\3I4c5Y+TO'W:o.W

  集成测试应由专门的测试小组来进行,测试小组由有经验的系统设计人员和程序员组成。整个测试活动要在评审人员出席的情况下进行。

^],d;C3_ j U0

  在完成预定的组装测试工作之后,测试小组应负责对测试结果进行整理、分析,形成测试报告。测试报告中要记录实际的测试结果、在测试中发现的问题、解决这些问题的方法以及解决之后再次测试的结果。此外还应提出目前不能解决、还需要管理人员和开发人员注意的一些问题,提供测试评审和最终决策,以提出处理意见。51Testing软件测试网4zf*jU9\vu

  集成测试

N!}7D?%w%?8H5_2O0

  集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。

-eT!_ z?"v(p4i I0

  集成测试识别组合单元时出现的问题。通过使用要求在组合单元前测试每个单元并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。这种方法将可能发生的情况数量减少到更简单的分析级别。51Testing软件测试网@$b0m:q&M FD p|e

  集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。也就是说,在集成测试之前,单元测试应该已经完成,集成测试中所使用的对象应该是已经经过单元测试的软件单元。这一点很重要,因为如果不经过单元测试,那么集成测试的效果将会受到很大影响,并且会大幅增加软件单元代码纠错的代价。51Testing软件测试网 [,fW?'fB0bBD2h

  集成测试是单元测试的逻辑扩展。在现实方案中,集成是指多个单元的聚合,许多单元组合成模块,而这些模块又聚合成程序的更大部分,如分系统或系统。集成测试采用的方法是测试软件单元的组合能否正常工作,以及与其他组的模块能否集成起来工作。最后,还要测试构成系统的所有模块组合能否正常工作。集成测试所持的主要标准是《软件概要设计规格说明》,任何不符合该说明的程序模块行为都应该加以记载并上报。51Testing软件测试网 K/Sf&T+A!C$INrK

  所有的软件项目都不能摆脱系统集成这个阶段。不管采用什么开发模式,具体的开发工作总得从一个一个的软件单元做起,软件单元只有经过集成才能形成一个有机的整体。具体的集成过程可能是显性的也可能是隐性的。只要有集成,总是会出现一些常见问题,工程实践中,几乎不存在软件单元组装过程中不出任何问题的情况。从图1可以看出,集成测试需要花费的时间远远超过单元测试,直接从单元测试过渡到系统测试是极不妥当的做法。51Testing软件测试网rw1ON|h

  集成测试的必要性还在于一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,有可能在全局上会暴露出来,影响功能的实现。此外,在某些开发模式中,如迭代式开发,设计和实现是迭代进行的。在这种情况下,集成测试的意义还在于它能间接地验证概要设计是否具有可行性。51Testing软件测试网%yxc;u6X6y)I(k

  集成测试的目的是确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。它所测试的内容包括单元间的接口以及集成后的功能。使用黑盒测试方法测试集成的功能。并且对以前的集成进行回归测试。51Testing软件测试网2rK5J!n#i|4Xq9l

  一、集成测试过程51Testing软件测试网F%y.[U }a

  二、单元测试工作内容及其流程51Testing软件测试网MA&^S'fE*U

  三、集成测试需求获取51Testing软件测试网}'z0qG4b^*eL

  集成测试需求所确定的是对某一集成工作版本的测试的内容,即测试的具体对象。集成测试需求主要来源于设计模型(Design Model)和集成构件计划(Integration Build Plan)。集成测试着重于集成版本的外部接口的行为。因此,测试需求须具有可观测、可测评性。

_F,w8R(i-EQ%J0

  1集成工作版本应分析其类协作与消息序列,从而找出该工作版本的外部接口。51Testing软件测试网)Bu^+p7r

  2由集成工作版本的外部接口确定集成测试用例。

yi MU2t!{0

  3测试用例应覆盖工作版本每一外部接口的所有消息流序列。51Testing软件测试网0G;a-M:_$n#t

  注意:一个外部接口和测试用例的关系是多对多,部分集成工作版本的测试需求可映射到系统测试需求,因此对这些集成测试用例可采用重用系统测试用例技术。51Testing软件测试网'Y9w5x L0P5IO

  四、集成测试工作机制51Testing软件测试网W4r+f b9|$c8_#M

  软件集成测试工作由产品评测部担任。需要项目组相关角色配合完成。如图示:51Testing软件测试网];G7~ hu `8`A!Z

  软件评测部:

/k4sV;F]G)Gd0

  软件项目组:

)PMd p5T dH0

  集成测试工作内容及其流程工作流程:51Testing软件测试网 tgEI'VDn

  五、集成测试产生的工件清单51Testing软件测试网A(d2bVw0b[9d

  1软件集成测试计划51Testing软件测试网3d8T+{ r~.]I

  2集成测试用例51Testing软件测试网+K7FQ3BAHT6L#}

  3测试过程51Testing软件测试网4^%?:r*@:H$m KK'l

  4测试脚本

,_q.Q a2D;V;{0

  5测试日志

#lI,Gx j9}t!V%k0

  6测试评估摘要

!GBZVi!` eh0

  六、集成测试常用方案选型51Testing软件测试网 k0QW3W2ll#Y(I!dO

  集成测试的实施方案有很多种,如自底向上集成测试、自顶向下集成测试、Big-Bang集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试等。在此,笔者将重点讨论其中一些经实践检验和一些证实有效的集成测试方案。

7cB]l+{ voH0

  自顶向下集成测试51Testing软件测试网Q:z R7sb f

  自顶向下集成(Top-Down Integration)方式是一个递增的组装软件结构的方法。从主控模块(主程序)开始沿控制层向下移动,把模块一一组合起来。分两种方法:

ZW*a)Q9S0

  第一:先深度:按照结构,用一条主控制路径将所有模块组合起来;

.{9`-JE4x~V0}/v0

  第二:先宽度:逐层组合所有下属模块,在每一层水平地沿着移动。

#S-fgEhT;j0

  组装过程分以下五个步骤:

7V3s)OY D!zG*VEQ&g0

  步骤一:用主控模块作为测试驱动程序,其直接下属模块用承接模块来代替;

$wl;vEh'h2F*U cB0

  步骤二:根据所选择的集成测试法(先深度或先宽度),每次用实际模块代替下属的承接模块

7Ad\:m Ry1Xw0

  步骤三:在组合每个实际模块时都要进行测试;51Testing软件测试网0@rR~Uwt6}

  步骤四:完成一组测试后再用一个实际模块代替另一个承接模块;51Testing软件测试网!L,z@cl,D'ZPQ]

  步骤五:可以进行回归测试(即重新再做所有的或者部分已做过的测试),以保证不引入新的错误。51Testing软件测试网,]T @,U{(H0[e L

  自底向上集成测试

C~C t/Y;d0

  自底向上的集成(Bottom-Up Integration)方式是最常使用的方法。其他集成方法都或多或少地继承、吸收了这种集成方式的思想。自底向上集成方式从程序模块结构中最底层的模块开始组装和测试。因为模块是自底向上进行组装的,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)事前已经完成组装并经过测试,所以不再需要编制桩模块(一种能模拟真实模块,给待测模块提供调用接口或数据的测试用软件模块)。自底向上集成测试的步骤大致如下:51Testing软件测试网YP;X0ZW8tq-p!MH

  步骤一:按照概要设计规格说明,明确有哪些被测模块。在熟悉被测模块性质的基础上对被测模块进行分层,在同一层次上的测试可以并行进行,然后排出测试活动的先后关系,制定测试进度计划。图2给出了自底向上的集成测试过程中各测试活动的拓扑关系。利用图论的相关知识,可以排出各活动之间的时间序列关系,处于同一层次的测试活动可以同时进行,而不会相互影响。

B-v D.n W;a0

  步骤二:在步骤一的基础上,按时间线序关系,将软件单元集成为模块,并测试在集成过程中出现的问题。这里,可能需要测试人员开发一些驱动模块来驱动集成活动中形成的被测模块。对于比较大的模块,可以先将其中的某几个软件单元集成为子模块,然后再集成为一个较大的模块。

b7Z2BUUlPk0

  步骤三:将各软件模块集成为子系统(或分系统)。检测各自子系统是否能正常工作。同样,可能需要测试人员开发少量的驱动模块来驱动被测子系统。51Testing软件测试网'q'HK6Q3}M;x8[

  步骤四:将各子系统集成为最终用户系统,测试是否存在各分系统能否在最终用户系统中正常工作。51Testing软件测试网6Ih&X"W8Elx9S:t}

  方案点评:自底向上的集成测试方案是工程实践中最常用的测试方法。相关技术也较为成熟。它的优点很明显:管理方便、测试人员能较好地锁定软件故障所在位置。但它对于某些开发模式不适用,如使用XP开发方法,它会要求测试人员在全部软件单元实现之前完成核心软件部件的集成测试。尽管如此,自底向上的集成测试方法仍不失为一个可供参考的集成测试方案。51Testing软件测试网)v(q.K8l!x

  核心系统先行集成测试

!IXO|F'lb*Z`(_(J0

  核心系统先行集成测试法的思想是先对核心软件部件进行集成测试,在测试通过的基础上再按各外围软件部件的重要程度逐个集成到核心系统中。每次加入一个外围软件部件都产生一个产品基线,直至最后形成稳定的软件产品。核心系统先行集成测试法对应的集成过程是一个逐渐趋于闭合的螺旋形曲线,代表产品逐步定型的过程。其步骤如下:

6r'm*Y(I4d#b g Y2l0

  步骤一:对核心系统中的每个模块进行单独的、充分的测试,必要时使用驱动模块和桩模块;51Testing软件测试网H,` F1m gPJ!iAZR4J

  步骤二:对于核心系统中的所有模块一次性集合到被测系统中,解决集成中出现的各类问题。在核心系统规模相对较大的情况下,也可以按照自底向上的步骤,集成核心系统的各组成模块。

CS&s"}X-M? oot0

  步骤三:按照各外围软件部件的重要程度以及模块间的相互制约关系,拟定外围软件部件集成到核心系统中的顺序方案。方案经评审以后,即可进行外围软件部件的集成。51Testing软件测试网!rZ@6aUM2N

  步骤四:在外围软件部件添加到核心系统以前,外围软件部件应先完成内部的模块级集成测试。

0O\+IH g%t/v0

  步骤五:按顺序不断加入外围软件部件,排除外围软件部件集成中出现的问题,形成最终的用户系统。

B|6e"xU%^ p-UD0

  方案点评:该集成测

TAG: 集成测试

引用 删除 AmandaMa   /   2011-05-20 13:43:39
1
引用 删除 无疆   /   2011-02-11 16:55:17
写好多啊,呵呵
 

评分:0

我来说两句

Open Toolbar