论文部分内容阅读
统一建模语言(Unified Modeling Language,UML)是一种描述能力强大且涵义直观的可视化建模语言,它提供多种图元从不同角度和应用层次刻画系统特性以及复杂的运行环境。基于UML的软件开发过程和建模环境已被工业界广泛接受,其中包括航天、国防、汽车等许多安全攸关领域。如何保证和提高软件质量成为软件界最为关心的问题之一。软件测试作为保证软件质量的关键技术之一,能够有效地发现软件中的故障。因而,基于UML软件测试成为了软件工程的一个重要研究方向。软件测试的关键是测试用例的产生。本文对基于UML statecharts图的测试用例生成方法进行了研究和探讨。直接从含有层次和并发结构的UML statecharts图产生类的测试用例是比较困难的,本文提出了基于UML statecharts图的测试框架:先利用现有的UML工具(如ArgoUML等)画出UML statecharts图,并产生它的XMI(XML Metadata Interchange)格式的规格说明文件;然后根据UML statecharts图的语义,层次和并发结构被展平, UML statecharts图的规格说明XML文件转换成FREE(Flattened Regular Expression)模型的规格说明信息;最后根据FREE模型的规格说明信息,按照不同的充分性测试准则,分别产生测试用例集。UML statecharts图是一种图形符号,描述了UML框架的行为,它是UML语言的一个重要组成部分。然而,UML statecharts图缺乏精确的语法和语义。本文用Z语言定义了UML statecharts图的形式化语法和语义。按照这个精确语义,UML statecharts图被转换成了FREE模型。这个FREE模型不仅有助于确定软件设计是否是一致的、无歧义的和完整的,而且也有利于软件测试。测试充分性准则是整个软件测试的核心,它直接决定了测试用例的生成。目前基于UML状态图生成测试用例的充分性准则:状态覆盖准则、迁移覆盖准则、全谓词公式覆盖准则和迁移对覆盖准则,它们没有解决测试循环的问题。在测试时,循环被执行一次是很不充分的,按照不完全归纳法的思想,本文提出了ZOT循环覆盖准则,也就是使循环分别执行0次、1次、2次;针对A.J.Offutt等人给出的覆盖准则“完全序列准则”(complete sequence level),由于它的操作性极弱,无法在工具中实现,在此基础上结合ZOT循环覆盖准则,本文还提出了全ZOT路径覆盖准则。并给出了状态覆盖、迁移覆盖、全谓词公式覆盖、迁移对覆盖、ZOT循环覆盖和全ZOT路径覆盖这6条覆盖准则的应用,还讨论了这些覆盖准则之间的包含关系。A.J.Offutt给出的两条测试准则(全谓词公式覆盖和迁移对覆盖)产生测试用例的算法只适用于以下情况:一方面只对使能迁移产生测试,另一方面它需要所有的变量都是布尔型的。本文针对这两个方面的问题进行了扩充,不仅可