TY - JOUR
T1 - Technology for testing nondeterministic client/server database applications
AU - Hwang, Gwan Hwan
AU - Chang, Sheng Jen
AU - Chu, Huey Der
N1 - Funding Information:
The authors would like to thank the anonymous referees for a number of useful suggestions to improve the paper. G.-H. Hwang and S.-J. Chang’s work was supported in part by the Republic of China National Science Council under grant 89-2218-E-260-016 and ROC MOE/NSC program for promoting academic excellence of universities under grant 89-E-FA04-1-4.
PY - 2004/1
Y1 - 2004/1
N2 - The execution of a client/server application involving database access requires a sequence of database transaction events (or, T-events), called a transaction sequence (or, T-sequence). A client/server database application may have nondeterministic behavior in that multiple executions thereof with the same input may produce different T-sequences. In this paper, we present a framework for testing all possible T-sequences of a client/server database application. We first show how to define a T-sequence in order to provide sufficient information to detect race conditions between T-events. Second, we design algorithms to change the outcomes of race conditions in order to derive race variants, which are prefixes of other T-sequences. Third, we develop a prefix-based replay technique for race variants derived from T-sequences. We prove that our framework can derive all the possible T-sequences in cases where every execution of the application terminates. A formal proof and an analysis of the proposed framework are given. We describe a prototype implementation of the framework and present experimental results obtained from it.
AB - The execution of a client/server application involving database access requires a sequence of database transaction events (or, T-events), called a transaction sequence (or, T-sequence). A client/server database application may have nondeterministic behavior in that multiple executions thereof with the same input may produce different T-sequences. In this paper, we present a framework for testing all possible T-sequences of a client/server database application. We first show how to define a T-sequence in order to provide sufficient information to detect race conditions between T-events. Second, we design algorithms to change the outcomes of race conditions in order to derive race variants, which are prefixes of other T-sequences. Third, we develop a prefix-based replay technique for race variants derived from T-sequences. We prove that our framework can derive all the possible T-sequences in cases where every execution of the application terminates. A formal proof and an analysis of the proposed framework are given. We describe a prototype implementation of the framework and present experimental results obtained from it.
KW - Client/server
KW - Concurrent programming
KW - Database management system
KW - Reachability testing
UR - http://www.scopus.com/inward/record.url?scp=0742268969&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0742268969&partnerID=8YFLogxK
U2 - 10.1109/TSE.2004.1265736
DO - 10.1109/TSE.2004.1265736
M3 - Article
AN - SCOPUS:0742268969
SN - 0098-5589
VL - 30
SP - 59
EP - 77
JO - IEEE Transactions on Software Engineering
JF - IEEE Transactions on Software Engineering
IS - 1
ER -