Font Size: a A A

A study on reproducible testing for distributed multithreaded Java programs

Posted on:2001-09-07Degree:M.ScType:Thesis
University:University of Windsor (Canada)Candidate:Cai, XiubinFull Text:PDF
GTID:2468390014956580Subject:Computer Science
Abstract/Summary:
Distributed Multithreaded (DM) programs are becoming more popular along with the development of network and Internet technology. Regarding the aspects of concurrency and communications such as message-passing, shared memory, and Remote Procedure Call (RPC), nondeterministic behavior in a Distributed Multithreaded (DM) program has become one of the biggest sources of difficulties in regression testing. Reproducible testing aims at providing methods and techniques to deal with this problem in testing nondeterministic programs. Such techniques cover the controlled execution of the program by using a separate control mechanism that forces the execution with a given test case.; In this thesis, we describe a reproducible testing method for DM programs. We propose an extended design notation—PMSC (Parallel Message Sequence Chart) based on MSC (Message Sequence Chart) to explicitly represent the static information of DM programs such as flow controls, thread interaction and synchronization, and object behavior. We also introduce a test case specification in Petri net, which is sufficient for describing a certain degree of deterministic behavior of concurrent programs. By constructing test constraints from the test case specification in Petri net, we can use the test constraints as a test scenario for our testing.; Based on the PMSC model and test constraints, we provide a new test control mechanism and algorithm that the test{09}controller (TC) consists of multiple test controllers for multiple processes. A prototype is developed to evaluate the performance of our reproducible testing approach. It shows that our approach can control a certain degree of deterministic execution with given test constraints. And the multiple test controllers can reduce the number of communications among the test controllers and the processes of the program.
Keywords/Search Tags:Test, Program, Multithreaded
Related items