集成测试

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三集成测试

1实验类型:设计性要求:必做学时:6

2实验内容:在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。

3实验的基本要求:

1、要求学生掌握桩模块和驱动模块的开发。

2、发现并排除在单元模块连接中可能发生的问题。

4 实验主要方法

1 定义:集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。

实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。一些局部反映不出来的问题,在全局上很可能暴露出来。

子系统:子系统是一种模型元素,它具有包(其中可包含其他模型元素)和类(其具有行为)的语义。子系统的行为由它所包含的类或其他子系统提供。子系统实现一个或多个接口,这些接口定义子系统可以执行的行为。

使用

可以通过多种互补的方法来使用子系统,将系统分为若干个单元,这些单元:

可以独立预定、配置或交付可以独立开发(只要接口保持不变)可以在一组分布式计

算节点上独立部署可以在不破坏系统其他部分的情况下独立地进行更改此外,子系统还可以:将系统分为若干单元,以提供对关键资源的有限安全保护在设计中代表现有产品或外

部系统

从类协作中确定子系统

如果某个协作中的各个类只是在相互之间进行交互,并且可生成一组定义明确的结果,就应将该协作和它的类封装在一个子系统中。

这一规则同样适用于协作的子集。可以对协作的任何部分或全部进行封装和简化,这

将会使设计更易于理解。

桩模块和驱动模块:软件测试技术的一种,主要用在单元测试阶段。由于对已开发的单元模块功能和行为测试会涉及到仿真对象的概念,比如说驱动模块和桩模块。

驱动模块是用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启用被测模块,并打印出相应的结果。

桩模块(Stub)是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。主模块作为驱动模块,与之直接相连的模块用桩模块代替。在集成测试前要为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。

如果被测试的单元模块需要调用其他模块中的功能或者函数(method),我们就应该设计一个和被调用模块名称相同的桩模块(Stub)来模拟被调用模块。这个桩模块本身不执行任何功能仅在被调用时返回静态值来模拟被调用模块的行为。举例说明:如果被测试单元中需要调用另一个模块customer的函数getCustomerAddress(customerID: Integer),这个函数应该查询数据库后返回某一个客户的地址。我们设计的同名桩模块(Stub)中的同名函数并没有真正对数据库进行查询而仅模拟了这个行为,直接返回了一个静态的地址例如"123 Newton Street"。桩模块(Stub)的设置使得单元测试的进行成为一个相对独立且简单的过程。

模块连接:传统的单元测试包括了驱动模块(driver)和桩模块(stub)。驱动模块的目的很单纯,就是为了访问类库的属性和方法,来检测类库的功能是否正确;

Normal 0 0 2 false false EN-US KO X-NONE MicrosoftInternetExplorer4 如果被测试模块中的函数是提供给其他函数调用的,在设计测试用例时就应该设计驱动模块(Driver)。

举例来说:驱动模块(Driver)可以通过模拟一系列用户操作行为,比如选择用户界面上的某一个选项或者按下某个按钮等,自动调用被测试模块中的函数。驱动模块(Driver)设置,使对模块的测试不必与用户界面真正交互。

2 目标:集成测试的目标是按照设计要求使用那些通过单元测试的构件来构造程序结构。单个模块具有高质量但不足以保证整个系统的质量。有许多隐蔽的失效是高质量模块间发生非预期交互而产生的。以下两种测试技术是用于集成测试:

1)功能性测试。使用黑盒测试技术针对被测模块的接口规格说明进行测试。

2)非功能性测试。对模块的性能或可靠性进行测试。

集成测试

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

集成测试是确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。它所测试的内容包括单元间的接口以及集成后的功能。使用黑盒测试方法测试集成的功能。并且对以前的集成进行回归测试。

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

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

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

3、模块代码编制和测试进度是否与组装测试的顺序一致

4、测试过程中是否需要专门的硬件设备;

解决了上述问题之后,就可以列出各个模块的编制、测

试计划表,标明每个模块单元测试完成的日期、首次集成测试的日期、集成测试全部完成的日期、以及需要的测试用例和所期望的测试结果。

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

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

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

相关文档
最新文档