Rice Univesrity Logo
    • FAQ
    • Deposit your work
    • Login
    View Item 
    •   Rice Scholarship Home
    • Graduate and Undergraduate Student Research
    • Rice University Graduate Research
    • Rice Graduate Student Collection
    • View Item
    •   Rice Scholarship Home
    • Graduate and Undergraduate Student Research
    • Rice University Graduate Research
    • Rice Graduate Student Collection
    • View Item
    JavaScript is disabled for your browser. Some features of this site may not work without it.

    A Framework for Testing Concurrent Programs

    Thumbnail
    Name:
    PhDThesis-Ricken.pdf
    Size:
    1.657Mb
    Format:
    PDF
    Description:
    PhD Thesis
    View/Open
    Author
    Ricken, Mathias
    Date
    2011
    Abstract
    This study proposes a new framework that can effectively apply unit testing to concurrent programs, which are difficult to develop and debug. Test-driven development, a practice enabling developers to detect bugs early by incorporating unit testing into the development process, has become wide-spread, but it has only been effective for programs with a single thread of control. The order of operations in different threads is essentially non-deterministic, making it more complicated to reason about program properties in concurrent programs than in single-threaded programs. Because hardware, operating systems, and compiler optimizations influence the order in which operations in different threads are executed, debugging is problematic since a problem often cannot be reproduced on other machines. Multicore processors, which have replaced older single-core designs, have exacerbated these problems because they demand the use of concurrency if programs are to benefit from new processors. The existing tools for unit testing programs are either flawed or too costly. JUnit, for instance, assumes that programs are single-threaded and therefore does not work for concurrent programs; ConTest and rstest predate the revised Java memory model and make incorrect assumptions about the operations that affect synchronization. Approaches such as model checking or comprehensive schedule- based execution are too costly to be used frequently. All of these problems prevent software developers from adopting the current tools on a large scale. The proposed framework (i) improves JUnit to recognize errors in all threads, a necessary development without which all other improvements are futile, (ii) places some restrictions on the programs to facilitate automatic testing, (iii) provides tools that reduce programmer mistakes, and (iv) re-runs the unit tests with randomized schedules to simulate the execution under different conditions and on different ma- chines, increasing the probability that errors are detected. The improvements and restrictions, shown not to seriously impede programmers, reliably detect problems that the original JUnit missed. The execution with randomized schedules reveals problems that rarely occur under normal conditions. With an effective testing tool for concurrent programs, developers can test pro- grams more reliably and decrease the number of errors in spite of the proliferation of concurrency demanded by modern processors.
    Description
    This paper was submitted by the author prior to final official version. For official version please see http://hdl.handle.net/1911/70411.
    Citation
    Ricken, Mathias. "A Framework for Testing Concurrent Programs." (2011) Rice University: https://hdl.handle.net/1911/62284.
    Keyword
    Testing; Concurrent programming; Java
    Publisher
    Rice University
    Citable link to this page
    https://hdl.handle.net/1911/62284
    Rights
    Copyright is held by the author
    Metadata
    Show full item record
    Collections
    • Rice Graduate Student Collection [41]

    Home | FAQ | Contact Us | Privacy Notice | Accessibility Statement
    Managed by the Digital Scholarship Services at Fondren Library, Rice University
    Physical Address: 6100 Main Street, Houston, Texas 77005
    Mailing Address: MS-44, P.O.BOX 1892, Houston, Texas 77251-1892
    Site Map

     

    Searching scope

    Browse

    Entire ArchiveCommunities & CollectionsBy Issue DateAuthorsTitlesSubjectsTypeThis CollectionBy Issue DateAuthorsTitlesSubjectsType

    My Account

    Login

    Statistics

    View Usage Statistics

    Home | FAQ | Contact Us | Privacy Notice | Accessibility Statement
    Managed by the Digital Scholarship Services at Fondren Library, Rice University
    Physical Address: 6100 Main Street, Houston, Texas 77005
    Mailing Address: MS-44, P.O.BOX 1892, Houston, Texas 77251-1892
    Site Map