Applying the Bisection Method to Performance Regression Testing in Distributed Systems

  • Valentin Neustifter

    Student thesis: Master's Thesis

    Abstract

    Performance is an important aspect of software systems, therefore performance regressions should be avoided as much as possible. As a system grows larger however, avoiding
    performance regressions becomes an increasingly difficult task. Regression testing is a
    common practice to make sure that any changes to a system do not negatively affect its performance. Regression testing can be a very complex and costly endeavour
    though, especially in modern, large-scale distributed systems that are running in the
    cloud. Despite putting lots of effort into regression testing, it happens time and again
    that software with bad performance gets released or that the performance of a system
    decays over time. Upon encountering a performance regression, it is then important to
    find where it was introduced to be able to quickly fix it.
    This thesis proposes an automatic approach to localize performance regressions in
    distributed systems by utilizing the bisection method. Doing so, a large number of commits can be searched for regressions in a relatively short time using binary search. The
    approach is then implemented in two different ways. First, there is an implementation
    with a smaller test system that is using a microservice architecture to mimic a bigger,
    modern distributed system. Performance regressions are intentionally built into this
    system to extensively test the proposed approach and evaluate how capable it is of
    finding performance regressions. Secondly, the approach is then also applied to a large
    distributed system, namely the Dynatrace platform. Within this enterprise setting, a
    different implementation for the same approach is done. Compared to the first implementation, many components have been adapted or were developed from scratch to
    handle the specific requirements that working with a large distributed system brings
    along. Finally, the implementation is tested and evaluated again regarding its ability to
    localize performance regressions.
    Date of Award2024
    Original languageEnglish (American)
    SupervisorClemens Holzmann (Supervisor)

    Cite this

    '