论文部分内容阅读
测试是软件开发中一个不可缺少的重要阶段。本文主要探讨有关并行程序测试的规律和方法。消息传递和共享内存是两种常用的并行编程模型,在这里我们将以消息传递并行程序为主要研究对象。 出于可移植性和可伸缩性方面的考虑,目前的分布式应用系统大多建立在通用的消息传递环境之上而独立于具体物理运行环境(计算机、网络和操作系统等)。为了阐明消息传递并行程序的工作机制,本文对当前比较有代表性的消息传递编程环境如MPI(Message Passing Interface)、PVM(Parallel Virtual Machine)和BLACS(Basic Linear Algebra Communication Subprograms)等的功能、通信效率等进行了细致的研究和分析。 并行程序中的差错可以分为控制流差错和时序差错。根据其性质,时序差错又可以进一步分为时序逻辑差错和时序性能差错。由于这三类差错之间不存在直接的因果关系,因此并行程序测试可以划分成三个相对独立的步骤——控制流测试、时序逻辑测试和时序性能测试。 针对控制流测试,本文以我们自行开发的ParCT(Parallel C-language Testing tools)为例介绍了并行程序控制流测试的实现方法、关键技术和主要功能。此工具具有易使用、可移植性强、C语言与FORTRAN语言混编、运行记录所占硬盘空间较小、测试工具对被测对象的环境及性能影响较小等优点。 建模是实现测试的第一步。本文采用了事件驱动技术来描述并行程序的运行状态和路线。事件表示能够被外界环境所察觉的、即时的和同步的操作(occurrence),在时序测试中事件被限定为与通信有关的操作并被称为同步事件(SYN-event)。本文中有关消息传递并行程序时序测试的研究均建立在粗粒度同步序列模型的基础上,其最大特点是以消息的一次发-收操作对偶作为原同步事件,亦即测试系统所能感知的最小单位。面向共享内存并行程序的同步序列模型是以对共享变量的读写作为原同步事件。 时序逻辑测试的目的在于判别程序是否按正确的数据相关性所要求的时序来运行,关于并行程序时序逻辑测试本文主要讨论了同步序