论文部分内容阅读
软件开发是一个智力密集型的过程,每个过程都需要人参加,人非圣贤,孰能无过,所以软件中总是有错误的。目前,软件测试依然是发现软件错误提高软件质量的行之有效的方法。但是,随着软件开发方法和软件工程过程的发展,特别是面向对象技术的广泛应用和USDP软件过程的应用大大提高了业界的软件开发能力,面向对象软件也越来越广泛地应用在社会各个领域,面向对象技术自身的各种特性给软件测试带来了新的挑战。除此之外,面向对象技术还促进了并发程序在软件中的应用,使得测试变得更加困难。传统的软件测试方法和技术是基于结构化思想的,较少考虑面向对象技术的特性,很多情况下它们不能适应面向对象软件的测试。为了对面向对象软件进行有效的测试,迫切需要研究面向对象软件的测试方法和技术。统一建模语言(UML)是面向对象的标准建模语言,已经受到业界的广泛认可,UML支持面向对象设计各个阶段的工作,使用UML建立的模型能够很好的描述面向对象软件各个方面的特性,这为测试工作提供了不少方便。因此,基于被测软件的UML模型的测试及其自动化方法和技术的研究也就成为当前测试领域研究的热点。国内外提出了许多基于UML的软件测试理论和方法,但是对于并发测试的研究却不多见,而本课题正是要探讨并发软件的测试方法,这对提高我国并发软件测试理论和技术有着重要的学术和实用意义。本文首先总结了传统软件测试的基本知识和理论,给出了测试模型的重要性,提出了基于线索的测试方法的意义和框架,概述了测试自动化的意义和发展;讨论了面向对象技术给软件测试带来的影响,总结了面向对象软件的测试层次和测试现状,重点介绍了基于UML的面向对象测试技术[1],为研究基于活动图的并发软件测试方法提供了基础。为了有效地测试并发软件,本文研究了在计算机中的并发实现、并发调度方法和并发控制的一般原理,针对并发控制的特点提出了三个并发软件的基本测试覆盖策略。这三个策略给出了并发软件测试的基本原则:同步覆盖、关键覆盖和进程覆盖,为测试并发软件提供了一定的指导。针对并发控制的一般原理,本文给出了一种使用UML活动图对软件中并发控制过程建立模型图的方法,使用该方法建立的模型图能够很好的描述并发软件的一般特征,为测试提供了基础;分析了并发软件测试难点即进程组合爆炸问题,提出了一种基于模型图生成测试线索集的方法,证明了按照生成的测试线索集测试并发软件既能解决进程组合爆炸问题,又能满足前述三个并发软件测试策略。由于模型图是针对并发控制的一般原理建立,具有较好的通用性,所以本文测试方法适用于一般并发软件的测试,具有较好的通用性。本文通过对比分析研究,指出本文测试方法在易用性,适用性和稳定性等方面优于Kim S-K等人提出的基于状态图的测试方法。为了提高本文方法的自动化,本文设计了一个测试线索自动生成软件实现从UML模型自动生成测试线索集。最后,本文通过一个实例表明了应用本方法的可行性和有效性。