基于扩展同步序列的Java多线程程序可达性测试方法探讨

2016-03-13 08:52广东省工商高级技工学校
电子世界 2016年13期

广东省工商高级技工学校 陈 伟



基于扩展同步序列的Java多线程程序可达性测试方法探讨

广东省工商高级技工学校 陈 伟

【摘要】随着计算机技术的不断创新与发展,传统Java多线程程序测试方法的局限性越加明显,基于拓展同步系列的可达性测试方法可以解决传统可达性测试方法的检测错误,并在Java多线程程序检测中崭新出明显的优势。本文主要通过分析基于扩展同步序列的Java多线程程序可达性测试,探讨基于扩展同步序列的可达性测试方法,旨在为我国计算机程序的编写和测试提供参考。

【关键词】扩展同步序列;可达性测试;Java多线程程序

随着计算机应用技术的不断进步和发展,传统Java多线程程序的测试方法已经不能满足现代计算机编程语言的开发和利用。而扩展同步序列的Java多线程程序可达性测试解决了传统测试方法出现的检测事件未同步错误或者同步不当的现象。扩展同步序列的Java多线程程序可达性测试主要由三个部分组成,包括计算拓展同步序列、构建Java多线程程序流图、确定性测试。

1 Java可达性测试的定义

可达性测试的方法是上个世纪提出来的,这种新的测试思想是以非确定性测试方法为思想基础。可达性测试方法的提出是计算机技术领域的一次重大的创新和改革,在原有测试思想技术的的基础上实现了测试Java的并发程序。在进行Java程序的测试的时候,是以路径测试策略作为基础进行相关测试策略。其中Java并发程序的测试是以同步序列作为测试方法,同时彻底覆盖了传统测试思想为基础的测试度量。同步序列的测试方法是在一定规范的时间内进行的一种有序的时间序列,主要由两个关键的同步因素组成,分别是同步的对象和同步的的事件。在Java的并发程序中有不同路径的线程以及对线程的进程实现相关同步对象的共享或者直接访问。并且在特定的操作过程或者操作的环境中,针对不同的同步对象进行实现不同方式的操作,就是同步事件。在进行Java多线程程序可达性测试的时候,首要注意的问题就是的要保证进行同步对象操作的时候,实现操作对象的同步化,在此基础上,才能保证测试对象数据的完整性。这种同步操作的方式就是可达性测试中的同步事件。其中在Java多线程程序的可达性测试中,还存在的一种事件类型是非同步事件,这种事件的主要表现方式是在可达性测试过程中不能进行同步化的操作。

2 基于扩展同步序列Java可达性测试的意义

同步序列的的同步对象和同步事件是同步序列中最基本的两个组成因素,和传统的可达性测试存在一定的差异性。传统的可达性测试中是以度量同步序列的覆盖作为测试基础,但是在同步序列中没有涉及到程序中的非同步事件,所以在Java的可达性测试中还是会出现一定比例程度的错误,造成检测的范围存在一定的局限性,在进行Java程序并发性检测的时候不能保证检测结果的有效性。举例说明,如果在进行Java程序检测的时候,同步对象和同步事件没有得到关联性的同步,或者同步对象在事件同步的时候操作的不当出现一些技术性的问题等。出现的这些问题有效证明了传统Java程序的可达性测试存在很多的弊端。所以要应用基于拓展同步序列的可达性测试方法来突破传统Java程序可达性测试的局限性。

3 基于拓展同步Java可达性测试

因为传的Java程序的可达性测试的局限性,很大程度上限制了Java程序测试结果的准确性。在计算机技术不断发展的过程中,提出了基于拓展同步序列的Java可达性测试方法,在这种测试方法的基础上解决了很多传统Java程序的可达性测中出现的问题。基于拓展同步的Java可达性测试,以线程的角度将拓展同步序列作为并发程序测试覆盖的度量基础,最终对Java多线程程序进行可达性测试。拓展同步序列的主要工作原理是一定的时间序列范围内,在构成元素的基础上实现同步事件和并行事件的关联。

4 基于扩展同步序列的可达性测试方法

在有序时间序列和构成元素的同步事件关联并行事件的基础上,进行基于拓展同步序列可达性测试方法,是Java多线程程序中同步事件测试的一种有效的同步方法,也可以称为是一种同步实现的操作过程。下列是扩展同步序列的Java多线程程序可达性测试方法的具体操作的要点和方法。

4.1Java多线程程序执行事件的序列

执行事件的构建需要由专业的Java程序的测试人员来完成,在测试过程中得出程序的静态条件。程序执行事件中的同步事件,需要技术人员对抽象的同步读事件或者同步写事件,用Sr或者Sw进行表示。根据多线程程序中的同步对象进行同步信息的更新,这个过程就程序执行事件中的执行写事件;对抽取的相关同步信息进行操作就是同步读事件。在进行单个线程事件序列执行的过程中,要严格按照一定的公式顺序对测试的各种程序事件进行排列组合,其依据的公式是s[i]=(pk,,…,pm,),其中i表示测试的线程,s表示相关的同步事件,p表示相关的并行事件,上标的数字表示同步对象的版本号,能够直观的反映出Java多线程程序中更新同步对象和事件具体状况。

4.2Java多线程程序的扩展同步序列计算

公式s[i]=(pk,,…,pm,)中的s是Java多线程程序中并发程序中的一个可行性同步序列,p可以看做是其他相关可行性序列的一个前缀。在Java多线程程序的并发程序中,相关可行性同步序列的前缀也是自身序列的一种的竞争元素,这种竞争的元素可以利用计算机构建出相关的竞争元素构成图,在构成图的基础上可以对一定的拓展同步序列进行计算,最终可以得出:如果要保证在可行性扩展同步序列中的子序列具有一定的同步可行性,同步序列中由同步事件的组成的次序保持不变。根据这个得出的结果,可以对多线程程序的可行性同步序列进行计算,计算过程要依据两个执行序列的公式,分别是消费者执行事件序列和生产者事件执行序列,其执行事件序列公式的分别是:s[2]=(,p1,…,,p1,…)和s[3]=(p2,,p2,,…),最终实现对多线程程序的可行性同步序列的计算。

4.3Java多线程程序的确定性测试

相关的程序测试人员要根据已经构建的Java多线程程序的拓展的同步序列,进行同步序列测试的确定性操作。从现在的对具体操作实践的具体情况分析来看,同步序列的确定性测试操作经常采用的方法有两种,分别有:第一,对程序应用的编译器进行修改,并且根据编译器的运行情况适当做出程序运行操作系统的和运行环境的修改,最终实现对Java多线程程序事件执行顺序的有效控制。第二,利用Java编程程序语言的特殊性实现自身对Java多线程程序事件执行顺序的控制。两种同步序列的确定性测试操作的方法都可以实现同步序列测试确定性操作的有效性,相关的测试人员可以根据实际的Java多线程程序可达性测试的情况,选择适合当前运行方式和运行环境的方法对程序事件执行顺序的控制。

5 结语

综上所述,随着科学技术的不断发展,计算机信息技术实现在众多领域中的应用,为我国相关的开发和设计事业提供了技术型的支持。在我国众多开发领域中较为广泛应用的一种程序的就是Java程序,虽然在具体的多线程程序可达性测试进行中存在一定难度,但是基于扩展同步序列的可达性测试方法的应用,Java多线程程序的并发性测试取得了良好的应用效果,为我国计算机程序的设计和开发提供了技术参考。

参考文献

[1]孙玉霞.一个生成Java程序同步序列集的新算法[J].暨南大学学报,2012(05).

[2]王艳臣.基于扩展同步序列的Java多线程程序可达性测试方法[J].东南大学学报,2011(12).

[3]孙小淋.基于扩展同步序列的Java多线程程序可达性测试思路构建探索[J].计算机光盘软件与应用,2014(04).