集成测试非常重要。[4] 对于传统软件的集成测试,可以根据设计阶段形成的功能分解树,采用自顶向下或自底向上逐步测试用经过测试的单元组装成系统的过程中有无错误。[3]而面向对象软件采用的是通过组合实现系统的功能,没有一个功能分解树可用,所以传统的基于功能分解的集成测试策略不适合面向对象软件。要检验最终实现中各种集成是否与设计的集成一致,则需要对每一个集成层次进行测试,而这里的集成分为结构集成和行为集成,所以面向对象软件的集成测试包含结构集成测试和行为集成测试。结构集成测试主要测试类的继承、类的容器、类的接口、组件的接口中有无错误;行为集成测试主要是类内方法交互、类间方法交互、组件间交互是否被错误地实现。测试工作的核心主要是生成测试用例,在面向对象软件开发过程中系统的规约、设计、代码是生成测试的信息来源,是软件在其生命周期不同阶段的变体,当然规约、设计、代码在每一阶段的测试中都起相应的作用,特别地,系统规约是生成系统测试的测试用例的基础和系统测试的检验依据,软件代码是生成单元测试用例的基础和单元测试的检验依据,系统设计是生成集成测试用例和集成测试的检验依据。系统的设计信息有助于理解系统功能和结构,设计模型包含规约和程序结构的信息,同时也描述了系统的相应功能片断的行为,因此也被称为灰盒。可以结合白盒测试和黑盒测试方法,从设计信息生成集成测试用例,测试设计模型表示的软件系统的灰盒行为。 UML是面向对象系统分析、设计的标准的建模语言,自从在1997年成为建模语言事实上的标准后,就得到学术界的推崇和工业界的支持,使得UML广为使用,基于UML的方法和实用技术的研究成为将来的发展趋势。UML对面向对象软件开发全生命周期的支持也使得软件开发人员优先用它来描述系统。[8]正像集许多优点的面向对象技术不能免除软件测试一样,使用UML进行面向对象软件开发,在提高软件质量的同时,仍然需要测试来确认软件分析、设计、实现的一致性和正确性。同时基于UML开发的软件系统,软件开发的分析、设计阶段工作成果多为各种模型图,系统的可用信息都在这些模型图中,给信息的提取带来了新的问题,从而也给测试带来新的课题。对测试而言,原先的基于规约或者是基于程序的方法都不能直接使用,对基于UML模型的测试,要将问题转换到原来传统测试方法可以处理的问题空间中加以解决,转换工作主要解决信息提取问题,然后用常规测试方法生成测试。面向对象的软件中,对象通过交互来实现行为,UML的交互图[6,7]是描述一组对象间的结构关系和交互行为设计的最佳选择,主要有顺序图和协作图两种,顺序图关注全局的时序,协作图关注协作对象之间的关系,本文主要研究协作图。UML协作图描述了系统的一个协作中参与对象之间如何交互,集成测试正是要验证这些对象是否正确交互,所以我们研究基于UML协作图的集成测试用例生成方法。本文中我们使用UML协作图作为系统功能片断的高级描述,用来作为生成测试的基础,使得在系统设计阶段一开始就可以计划集成测试阶段的测试。在软件开发早期准备软件测试,在软件的系统分析、设计阶段,利用每一阶段的人工制品(artifact)生成软件测试各个阶段所需的测试用例,在代码阶段结束后便可以开始测试工作,而且对分析设计模型进行分析的同时也能发现分析、设计本身的缺陷,以便及时排除,以防缺陷随着软件开发过程的进展而被放大。由于UML在工业界的使用越来越普遍,而相应支持在分析设计阶段基于模型生成测试用例的实用方法和支持工具还不多见。我们希望能够研究出仅从UML分析、设计模型图自动生成测试用例的方法,而且不需要使用者的除UML外其他方面专业的知识,能够实现自动化而不增加用户额外的工作量,这样的测试方法容易被已经使用UML的工业界采用。[8,10] 本文研究如何通过面向对象软件设计阶段的UML协作图选择合适的集成测试用例的方法,第2部分对协作图的语法和语义作了详细的介绍,并回顾了测试模型、协作集成测试模式、协作故障模型等知识;第3部分对基于协作图生成测试用例的方法作了总体介绍,详细描述了从协作图生成测试用例的具体算法和支撑工具框架原型,第4部分是相关工作的介绍,最后是结束语和将来工作的构想。
文章来源于领测软件测试网 https://www.ltesting.net/