论文部分内容阅读
摘要: 本文分析了面向对象软件的特点及其对测试的影响,综述了面向对象软件测试的层次划分、各层的测试特点以及类级和类簇级的各种测试方法。文章着重研究探讨了面向对象测试技术在空管系统中的应用,同时探讨了基于UML的状态图的类的测试用例自动生成方法。本文首先介绍了面向对象方法引入的特性如封装、继承、多态等给测试面向对象软件所带来的困难;然后按照软件测试步骤详细阐述了面向对象软件的单元测试、集成测试和系统测试技术。类是面向对象测试的基本单元,类测试一般分为基于数据流的测试方法和基于对象状态的测试方法.该文对传统的面向过程的数据流测试方法进行了改进,通过对UML的状态图的规约文件解析出来的消息序列进行算法的优化。现有的基于对象状态的测试方法大多是利用传统的扁平状态机,扁平状态机不支持嵌套和并发,而且具有很高的复杂度;该文摒弃了传统的状态机,取而代之以UML状态图来描述对象的状态和状态之间的迁移,并通过构造一棵测试树来自动生成基于对象状态的测试用例。自动化测试技术在软件开发中占有非常重要的作用,从UML的模型中自动生成精确合理的测试用例是论文探讨的一个方向。本文的实例空管系统是一个面向对象的大型实时软件系统,实时系统的测试难点在于实时系统的并发性和时间限制,状态图能在一定程度上解决这个问题。通过分析实例,文章给出了测试一个面向对象的实时软件的完整的过程,从单元测试到系统测试,以及测试计划、测试策略等的选取,<WP=3>特别是测试用例的选取。对于实时软件开发,作者认为更理想的方法是利用Rhapsody 这种模型驱动的(Model-Driven Development--MDD)软件开发平台,Rhapsody本身也提供了基于模型的测试,能够最大限度的让系统、硬件、软件和测试工程师以更加灵活和优化的方式协同开发和交流。本文的方法不仅涉及到软件系统的测试,同时也适用于软件设计阶段的对软件需求和设计模型的测试和验证。软件测试应贯穿于软件定义与开发的整个周期,软件的需求规格说明书 ,结构设计及程序编码,都属于软件测试的对象。一个良好的软件需求分析模型的建立对软件开发中的测试工作起着重大的作用。