• DocumentCode
    625515
  • Title

    Generating Unit Tests for Concurrent Classes

  • Author

    Steenbuck, Sebastian ; Fraser, Gordon

  • Author_Institution
    Saarland Univ. - Comput. Sci., Saarbrucken, Germany
  • fYear
    2013
  • fDate
    18-22 March 2013
  • Firstpage
    144
  • Lastpage
    153
  • Abstract
    As computers become more and more powerful, programs are increasingly split up into multiple threads to leverage the power of multi-core CPUs. However, writing correct multi-threaded code is a hard problem, as the programmer has to ensure that all access to shared data is coordinated. Existing automated testing tools for multi-threaded code mainly focus on re-executing existing test cases with different schedules. In this paper, we introduce a novel coverage criterion that enforces concurrent execution of combinations of shared memory access points with different schedules, and present an approach that automatically generates test cases for this coverage criterion. Our CONSUITE prototype demonstrates that this approach can reliably reproduce known concurrency errors, and evaluation on nine complex open source classes revealed three previously unknown data-races.
  • Keywords
    concurrency control; multi-threading; program testing; Consuite prototype; automated testing tools; concurrent classes; multicore CPU; multithreaded code; novel coverage criterion; shared memory access points; unit test generation; Computer bugs; Concurrent computing; Instruction sets; Java; Schedules; Synchronization; Testing; concurrency coverage; search based software engineering; unit testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Testing, Verification and Validation (ICST), 2013 IEEE Sixth International Conference on
  • Conference_Location
    Luembourg
  • Print_ISBN
    978-1-4673-5961-0
  • Type

    conf

  • DOI
    10.1109/ICST.2013.33
  • Filename
    6569726