Abstract
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.
| Original language | English |
|---|---|
| Pages (from-to) | 59-77 |
| Number of pages | 19 |
| Journal | IEEE Transactions on Software Engineering |
| Volume | 30 |
| Issue number | 1 |
| DOIs | |
| Publication status | Published - 2004 Jan |
Keywords
- Client/server
- Concurrent programming
- Database management system
- Reachability testing
ASJC Scopus subject areas
- Software
Fingerprint
Dive into the research topics of 'Technology for testing nondeterministic client/server database applications'. Together they form a unique fingerprint.Cite this
- APA
- Standard
- Harvard
- Vancouver
- Author
- BIBTEX
- RIS