Building test cases and oracles to automate the testing of web database applications

  • Authors:
  • Lihua Ran;Curtis Dyreson;Anneliese Andrews;Renée Bryce;Christopher Mallery

  • Affiliations:
  • Schweitzer Engineering Labs, Pullman, WA, United States;Department of Computer Science, Utah State University, Logan, UT 84321, United States;Department of Computer Science, University of Denver, United States;Department of Computer Science, Utah State University, Logan, UT 84321, United States;School of Electrical Engineering and Computer Science, Washington State University, United States

  • Venue:
  • Information and Software Technology
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many organizations rely on web applications that use back-end databases to store important data. Testing such applications requires significant effort. Manual testing alone is often impractical, so testers also rely on automated testing techniques. However, current automated testing techniques may produce false positives (or false negatives) even in a perfectly working system because the outcome of a test case depends on the state of the database which changes over time as data is inserted and deleted. The Automatic Database Tester (AutoDBT) generates functional test cases that account for database updates. AutoDBT takes as input a model of the application and a set of testing criteria. The model consists of a state transition diagram that shows how users navigate pages, a data specification that captures how data flows, and an update specification that shows how the database is updated. AutoDBT generates guard queries to determine whether the database is in a state conducive to performing and evaluating tests. AutoDBT also generates partial oracles to help validate whether a back-end database is updated correctly during testing. This paper describes the design of AutoDBT, a prototype implementation, several experiments with the prototype, and four case studies.