Change-aware preemption prioritization

Vilas Jagannath, Qingzhou Luo, Darko Marinov

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Successful software evolves as developers add more features, respond to requirements changes, and fix faults. Regression testing is widely used for ensuring the validity of evolving software. As regression test suites grow over time, it becomes expensive to execute them. The problem is exacerbated when test suites contain multithreaded tests. These tests are generally long running as they explore many different thread schedules searching for concurrency faults such as dataraces, atomicity violations, and deadlocks. While many techniques have been proposed for regression test prioritization, selection, and minimization for sequential tests, there is not much work for multithreaded code. We present a novel technique, called Change-Aware Preemption Prioritization (CAPP), that uses information about the changes in software evolution to prioritize the exploration of schedules in a multithreaded regression test. We have implemented CAPP in two frameworks for systematic exploration of multithreaded Java code. We evaluated CAPP on the detection of 15 faults in multithreaded Java programs, including large open-source programs. The results show that CAPP can substantially reduce the exploration required to detect multithreaded regression faults.

Original languageEnglish (US)
Title of host publication2011 International Symposium on Software Testing and Analysis, ISSTA 2011 - Proceedings
Pages133-143
Number of pages11
DOIs
StatePublished - 2011
Event20th International Symposium on Software Testing and Analysis, ISSTA 2011 - Toronto, ON, Canada
Duration: Jul 17 2011Jul 21 2011

Publication series

Name2011 International Symposium on Software Testing and Analysis, ISSTA 2011 - Proceedings

Other

Other20th International Symposium on Software Testing and Analysis, ISSTA 2011
Country/TerritoryCanada
CityToronto, ON
Period7/17/117/21/11

Keywords

  • multithreaded
  • prioritization
  • testing

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Change-aware preemption prioritization'. Together they form a unique fingerprint.

Cite this