基于流语言的并发软件测试

来源 :浙江理工大学 | 被引量 : 0次 | 上传用户:aywjx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
并发程序的测试一直是软件测试中的关注点。所谓并发程序是指两个或多个进程(或线程)协同完成一个任务。每个进程是一个序列程序执行一串语句。进程间的交流是通过信息传递来完成。然而由于与生俱来的不确定性(使用了不确定性语句,过程的进程速度难以预知),并发程序的测试有很大难度。 软件测试过程包括测试用例生成和测试用例运行。鉴于测试用例生成在测试中占有主要作用,本文主要考虑测试用例的生成。用于生成测试用例的方法可分为两种:随机测试(RandomTesting)和分域测试(PartitionTesting)。随机测试不能保证满足标准,并且不能覆盖所有的元素。分域测试现有很多方法,这些方法以覆盖所有语句,控制流,数据流或关键路径为目标。考虑到分域测试各方法的特点,从整体来说可归结为基于路径的方法和基于状态的方法。基于路径的测试首先选取测试路径,然后沿着测试路径对输入空间进行分解,但是这样的方法没有按程序语义进行,容易产生不可行路径。基于状态的测试主要以状态机或变迁系统作为产生测试数据的模型,状态空间会随着过程数增加而指数增长,很容易导致状态爆炸问题。 为了克服以上两种方法带来的缺点并且保持原有的优点,本文提出了一种形式化方法,用于对基于流的序列程序和并发程序产生测试用例。我们首先定义条件和循环覆盖准则,然后通过条件演算(conditioncalculation)对序列程序产生测试用例,最后根据定义的交互信息覆盖准则,在并发程序产生测试用例过程中将这些序列程序测试用例合并产生同步序列(SYN-sequence)。该方法是一种精确的系统的测试程序的方法。由于所产生的测试用例都是沿着程序语义进行,所以与现有的一些方法相比,该方法避免了隐含的不可行路径。另外,通过对算法复杂度的分析也表明了该方法不会产生状态爆炸。
其他文献
传统的搜索引擎的搜索方式是基于倒排索引的全文检索,也就是根据搜索语句查询索引库中的检索方式,并没有很好地利用搜索语句所表达的含义,这样就不能准确识别出用户的具体需求,势
近年来,由于非线性混沌理论的飞速发展,又因为混沌同步在安全通信领域中的极好应用价值,使得混沌同步成为学者们的研究热点。本文利用理论推导和数值模拟相结合的方法研究了三角
移动自组网(Mobile Ad Hoc Network,MANCET)是由一组具有路由转发功能的移动节点组成,其特点是没有固定的通信设施,网络中的所有节点都是可以移动的,每个节点既是终端又是路由器
随着Internet业务快速增长,语音、数据、视频通信业务的综合化发展,数据流量将超过话音流量。因此,建立高速宽带的波分复用(WDM)全光网络已成为本世纪通信网络的发展趋势。作
在嵌入式领域,随着微处理器性能的提高,系统复杂度越来越高,实时操作系统RTOS(Real Time Operating System)正得到越来越广泛的应用。但是,目前市场上应用广泛的多是一些付费的RT
本文的主要工作是将软件定义网络(Software Defined Networking)与信息中心网络(Information Centric Networking)结合,为互联网从当今的1P网络向信息中心网络转变提供一个过
随着网络技术的不断发展,互联网已经成为人们必不可少的信息分享与传播平台。在近代科学研究、军事技术、工农业生产、医学、气象及天文学等领域中,人们也越来越多的利用图像信
随着人类基因组计划的进展,对于基因的功能和基因组内各基因的研究逐步深入,研究基因在不同时间和条件下的表达情况,是认识基因功能的一个主要途径。为了确定某个基因的功能,我
随着数据业务的快速增长,人们对无线/移动数据传输的带宽要求已经大大超过了目前蜂窝式系统所能提供的容量;而无线局域网(WLAN)接入速率远高于蜂窝网,并且具备一系列的独特优点,
随着网络技术的飞速发展,信息共享给人们带来极大方便的同时也带来了不少安全隐患。长期以来,人们对基于网络应用的外部防范技术关注较多,对计算机主机系统安全关注的较少。