TY - JOUR
T1 - Technology for testing nondeterministic client/server database applications
AU - Hwang, Gwan Hwan
AU - Chang, Sheng Jen
AU - Chu, Huey Der
PY - 2004/1/1
Y1 - 2004/1/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
VL - 30
SP - 59
EP - 77
JO - IEEE Transactions on Software Engineering
JF - IEEE Transactions on Software Engineering
SN - 0098-5589
IS - 1
ER -