A Method to Test the Non-deterministic Execution Behavior of Concurrent Java Program
碩士 === 國立交通大學 === 資訊工程系 === 87 === The Java programming language makes writing multithreaded code easier by building support for multithreading into the language. As a result, more and more concurrent Java programs are produced. However, the area of concurrent Java program testing has rec...
Main Authors: | , |
---|---|
Other Authors: | |
Format: | Others |
Language: | zh-TW |
Published: |
1999
|
Online Access: | http://ndltd.ncl.edu.tw/handle/82920210896644224272 |
id |
ndltd-TW-087NCTU0392059 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-TW-087NCTU03920592016-07-11T04:13:35Z http://ndltd.ncl.edu.tw/handle/82920210896644224272 A Method to Test the Non-deterministic Execution Behavior of Concurrent Java Program 並行Java程式不確定執行行為之測試方法 Jia-Hao Chen 陳家豪 碩士 國立交通大學 資訊工程系 87 The Java programming language makes writing multithreaded code easier by building support for multithreading into the language. As a result, more and more concurrent Java programs are produced. However, the area of concurrent Java program testing has received little attention in research. The phenomenon of non-deterministic execution behavior is that repeated executions of a concurrent program with the same input may exercise different execution behaviors and produce different outputs at different executions. Similar to other concurrent programs, concurrent Java programs may also have non-deterministic execution behaviors. This thesis identifies the issues caused by non-deterministic execution behavior in concurrent Java program testing and proposes solutions. A concurrent path consists of the expanded paths executed by distinct threads. The threads can be independent or have start/synchronization/communication relationships: threads can start(synchronize) other threads by calling the Thread object's start(join) method or communicate with each others by sending messages to the same object. These start/synchronization/communication activities are called inter-thread activity. Different inter-thread activity execution sequences are treated as different execution behavior. This thesis uses the reachability analysis technique to generate the all execution behaviors of a concurrent path. For the completeness of program testing, testers must test all execution behaviors of a concurrent path. But some different execution behaviors of a concurrent path have the same execution result. In consideration of test efficiency, test one of them is enough because no new errors will be uncovered by testing other ones. This thesis abstract the read/write pattern of the inter-thread activity execution sequence and found that different inter-thread activity execution sequences that have the same read/write pattern will produce the same execution result,so that test one of theses inter-thread activity execution sequences is enough. A testing environment based on the proposed solutions has been implemented. Chyan-Goei Chung 鍾乾癸 1999 學位論文 ; thesis 73 zh-TW |
collection |
NDLTD |
language |
zh-TW |
format |
Others
|
sources |
NDLTD |
description |
碩士 === 國立交通大學 === 資訊工程系 === 87 === The Java programming language makes writing multithreaded code easier by building support for multithreading into the language. As a result, more and more concurrent Java programs are produced. However, the area of concurrent Java program testing has received little attention in research.
The phenomenon of non-deterministic execution behavior is that repeated executions of a concurrent program with the same input may exercise different execution behaviors and produce different outputs at different executions. Similar to other concurrent programs, concurrent Java programs may also have non-deterministic execution behaviors. This thesis identifies the issues caused by non-deterministic execution behavior in concurrent Java program testing and proposes solutions.
A concurrent path consists of the expanded paths executed by distinct threads. The threads can be independent or have start/synchronization/communication relationships: threads can start(synchronize) other threads by calling the Thread object's start(join) method or communicate with each others by sending messages to the same object. These start/synchronization/communication activities are called inter-thread activity. Different inter-thread activity execution sequences are treated as different execution behavior. This thesis uses the reachability analysis technique to generate the all execution behaviors of a concurrent path.
For the completeness of program testing, testers must test all execution behaviors of a concurrent path. But some different execution behaviors of a concurrent path have the same execution result. In consideration of test efficiency, test one of them is enough because no new errors will be uncovered by testing other ones. This thesis abstract the read/write pattern of the inter-thread activity execution sequence and found that different inter-thread activity execution sequences that have the same read/write pattern will produce the same execution result,so that test one of theses inter-thread activity execution sequences is enough. A testing environment based on the proposed solutions has been implemented.
|
author2 |
Chyan-Goei Chung |
author_facet |
Chyan-Goei Chung Jia-Hao Chen 陳家豪 |
author |
Jia-Hao Chen 陳家豪 |
spellingShingle |
Jia-Hao Chen 陳家豪 A Method to Test the Non-deterministic Execution Behavior of Concurrent Java Program |
author_sort |
Jia-Hao Chen |
title |
A Method to Test the Non-deterministic Execution Behavior of Concurrent Java Program |
title_short |
A Method to Test the Non-deterministic Execution Behavior of Concurrent Java Program |
title_full |
A Method to Test the Non-deterministic Execution Behavior of Concurrent Java Program |
title_fullStr |
A Method to Test the Non-deterministic Execution Behavior of Concurrent Java Program |
title_full_unstemmed |
A Method to Test the Non-deterministic Execution Behavior of Concurrent Java Program |
title_sort |
method to test the non-deterministic execution behavior of concurrent java program |
publishDate |
1999 |
url |
http://ndltd.ncl.edu.tw/handle/82920210896644224272 |
work_keys_str_mv |
AT jiahaochen amethodtotestthenondeterministicexecutionbehaviorofconcurrentjavaprogram AT chénjiāháo amethodtotestthenondeterministicexecutionbehaviorofconcurrentjavaprogram AT jiahaochen bìngxíngjavachéngshìbùquèdìngzhíxíngxíngwèizhīcèshìfāngfǎ AT chénjiāháo bìngxíngjavachéngshìbùquèdìngzhíxíngxíngwèizhīcèshìfāngfǎ AT jiahaochen methodtotestthenondeterministicexecutionbehaviorofconcurrentjavaprogram AT chénjiāháo methodtotestthenondeterministicexecutionbehaviorofconcurrentjavaprogram |
_version_ |
1718343381049933824 |