《软件测试(集成测试)》由会员分享,可在线阅读,更多相关《软件测试(集成测试)(65页珍藏版)》请在金锄头文库上搜索。
1、为什么总是集成不起来?为什么总是集成不起来?2集成测试集成测试 Integration Testing梁瑞仕梁瑞仕 3第第5章章 集成测试集成测试什么是集成什么是集成测试集成集成测试策略策略集成集成测试用例用例设计集成集成测试过程程面向面向对象的集成象的集成测试4软件测试的过程软件测试的过程被测被测模块模块单元单元测试测试设计设计信息信息集成集成测试测试被测被测模块模块单元单元测试测试被测被测模块模块单元单元测试测试测试过测试过的模块的模块确认确认测试测试系统系统测试测试软件软件需求需求其它系其它系统元素统元素装配好装配好的软件的软件 确认确认的软件的软件可运可运行的行的软件软件5什么是集成测
2、试什么是集成测试n n也叫做也叫做也叫做也叫做组组装装装装测试测试、联联合合合合测试测试、子系、子系、子系、子系统测试统测试和和和和部件部件部件部件测试测试。n n是在是在是在是在单单元元元元测试测试的基的基的基的基础础上,将所有模上,将所有模上,将所有模上,将所有模块块按照概按照概按照概按照概要要要要设计设计要求要求要求要求组组装成装成装成装成为为子系子系子系子系统统或系或系或系或系统统,进进行集行集行集行集成成成成测试测试。6单元测试、集成测试与系统测试的差别单元测试、集成测试与系统测试的差别集成集成测试测试系统系统测试测试单元单元测试测试灰盒测试灰盒测试,采用较多黑采用较多黑盒方法构造盒
3、方法构造测试用例测试用例 黑盒测试黑盒测试大量采用大量采用白白盒测试盒测试方法方法测试方法测试方法模块间模块间的的集成和调集成和调用关系用关系整个系统整个系统,包括系统包括系统软硬件等软硬件等模块内部模块内部程序错误程序错误对象对象找出与软件设计相找出与软件设计相关的程序结构,模关的程序结构,模块调用关系,模块块调用关系,模块间接口方面的问题间接口方面的问题对整个系统进行一对整个系统进行一系列的整体、有效系列的整体、有效性测试性测试消除局部模块逻辑消除局部模块逻辑和功能上的错误和和功能上的错误和缺陷缺陷目的目的系统结构设计系统结构设计目标说明书目标说明书需求说明书等需求说明书等程序结构设计程序
4、结构设计模块逻辑设计模块逻辑设计模块外部说明模块外部说明测试依据测试依据7集成测试关注的重点集成测试关注的重点n n在把各个模在把各个模在把各个模在把各个模块连块连接起来接起来接起来接起来时时,穿越模,穿越模,穿越模,穿越模块块接口的数据是否接口的数据是否接口的数据是否接口的数据是否会会会会丢丢失。失。失。失。n n各个子功能各个子功能各个子功能各个子功能组组合起来,能否达到合起来,能否达到合起来,能否达到合起来,能否达到预预期要求的父功能。期要求的父功能。期要求的父功能。期要求的父功能。n n一个模一个模一个模一个模块块的功能是否会的功能是否会的功能是否会的功能是否会对对另一个模另一个模另一
5、个模另一个模块块的功能的功能的功能的功能产产生不利生不利生不利生不利的影响。的影响。的影响。的影响。n n全局数据全局数据全局数据全局数据结结构是否有构是否有构是否有构是否有问题问题,会不会被异常修改。,会不会被异常修改。,会不会被异常修改。,会不会被异常修改。n n单单个模个模个模个模块块的的的的误误差差差差积积累起来,是否会放大,从而达到不累起来,是否会放大,从而达到不累起来,是否会放大,从而达到不累起来,是否会放大,从而达到不可以接受的程度。可以接受的程度。可以接受的程度。可以接受的程度。8集成测试的层次集成测试的层次n n产产品开品开品开品开发过发过程:一个分程:一个分程:一个分程:一
6、个分层设计层设计和逐步和逐步和逐步和逐步细细化的化的化的化的过过程程程程系系系系统结统结构构构构图图:9软软件件件件结结构构构构图图:软件模块结构图:软件模块结构图:软件模块结构图:软件模块结构图:10集成测试的层次集成测试的层次可分成可分成可分成可分成3 3个个个个层层次:次:次:次:n n模模模模块块内集成内集成内集成内集成测试测试n n子系子系子系子系统统内集成内集成内集成内集成测试测试n n子系子系子系子系统间统间集成集成集成集成测试测试面向面向面向面向对对象的象的象的象的应应用系用系用系用系统统来来来来说说,可分,可分,可分,可分为为2 2个个个个层层次:次:次:次:n n类类内集成
7、内集成内集成内集成测试测试n n类间类间集成集成集成集成测试测试集成测试的原则集成测试的原则n(1)所有公共接口必)所有公共接口必须被被测试到;到;n(2)关)关键模模块必必须进行充分行充分测试;n(3)集成)集成测试应当按一定当按一定层次次进行;行;n(4)集成)集成测试策略策略选择应当当综合考合考虑质量、成本和量、成本和进度三者之度三者之间的关系;的关系;n(5)集成)集成测试应当尽早开始,并以概要当尽早开始,并以概要设计为基基础;n(6)在模)在模块和接口的划分上,和接口的划分上,测试人人员应该和开和开发人人员进行充分沟通;行充分沟通;n(7)当)当测试计划中的划中的结束束标准准满足足时
8、,集成,集成测试才能才能结束;束;n(8)当接口)当接口发生修改生修改时,涉及到的相关接口都必,涉及到的相关接口都必须进行回行回归测试;n(9)集成)集成测试应根据集成根据集成测试计划和方案划和方案进行,不能随意行,不能随意测试;n(10)项目管理者目管理者应保保证测试用例用例经过审核;核;n(11)测试执行行结果果应当如当如实的的记录。 12第第5章章 集成测试集成测试什么是集成什么是集成测试集成集成测试策略策略集成集成测试用例用例设计集成集成测试过程程面向面向对象的集成象的集成测试13集成测试策略集成测试策略1 1)非增量方式)非增量方式n n先先先先测试测试好每一个好每一个好每一个好每一
9、个软软件件件件单单元,然后一次元,然后一次元,然后一次元,然后一次组组装装装装在一起再在一起再在一起再在一起再测试测试整个程序。整个程序。整个程序。整个程序。2 2)增量方式)增量方式n n逐步把下一个要被逐步把下一个要被逐步把下一个要被逐步把下一个要被组组装的装的装的装的软软件件件件单单元或部件,元或部件,元或部件,元或部件,同已同已同已同已测测好的好的好的好的软软件部件件部件件部件件部件结结合起来合起来合起来合起来测试测试。n n增量方式主要包括自增量方式主要包括自增量方式主要包括自增量方式主要包括自顶顶向下、自底向上、向下、自底向上、向下、自底向上、向下、自底向上、自自自自顶顶向下与自底
10、向上相向下与自底向上相向下与自底向上相向下与自底向上相结结合等方法。合等方法。合等方法。合等方法。14集成测试策略集成测试策略n n非增量方式非增量方式非增量方式非增量方式n n 大爆炸(大爆炸(大爆炸(大爆炸(Big BangBig Bang)n n增量方式增量方式增量方式增量方式n n自顶向下方法自顶向下方法(Bottom-UpBottom-Up)n n自底向上方法自底向上方法(Top-DownTop-Down)n n“ “三明治三明治” ”方法方法(SandwichSandwich)15大爆炸集成(大爆炸集成(Big Bang)n n将所有系将所有系将所有系将所有系统组统组件一次性集合到
11、被件一次性集合到被件一次性集合到被件一次性集合到被测测系系系系统统中中中中d1d1d1d1、d2d2d2d2、d3d3d3d3、d4d4d4d4、d5d5d5d5是是是是为单元测试时建立的驱为单元测试时建立的驱为单元测试时建立的驱为单元测试时建立的驱动模块动模块动模块动模块s1s1s1s1、s2s2s2s2、s3s3s3s3、s4s4s4s4、s5s5s5s5是是是是为单元测试而建立的桩为单元测试而建立的桩为单元测试而建立的桩为单元测试而建立的桩模块模块模块模块16大爆炸集成(大爆炸集成(Big Bang)n n优优点:点:点:点:n n可以迅速完成集成可以迅速完成集成可以迅速完成集成可以迅速
12、完成集成测试测试;并且只要极少数的;并且只要极少数的;并且只要极少数的;并且只要极少数的驱动驱动和和和和桩桩模模模模块块;用例也是最少的;用例也是最少的;用例也是最少的;用例也是最少的;简单简单;资资源利用率高源利用率高源利用率高源利用率高n n缺点:缺点:缺点:缺点:n n一次一次一次一次试试运行成功的可能性不大,运行成功的可能性不大,运行成功的可能性不大,运行成功的可能性不大,问题问题定位和定位和定位和定位和修改比修改比修改比修改比较较困困困困难难,许许多接口多接口多接口多接口错误错误很容易很容易很容易很容易躲过测躲过测试试。n n适适适适应应于一个于一个于一个于一个维护维护型型型型项项目
13、或被目或被目或被目或被测试测试系系系系统较统较小小小小17集成测试策略集成测试策略n n非增量方式非增量方式非增量方式非增量方式n n 大爆炸(大爆炸(大爆炸(大爆炸(Big BangBig Bang)n n增量方式增量方式增量方式增量方式n n自顶向下方法自顶向下方法(Bottom-UpBottom-Up)n n自底向上方法自底向上方法(Top-DownTop-Down)n n“ “三明治三明治” ”方法方法(SandwichSandwich)18自顶向下方法(自顶向下方法(Bottom-Up)n n从从从从顶层顶层控制开始,采用同控制开始,采用同控制开始,采用同控制开始,采用同设计顺设计顺
14、序一序一序一序一样样的思路的思路的思路的思路对对被被被被测测系系系系统进统进行行行行测试测试,以,以,以,以验证验证系系系系统统的接口的接口的接口的接口稳稳定定定定性性性性n n集成的方式有两种:集成的方式有两种:集成的方式有两种:集成的方式有两种:n n深度深度深度深度优优先先先先组组装法装法装法装法n n广度广度广度广度优优先先先先组组装法装法装法装法19深度优先组装方式深度优先组装方式 20广度优先组装方式广度优先组装方式 21集成步骤集成步骤(1 1)以主模)以主模)以主模)以主模块为块为所所所所测测模模模模块块兼兼兼兼驱动驱动模模模模块块,所有直属于主,所有直属于主,所有直属于主,所
15、有直属于主模模模模块块的下属模的下属模的下属模的下属模块块全部用全部用全部用全部用桩桩模模模模块对块对主模主模主模主模块进块进行行行行测试测试。(2 2)采用深度)采用深度)采用深度)采用深度优优先或广度先或广度先或广度先或广度优优先的策略,用先的策略,用先的策略,用先的策略,用实际实际模模模模块块替替替替换换相相相相应桩应桩模模模模块块,再用,再用,再用,再用桩桩代替它代替它代替它代替它们们的直接下属模的直接下属模的直接下属模的直接下属模块块,与已与已与已与已测试测试的模的模的模的模块块或子系或子系或子系或子系统统集成集成集成集成为为新的子系新的子系新的子系新的子系统统。(3 3)进进行回行
16、回行回行回归测试归测试(即重新(即重新(即重新(即重新执执行以前做行以前做行以前做行以前做过过的全部的全部的全部的全部测试测试或部分或部分或部分或部分测试测试),排除集成),排除集成),排除集成),排除集成过过程中引起程中引起程中引起程中引起错误错误的可能。的可能。的可能。的可能。(4 4)判断是否所有的模)判断是否所有的模)判断是否所有的模)判断是否所有的模块块都已集成到系都已集成到系都已集成到系都已集成到系统统中,是中,是中,是中,是则结则结束束束束测试测试,否,否,否,否则转则转到(到(到(到(2 2)去)去)去)去执执行。行。行。行。22优缺点分析优缺点分析n n优优点:点:点:点:n
17、 n较较早地早地早地早地验证验证了主要控制和判断点;了主要控制和判断点;了主要控制和判断点;了主要控制和判断点;n n按深度按深度按深度按深度优优先可以首先先可以首先先可以首先先可以首先实现实现和和和和验证验证一个完整的一个完整的一个完整的一个完整的软软件功能;件功能;件功能;件功能;n n功能功能功能功能较较早早早早证实证实,带带来信心;来信心;来信心;来信心;n n只需一个只需一个只需一个只需一个驱动驱动,减少,减少,减少,减少驱动驱动器开器开器开器开发发的的的的费费用;用;用;用;n n支持故障隔离。支持故障隔离。支持故障隔离。支持故障隔离。23优缺点分析优缺点分析n n缺点:缺点:缺点
18、:缺点:n n桩桩的开的开的开的开发发量大;量大;量大;量大;n n底底底底层验证层验证被推被推被推被推迟迟;n n底底底底层组层组件件件件测试测试不充分。不充分。不充分。不充分。24适用范围适用范围n n产产品控制品控制品控制品控制结结构比构比构比构比较较清晰和清晰和清晰和清晰和稳稳定;定;定;定;n n高高高高层层接口接口接口接口变变化化化化较较小;小;小;小;n n底底底底层层接口未定接口未定接口未定接口未定义义或或或或经经常可能被修改;常可能被修改;常可能被修改;常可能被修改;n n产产口控制口控制口控制口控制组组件具有件具有件具有件具有较较大的技大的技大的技大的技术风险术风险,需要尽
19、早,需要尽早,需要尽早,需要尽早被被被被验证验证;n n希望尽早能看到希望尽早能看到希望尽早能看到希望尽早能看到产产品的系品的系品的系品的系统统功能行功能行功能行功能行为为。实例实例n对如如图5.3所示的程序,采用自所示的程序,采用自顶向下集成方向下集成方法,按照深度法,按照深度优先方式先方式进行集成行集成测试。 ABCDEFG 图5.3 程序结构图实例 ASBSCSD(a)测试AABSCSDSESF (b)测试BABCSDEFSG (e)测试CABCSDEFG (f)测试GABCDEFG(g)测试DABSCSDESF (c)测试EABSCSDEF (d)测试F图5.5 自顶向下集成27自底向
20、上方法(自底向上方法(Top-Down)n n从具有最小依从具有最小依从具有最小依从具有最小依赖赖性的底性的底性的底性的底层组层组件开始,按照依件开始,按照依件开始,按照依件开始,按照依赖赖关系关系关系关系树树的的的的结结构,逐构,逐构,逐构,逐层层向上集成,以向上集成,以向上集成,以向上集成,以检验检验系系系系统统的的的的稳稳定性。定性。定性。定性。n n集成示意集成示意集成示意集成示意图图:28集成步骤集成步骤(1 1)起始于模)起始于模)起始于模)起始于模块块依依依依赖赖关系关系关系关系树树的底的底的底的底层层叶子模叶子模叶子模叶子模块块,也可,也可,也可,也可以把两个或多个叶子模以把两
21、个或多个叶子模以把两个或多个叶子模以把两个或多个叶子模块块合并到一起合并到一起合并到一起合并到一起进进行行行行测试测试(2 2)使用)使用)使用)使用驱动驱动模模模模块对块对步步步步骤骤选选定的模定的模定的模定的模块块(或模(或模(或模(或模块组块组)进进行行行行测试测试(3 3)用)用)用)用实际实际模模模模块块代替代替代替代替驱动驱动模模模模块块,与它已,与它已,与它已,与它已测试测试的直属的直属的直属的直属子模子模子模子模块组块组装成一个更大的模装成一个更大的模装成一个更大的模装成一个更大的模块进块进行行行行测试测试(4 4)重复上面的行)重复上面的行)重复上面的行)重复上面的行为为知道
22、系知道系知道系知道系统统最最最最顶层顶层模模模模块块被加入到被加入到被加入到被加入到已已已已测测系系系系统统中中中中29优缺点分析优缺点分析n n优优点:点:点:点:n n对对底底底底层组层组件行件行件行件行为较为较早早早早验证验证;n n工作最初可以并行集成,比自工作最初可以并行集成,比自工作最初可以并行集成,比自工作最初可以并行集成,比自顶顶向下效率高;向下效率高;向下效率高;向下效率高;n n减少了减少了减少了减少了桩桩的工作量;的工作量;的工作量;的工作量;n n支持故障隔离。支持故障隔离。支持故障隔离。支持故障隔离。30优缺点分析优缺点分析n n缺点:缺点:缺点:缺点:n n驱动驱动
23、的开的开的开的开发发工作量大;工作量大;工作量大;工作量大;n n对对高高高高层层的的的的验证验证被推被推被推被推迟迟,设计设计上的上的上的上的错误错误不能被不能被不能被不能被及及及及时发现时发现。n n适用范适用范适用范适用范围围:n n适适适适应应于底于底于底于底层层接口比接口比接口比接口比较稳较稳定;定;定;定;n n高高高高层层接口接口接口接口变变化比化比化比化比较频较频繁;繁;繁;繁;n n底底底底层组层组件件件件较较早被完成。早被完成。早被完成。早被完成。实例 测试E测试F测试G测试D测试(A、B、CD、E、F、G) 图5.6 自底向上集成测试(B、E、F)测试(C、G)32“三明
24、治三明治”方法(方法(Sandwich)n n混合式集成混合式集成混合式集成混合式集成n n把系把系把系把系统统划分成三划分成三划分成三划分成三层层,中,中,中,中间间一一一一层为层为目目目目标层标层,目,目,目,目标标层层之上采用自之上采用自之上采用自之上采用自顶顶向下集成,之下采用自底向上向下集成,之下采用自底向上向下集成,之下采用自底向上向下集成,之下采用自底向上集成集成集成集成33三明治集成策略三明治集成策略34集成步骤集成步骤(1 1 1 1)首先)首先)首先)首先对对目目目目标层标层之上一之上一之上一之上一层层使用自使用自使用自使用自顶顶向下集成,因向下集成,因向下集成,因向下集成
25、,因此此此此测试测试A A A A,使用,使用,使用,使用桩桩代替代替代替代替B B B B,C C C C,D D D D(2 2 2 2)其次)其次)其次)其次对对目目目目标层标层之下一之下一之下一之下一层层使用自底向上集成,因使用自底向上集成,因使用自底向上集成,因使用自底向上集成,因此此此此测试测试E E E E,F F F F,使用,使用,使用,使用驱动驱动代替代替代替代替B B B B,D D D D(3 3 3 3)其三,把目)其三,把目)其三,把目)其三,把目标层标层下面一下面一下面一下面一层层与目与目与目与目标层标层集成,因此集成,因此集成,因此集成,因此测试测试(B B B
26、 B,E E E E),(),(),(),(D D D D,F F F F),使用),使用),使用),使用驱动驱动代替代替代替代替A A A A(4 4 4 4)最后,把三)最后,把三)最后,把三)最后,把三层层集成到一起,因此集成到一起,因此集成到一起,因此集成到一起,因此测试测试(A A A A,B B B B,C C C C,D D D D,E E E E,F F F F)35优缺点分析优缺点分析n n优优点:点:点:点:n n集合了自集合了自集合了自集合了自顶顶向下和自底向上两种策略的向下和自底向上两种策略的向下和自底向上两种策略的向下和自底向上两种策略的优优点点点点n n缺点:缺点:
27、缺点:缺点:n n中中中中间层测试间层测试不充分不充分不充分不充分n n适用范适用范适用范适用范围围:n n适适适适应应于大部分于大部分于大部分于大部分软软件开件开件开件开发项发项目目目目 36修改过的三明治集成修改过的三明治集成实例测试E测试F测试G测试A测试(A、B、CD、E、F、G) 图5.7 三明治集成测试(B、E、F)测试(C、G)38第第5章章 集成测试集成测试什么是集成什么是集成测试集成集成测试策略策略集成集成测试用例用例设计集成集成测试过程程面向面向对象的集成象的集成测试39 1、为系统运行设计用例、为系统运行设计用例 n n目的:目的:目的:目的:测试测试各个模各个模各个模各
28、个模块块的接口是否能用,的接口是否能用,的接口是否能用,的接口是否能用,验证验证系系系系统统最基本功能最基本功能最基本功能最基本功能n n可使用的主要可使用的主要可使用的主要可使用的主要测试测试分析技分析技分析技分析技术术有:有:有:有: (1 1)等价)等价)等价)等价类类划分。划分。划分。划分。 (2 2)边边界界界界值值分析。分析。分析。分析。 (3 3)基于决策表的)基于决策表的)基于决策表的)基于决策表的测试测试。402、为正向测试设计用例、为正向测试设计用例n n目的:目的:目的:目的:验证验证集成后的模集成后的模集成后的模集成后的模块块是否按照是否按照是否按照是否按照设计实现设计
29、实现了了了了预预期的期的期的期的功能。功能。功能。功能。n n可使用如下几种主要可使用如下几种主要可使用如下几种主要可使用如下几种主要测试测试分析技分析技分析技分析技术术: (1 1)输输入域入域入域入域测试测试。 (2 2)输输出域出域出域出域测试测试。 (3 3)等价)等价)等价)等价类类划分。划分。划分。划分。 (4 4)状)状)状)状态转换测试态转换测试。 (5 5)规规范范范范导导出法。出法。出法。出法。正向测试是指,当你输入一正向测试是指,当你输入一正向测试是指,当你输入一正向测试是指,当你输入一个有效的输入并且期望软件个有效的输入并且期望软件个有效的输入并且期望软件个有效的输入并
30、且期望软件能够完成一些根据说明书规能够完成一些根据说明书规能够完成一些根据说明书规能够完成一些根据说明书规定的行为。定的行为。定的行为。定的行为。413、为逆向测试设计用例、为逆向测试设计用例n n目的:目的:目的:目的:测试测试是否多余功能、接口是否多余功能、接口是否多余功能、接口是否多余功能、接口遗遗漏、接口漏、接口漏、接口漏、接口错误错误、接、接、接、接口异常。口异常。口异常。口异常。n n可使用的主要可使用的主要可使用的主要可使用的主要测试测试分析技分析技分析技分析技术术有:有:有:有: (1 1)错误错误猜猜猜猜测测法。法。法。法。 (2 2)基于)基于)基于)基于风险风险的的的的测
31、试测试。 (3 3)基于故障的)基于故障的)基于故障的)基于故障的测试测试。 (4 4)边边界界界界值值分析。分析。分析。分析。 (5 5)特殊)特殊)特殊)特殊值测试值测试。 (6 6)状)状)状)状态转换测试态转换测试。逆向测试是指,当你输逆向测试是指,当你输入无效的输入时并且期入无效的输入时并且期望得到一个错误的信息。望得到一个错误的信息。42集成测试用例设计集成测试用例设计4 4、为满为满足特殊需求足特殊需求足特殊需求足特殊需求设计设计用例用例用例用例n n可使用的主要可使用的主要可使用的主要可使用的主要测试测试分析技分析技分析技分析技术为规术为规范范范范导导出法。出法。出法。出法。5
32、 5为为高覆盖高覆盖高覆盖高覆盖设计设计用例用例用例用例n n可使用的主要可使用的主要可使用的主要可使用的主要测试测试分析技分析技分析技分析技术术有:有:有:有: (1 1)功能覆盖分析。)功能覆盖分析。)功能覆盖分析。)功能覆盖分析。 (2 2)接口覆盖分析。)接口覆盖分析。)接口覆盖分析。)接口覆盖分析。43第第5章章 集成测试集成测试什么是集成什么是集成测试集成集成测试策略策略集成集成测试用例用例设计集成集成测试过程程面向面向对象的集成象的集成测试44集成测试流程集成测试流程计划阶段设计阶段实现阶段执行阶段分析评估缺陷跟踪根据项目组提供设计模型和集成构建计划,制定出适合本项目的集成测试计
33、划根据集成测试计划和设计模型设计集成测试用例及测试过程获取工作版本后,由测试设计员创建测试脚本(可选)、更新测试过程,由设计员负责设计驱动程序和桩,实施员负责实施驱动和桩测试人员根据测试脚本(可选)和工作版本执行集成测试,并记录测试结果依照集成测试计划和测试结果,由测试设计员负责会同集成员、编码员、设计人员评估此次测试,并生成测试评估摘要 45计划阶段计划阶段n n输输入入入入n n需求需求需求需求规规格格格格说说明明明明书书n n概要概要概要概要设计设计文档文档文档文档n n产产品开品开品开品开发计发计划路划路划路划路标标n n输输出出出出n n集成集成集成集成测试计测试计划划划划46计划阶
34、段计划阶段n n活活活活动动步步步步骤骤n n确定被确定被确定被确定被测试对测试对象和象和象和象和测试测试范范范范围围n n评评估集成估集成估集成估集成测试测试被被被被测试对测试对象的数量及象的数量及象的数量及象的数量及难难度,即工作量度,即工作量度,即工作量度,即工作量n n确定角色分工和划分工作任确定角色分工和划分工作任确定角色分工和划分工作任确定角色分工和划分工作任务务n n标识标识出出出出测试测试各各各各阶阶段的段的段的段的时间时间、任、任、任、任务务、约约束等条件束等条件束等条件束等条件n n考考考考虑虑一定的一定的一定的一定的风险风险分析及分析及分析及分析及应应急急急急计计划划划划
35、n n考考考考虑虑和准和准和准和准备备集成集成集成集成测试测试需要的需要的需要的需要的测试测试工具、工具、工具、工具、测试仪测试仪器、器、器、器、环环境等境等境等境等资资源源源源n n考考考考虑虑外部技外部技外部技外部技术术支援的力度和深度,以及相关培支援的力度和深度,以及相关培支援的力度和深度,以及相关培支援的力度和深度,以及相关培训训安安安安排排排排n n定定定定义测试义测试完成完成完成完成标标准准准准47设计阶段设计阶段n n输输入入入入n n需求需求需求需求规规格格格格说说明明明明书书n n概要概要概要概要设计设计n n集成集成集成集成测试计测试计划划划划n n输输出出出出n n集成集
36、成集成集成测试设计测试设计方案方案方案方案48设计阶段设计阶段n n活活活活动动步步步步骤骤n n被被被被测对测对象象象象结结构分析构分析构分析构分析n n集成集成集成集成测试测试模模模模块块分析分析分析分析n n集成集成集成集成测试测试接口分析接口分析接口分析接口分析n n集成集成集成集成测试测试策略分析策略分析策略分析策略分析n n集成集成集成集成测试测试工具分析工具分析工具分析工具分析n n集成集成集成集成测试环测试环境分析境分析境分析境分析n n集成集成集成集成测试测试工作量估工作量估工作量估工作量估计计和安排和安排和安排和安排49体系结构分析体系结构分析n n从两个角度出从两个角度出
37、从两个角度出从两个角度出发发n n划分出系划分出系划分出系划分出系统实现统实现上的上的上的上的结结构构构构层层次次次次图图n n划分系划分系划分系划分系统组统组件之件之件之件之间间的依的依的依的依赖赖关系关系关系关系图图50n n模模模模块块的大的大的大的大小小小小n n驱动驱动和和和和桩桩模模模模块块数量数量数量数量n n消息接口消息接口消息接口消息接口的复的复的复的复杂杂度度度度n n51模块分析模块分析模模模模块块划分可以从以下几个角度出划分可以从以下几个角度出划分可以从以下几个角度出划分可以从以下几个角度出发发考考考考虑虑:n n本次本次本次本次测试测试主要希望主要希望主要希望主要希望
38、测试测试哪个模哪个模哪个模哪个模块块n n这这个模个模个模个模块块与哪几个模与哪几个模与哪几个模与哪几个模块块有最密切的关系有最密切的关系有最密切的关系有最密切的关系n n把把把把该该模模模模块块与关系最密切的模与关系最密切的模与关系最密切的模与关系最密切的模块块首先集成在一起首先集成在一起首先集成在一起首先集成在一起n n再考再考再考再考虑虑外外外外围围模模模模块块,消息流是否容易模,消息流是否容易模,消息流是否容易模,消息流是否容易模拟拟,是否,是否,是否,是否方便控制方便控制方便控制方便控制52接口分析接口分析接口分析可以通接口分析可以通接口分析可以通接口分析可以通过过以下几个步以下几个
39、步以下几个步以下几个步骤骤来完成:来完成:来完成:来完成:n n确定系确定系确定系确定系统统的的的的边边界、子系界、子系界、子系界、子系统统的的的的边边界和模界和模界和模界和模块块的的的的边边界界界界n n确定模确定模确定模确定模块块内部的接口内部的接口内部的接口内部的接口n n确定子系确定子系确定子系确定子系统统内模内模内模内模块间块间接口接口接口接口n n确定子系确定子系确定子系确定子系统间统间接口接口接口接口n n确定系确定系确定系确定系统统与操作系与操作系与操作系与操作系统统的接口的接口的接口的接口n n确定系确定系确定系确定系统统与硬件的接口与硬件的接口与硬件的接口与硬件的接口n n
40、确定系确定系确定系确定系统统与第三方与第三方与第三方与第三方软软件的接口件的接口件的接口件的接口53环境分析环境分析可以从以下几个方面可以从以下几个方面可以从以下几个方面可以从以下几个方面进进行行行行n n硬件硬件硬件硬件环环境境境境n n操作系操作系操作系操作系统环统环境境境境n n数据数据数据数据库环库环境境境境n n网网网网络环络环境境境境54集成测试环境示意图集成测试环境示意图55实现阶段实现阶段n n输输入入入入n n需求需求需求需求规规格格格格说说明明明明书书n n概要概要概要概要设计设计n n集成集成集成集成测试计测试计划划划划n n集成集成集成集成测试设计测试设计n n输输出出
41、出出n n集成集成集成集成测试测试用例用例用例用例n n集成集成集成集成测试规测试规程程程程n n集成集成集成集成测试测试代代代代码码、集成、集成、集成、集成测试测试脚本、集成脚本、集成脚本、集成脚本、集成测试测试工具(如工具(如工具(如工具(如果有)果有)果有)果有)56实现阶段实现阶段n n活活活活动动步步步步骤骤n n集成集成集成集成测试测试用例用例用例用例设计设计n n集成集成集成集成测试规测试规程程程程设计设计n n集成集成集成集成测试测试代代代代码设计码设计(如果需要)(如果需要)(如果需要)(如果需要)n n集成集成集成集成测试测试脚本(如果需要)脚本(如果需要)脚本(如果需要)
42、脚本(如果需要)n n集成集成集成集成测试测试工具(如果需要)工具(如果需要)工具(如果需要)工具(如果需要)57执行阶段执行阶段n n输输入入入入n n需求需求需求需求规规格格格格说说明明明明书书n n概要概要概要概要设计设计n n集成集成集成集成测试计测试计划划划划n n集成集成集成集成测试设计测试设计n n集成集成集成集成测试测试用例用例用例用例n n集成集成集成集成测试规测试规程程程程58执行阶段执行阶段n n集成集成集成集成测试测试代代代代码码(如果有)(如果有)(如果有)(如果有) n n集成集成集成集成测试测试脚本(如果有)脚本(如果有)脚本(如果有)脚本(如果有) n n集成集
43、成集成集成测试测试工具(如果有)工具(如果有)工具(如果有)工具(如果有)n n详细设计详细设计n n代代代代码码n n单单元元元元测试报测试报告告告告n n输输出出出出n n集成集成集成集成测试报测试报告告告告59执行阶段执行阶段n n活活活活动动步步步步骤骤n n执执行集成行集成行集成行集成测试测试用例用例用例用例n n回回回回归归集成集成集成集成测试测试用例用例用例用例n n撰写集成撰写集成撰写集成撰写集成测试报测试报告告告告60相应过程的测试文档相应过程的测试文档计划阶段设计阶段实现阶段执行阶段分析评估缺陷跟踪集成测试计划集成测试设计方案集成测试用例、规程、(代码、脚本、工具)集成测试
44、报告5.5 面向对象的集成测试 5.5.1对象交互对象交互涵盖了程序中的绝大部分活动。它包括了对象及其组件的消息,还包括了对象和与之相关的其他对象之间的消息。对象的正确协作(即交互)对于程序的正确性是非常重要的。对象交互的测试方法:原始类、汇集类、协作类,分别讨论。原始类的测试使用类的单元测试方法。 5.5 面向对象的集成测试n汇集类测试n 可以使用可以使用测试原始原始类的方法来的方法来测试汇集集类,测试驱动程序要程序要创建一些建一些实例,例,这些些实例作例作为消息中的参数消息中的参数被被传递给一个正在一个正在测试的集合。的集合。测试的目的主要是保的目的主要是保证那些那些实例被正确从集合中移出
45、。有些例被正确从集合中移出。有些测试用例会用例会说明集合明集合对其容量所做的限制。假如在其容量所做的限制。假如在实际应用中可能用中可能要加入要加入40或或50条信息,那么生成的条信息,那么生成的测试用例至少要增用例至少要增加加50条信息。如果无法估算出一个有代表性的上限,条信息。如果无法估算出一个有代表性的上限,那么就使用集合中的大量那么就使用集合中的大量对象象进行行测试。5.5 面向对象的集成测试 协作类测试 凡不是汇集类的非原始类就是协作类,该类的一个凡不是汇集类的非原始类就是协作类,该类的一个或多个操作中使用其他的对象并将其作为它们的实现中或多个操作中使用其他的对象并将其作为它们的实现中
46、不可缺少的一部分。当类接口中的一个操作的某个后置不可缺少的一部分。当类接口中的一个操作的某个后置条件引用了一具对象的实例状态,并且(或者)说明那条件引用了一具对象的实例状态,并且(或者)说明那个对象的某个属性被使用或修改了,那么这个类就是一个对象的某个属性被使用或修改了,那么这个类就是一个协作类。协作类测试的复杂性远远高于汇集类或原始个协作类。协作类测试的复杂性远远高于汇集类或原始类的测试。类的测试。5.5 面向对象的集成测试 5.5.2面向对象集成测试的常用方法 1抽样测试 抽样测试提供了一种运算法则,它使我们能够从一组可能的测抽样测试提供了一种运算法则,它使我们能够从一组可能的测试用例中选
47、择一个测试序列。但并不要求一定要首先明确如何来确试用例中选择一个测试序列。但并不要求一定要首先明确如何来确定测试用例的总体。测试过程的目的在于定义感兴趣的测试总体,定测试用例的总体。测试过程的目的在于定义感兴趣的测试总体,然后定义一种方法,以便在这些测试用例中选择哪些被构建、哪些然后定义一种方法,以便在这些测试用例中选择哪些被构建、哪些被执行。被执行。 2. 正交阵列测试 正交阵列测试提供了一种特殊的抽样方法,这种方法通过定义正交阵列测试提供了一种特殊的抽样方法,这种方法通过定义一组交互对象的配对方式组合,以尽力限制测试配置的组合数目激一组交互对象的配对方式组合,以尽力限制测试配置的组合数目激增。增。 5.5 面向对象的集成测试5.5.3分布式对象测试 分布式对象的概念和特点 在类的层次上进行更彻底的测试。在类的层次上进行更彻底的测试。 在记录事件发生顺序的同时,执行大量的测试用例。在记录事件发生顺序的同时,执行大量的测试用例。 指定标准的测试环境。指定标准的测试环境。 2测试中需要注意的情况 局部故障。局部故障。 超时。超时。 结构的动态性。结构的动态性。 线程。线程。 同步。同步。