TexasScholarWorks
    • Login
    • Submit
    View Item 
    •   Repository Home
    • UT Electronic Theses and Dissertations
    • UT Electronic Theses and Dissertations
    • View Item
    • Repository Home
    • UT Electronic Theses and Dissertations
    • UT Electronic Theses and Dissertations
    • View Item
    JavaScript is disabled for your browser. Some features of this site may not work without it.

    Regression test selection for C++ based on call graph analysis

    Thumbnail
    View/Open
    FU-THESIS-2018.pdf (1.652Mb)
    Date
    2018-08-01
    Author
    Fu, Ben Y.
    0000-0002-4269-9273
    Share
     Facebook
     Twitter
     LinkedIn
    Metadata
    Show full item record
    Abstract
    Regression testing -- running available tests after each project change -- is widely practiced in industry to check that a project change does not break working functionalities. Despite its widespread use and importance, regression testing is a costly activity, and the cost is steadily increasing with the increase in the number of tests and the number of changes. Regression test selection (RTS) attempts to optimize regression testing activity by deselecting tests not affected by project changes and executing remaining tests. RTS has been extensively studied and several tools have been deployed in industry. However, work on RTS over the last decade has mostly focused on managed languages (e.g., Java). Meanwhile development practices (e.g., frequency of commits, testing framework, compilers, etc.) in C++ projects have dramatically changed, and the way we should design and implement RTS tools and the benefits of those tools is unknown. This thesis presents a design and implementation of an RTS technique, named Ekstazi++, that targets projects written in C++, which use the LLVM compiler and the Google Test testing framework. Ekstazi++ implements an RTS technique based on the call graph analysis. Ekstazi++ integrates with many existing build systems, including AutoMake, CMake, and Make. We evaluated Ekstazi++ on 11 large open-source projects, totaling 3,811,916 lines of code. We measured the benefits of Ekstazi++ compared to running all available tests (i.e., retest-all) in terms of the number of executed tests, as well as end-to-end testing time. Our results show that Ekstazi++ reduces the number of executed tests and end-to-end testing time up to 97.20% and 88.09%, respectively.
    Department
    Electrical and Computer Engineering
    Subject
    Regression test selection
    Ekstazi++
    C
    C++
    LLVM
    Google Test
    Call graph analysis
    URI
    http://hdl.handle.net/2152/69028
    Collections
    • UT Electronic Theses and Dissertations

    University of Texas at Austin Libraries
    • facebook
    • twitter
    • instagram
    • youtube
    • CONTACT US
    • MAPS & DIRECTIONS
    • JOB OPPORTUNITIES
    • UT Austin Home
    • Emergency Information
    • Site Policies
    • Web Accessibility Policy
    • Web Privacy Policy
    • Adobe Reader
    Subscribe to our NewsletterGive to the Libraries

    © The University of Texas at Austin

     

     

    Browse

    Entire RepositoryCommunities & CollectionsDate IssuedAuthorsTitlesSubjectsDepartmentsThis CollectionDate IssuedAuthorsTitlesSubjectsDepartments

    My Account

    Login

    Statistics

    View Usage Statistics

    Information

    About Contact Policies Getting Started Glossary Help FAQs

    University of Texas at Austin Libraries
    • facebook
    • twitter
    • instagram
    • youtube
    • CONTACT US
    • MAPS & DIRECTIONS
    • JOB OPPORTUNITIES
    • UT Austin Home
    • Emergency Information
    • Site Policies
    • Web Accessibility Policy
    • Web Privacy Policy
    • Adobe Reader
    Subscribe to our NewsletterGive to the Libraries

    © The University of Texas at Austin