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...

Full description

Bibliographic Details
Main Authors: Jia-Hao Chen, 陳家豪
Other Authors: Chyan-Goei Chung
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