文档详情

自顶向下集成.PPT

发布:2017-08-01约3.02千字共39页下载文档
文本预览下载声明
内容提要 1.集成测试的目的 2.集成测试的方法 3.实例讲解 1.集成测试的目的 在我看来,目的就是保证每一功能模块的功能正确和性能良好,以至于这些模块组装在一起时他们可以很好地协调工作,保证整个系统功能和性能的良好。 2.集成测试的方法 2.1 分析、准备工作 2.2 制定集成策略 2.3 具体实施 2.4 需要注意的问题 2.1 分析、准备工作 a. 阅读相关文档,主要是概要设计说明书,了解整个系统的组织结构以及开发人员制定的开发顺序等内容,先从整体上把握这个系统,以便制定合适的集成策略。 b. 了解系统的开发环境,使用的语言、开发工具,以便提出必要的资源需求。 2.2 制定集成策略 常用的增量 (Incremental)型集成方式: 自顶向下集成(Top-Down) 自底向上集成(Bottom-Up) 自顶向下集成 从最具控制力的模块开始,按控制层次减弱的顺序向系统中增加模块,直至实现整个系统。 自底向上集成 从控制力最弱的模块开始,按控制层次增强的顺序向系统中增加模块,直至实现整个系统。 两种方式的总结 自底向上集成对小型到中型系统比 较有效。 自顶向下集成适用于几乎所有范围或体系结构。 在实际工作中可以灵活的混合使用。 2.3 具体实施 2.3.1 制造桩 2.3.2 制造驱动 2.3.1制造桩 目的是模拟待测系统运行的实际环境,为其提供可用来调用的模块。桩和待测系统的关系是待测系统调用桩,桩是用来满足待测系统调用其他功能模块的需要的。 比如我们要测试一只笔能否写字,就要拿来一张纸,这张纸就是测试笔时所使用的桩。 如果为一个类制造桩,所要关心的是该类中定义使用的其他类的实例(对象)。即要搞清该类都使用了哪些外部的资源。然后我们以最简单的方式来提供这些资源。 制造桩的问题,一般都会归结到编写函数上,即便这个桩是一个类。通常的C++函数有返回值和不返回值两种情况,当待测模块调用一个有返回值的函数时,我们就可以编写一个简单返回数值的函数供其调用;当待测模块调用无返回值的函数,我们就编写一个打印简单提示信息的函数供其调用,仅仅用来当函数得到调用时提示一下。 2.3.2制造驱动 目的是模拟待测系统运行的实际环境,提供调用待测系统的模块。驱动和待测系统的关系是驱动调用待测系统,驱动是用来满足待测系统被其他模块调用的需要的。 还是用测试笔写字的例子,只有笔(待测系统)和纸(桩)还不能实现写字,还必须有一只手拿着笔才可以,这时的手即是驱动。 如果为一个类制造驱动,所要关心的是该类提供了哪些供调用的公有(public)函数,即要了解怎样才能使用这个类的功能。然后在驱动模块中对这些函数进行调用,观察这些函数的工作情况。这时就需要对函数的调用参数,调用方式等方面设计测试用例。 如右图,要对CDownload类进行驱动的话,就在程序的某处这样写: … CDownload m_Download; m_Download.Download( /*参数*/ ); m_Download.Stop( /*参数*/ ); … 2.4需要注意的问题 1.类内部使用全局变量。 2.类内部使用全局函数。 3.类内部使用库函数。 4.使用宏定义。 上述这些情况也是模块(类)与外界发生联系的方式,但这些情况往往在相关文档中描述较少,在程序中又很隐蔽,这就需要我们测试人员对源程序多做一些内部的观察,还要与开发人员多进行沟通。 3.实例讲解 一个假想的学校人员管理系统 本次课内容回顾 ? 参考资料 《软件工程-实践者的研究方法》(美 ROGER S PRESSMAN著) 《面向对象系统的测试》 集成测试指南 测试CSchoolManagerDlg 待测模块 测试系统 桩模块 建立一个新的CSchool类来代替原来的CSchool类,但他要比原先的CSchool类简单。对于CSchoolManagerDlg类有用的只是CSchool类的公有函数,所以新建的桩模块不需要有原来CSchool类的属性,只保留所有的公有函数就可以了。并且这些函数只须在被调用时返回一个简单值或提示用户。 待测系统 测试系统 桩模块 继续 继续 系统中还有一些模块,如存储表,用来输入数据的对话框等,他们都是由C
显示全部
相似文档