Debug Software

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 5118 Experts worldwide ranked by ideXlab platform

Van Deursen A. - One of the best experts on this subject based on the ideXlab platform.

  • Search-Based Crash Reproduction and Its Impact on Debugging
    'Institute of Electrical and Electronics Engineers (IEEE)', 2020
    Co-Authors: Soltani M., Panichella A., Van Deursen A.
    Abstract:

    Software systems fail. These failures are often reported to issue tracking systems, where they are prioritized and assigned to responsible developers to be investigated. When developers Debug Software, they need to reproduce the reported failure in order to verify whether their fix actually prevents the failure from happening again. Since manually reproducing each failure could be a complex task, several automated techniques have been proposed to tackle this problem. Despite showing advancements in this area, the proposed techniques showed various types of limitations. In this paper, we present EvoCrash, a new approach to automated crash reproduction based on a novel evolutionary algorithm, called Guided Genetic Algorithm (GGA). We report on our empirical study on using EvoCrash to reproduce 54 real-world crashes, as well as the results of a controlled experiment, involving human participants, to assess the impact of EvoCrash tests in Debugging. Based on our results, EvoCrash outperforms state-of-the-art techniques in crash reproduction and uncovers failures that are undetected by classical coverage-based unit test generation tools. In addition, we observed that using EvoCrash helps developers provide fixes more often and take less time when Debugging, compared to developers Debugging and fixing code without using EvoCrash tests.

  • Search-Based Crash Reproduction and Its Impact on Debugging
    'Institute of Electrical and Electronics Engineers (IEEE)', 2020
    Co-Authors: Soltani M., Panichella A., Van Deursen A.
    Abstract:

    Software systems fail. These failures are often reported to issue tracking systems, where they are prioritized and assigned to responsible developers to be investigated. When developers Debug Software, they need to reproduce the reported failure in order to verify whether their fix actually prevents the failure from happening again. Since manually reproducing each failure could be a complex task, several automated techniques have been proposed to tackle this problem. Despite showing advancements in this area, the proposed techniques showed various types of limitations. In this paper, we present EvoCrash, a new approach to automated crash reproduction based on a novel evolutionary algorithm, called Guided Genetic Algorithm (GGA). We report on our empirical study on using EvoCrash to reproduce 54 real-world crashes, as well as the results of a controlled experiment, involving human participants, to assess the impact of EvoCrash tests in Debugging. Based on our results, EvoCrash outperforms state-of-the-art techniques in crash reproduction and uncovers failures that are undetected by classical coverage-based unit test generation tools. In addition, we observed that using EvoCrash helps developers provide fixes more often and take less time when Debugging, compared to developers Debugging and fixing code without using EvoCrash tests.Software EngineeringSoftware Technolog

Yuanyuan Zhou - One of the best experts on this subject based on the ideXlab platform.

  • flashback a lightweight extension for rollback and deterministic replay for Software Debugging
    USENIX Annual Technical Conference, 2004
    Co-Authors: Sudarshan Srinivasan, Srikanth Kandula, Christopher R Andrews, Yuanyuan Zhou
    Abstract:

    Software robustness has significant impact on system availability. Unfortunately, finding Software bugs is a very challenging task because many bugs are hard to reproduce. While Debugging a program, it would be very useful to rollback a crashed program to a previous execution point and deterministically re-execute the "buggy" code region. However, most previous work on rollback and replay support was designed to survive hardware or operating system failures, and is therefore too heavyweight for the fine-grained rollback and replay needed for Software Debugging. This paper presents Flashback, a lightweight OS extension that provides fine-grained rollback and replay to help Debug Software. Flashback uses shadow processes to efficiently roll back in-memory state of a process, and logs a process' interactions with the system to support deterministic replay. Both shadow processes and logging of system calls are implemented in a lightweight fashion specifically designed for the purpose of Software Debugging. We have implemented a prototype of Flashback in the Linux operating system. Our experimental results with micro-benchmarks and real applications show that Flashback adds little overhead and can quickly roll back a Debugged program to a previous execution point and deterministically replay from that point.

Soltani M. - One of the best experts on this subject based on the ideXlab platform.

  • Search-Based Crash Reproduction and Its Impact on Debugging
    'Institute of Electrical and Electronics Engineers (IEEE)', 2020
    Co-Authors: Soltani M., Panichella A., Van Deursen A.
    Abstract:

    Software systems fail. These failures are often reported to issue tracking systems, where they are prioritized and assigned to responsible developers to be investigated. When developers Debug Software, they need to reproduce the reported failure in order to verify whether their fix actually prevents the failure from happening again. Since manually reproducing each failure could be a complex task, several automated techniques have been proposed to tackle this problem. Despite showing advancements in this area, the proposed techniques showed various types of limitations. In this paper, we present EvoCrash, a new approach to automated crash reproduction based on a novel evolutionary algorithm, called Guided Genetic Algorithm (GGA). We report on our empirical study on using EvoCrash to reproduce 54 real-world crashes, as well as the results of a controlled experiment, involving human participants, to assess the impact of EvoCrash tests in Debugging. Based on our results, EvoCrash outperforms state-of-the-art techniques in crash reproduction and uncovers failures that are undetected by classical coverage-based unit test generation tools. In addition, we observed that using EvoCrash helps developers provide fixes more often and take less time when Debugging, compared to developers Debugging and fixing code without using EvoCrash tests.

  • Search-Based Crash Reproduction and Its Impact on Debugging
    'Institute of Electrical and Electronics Engineers (IEEE)', 2020
    Co-Authors: Soltani M., Panichella A., Van Deursen A.
    Abstract:

    Software systems fail. These failures are often reported to issue tracking systems, where they are prioritized and assigned to responsible developers to be investigated. When developers Debug Software, they need to reproduce the reported failure in order to verify whether their fix actually prevents the failure from happening again. Since manually reproducing each failure could be a complex task, several automated techniques have been proposed to tackle this problem. Despite showing advancements in this area, the proposed techniques showed various types of limitations. In this paper, we present EvoCrash, a new approach to automated crash reproduction based on a novel evolutionary algorithm, called Guided Genetic Algorithm (GGA). We report on our empirical study on using EvoCrash to reproduce 54 real-world crashes, as well as the results of a controlled experiment, involving human participants, to assess the impact of EvoCrash tests in Debugging. Based on our results, EvoCrash outperforms state-of-the-art techniques in crash reproduction and uncovers failures that are undetected by classical coverage-based unit test generation tools. In addition, we observed that using EvoCrash helps developers provide fixes more often and take less time when Debugging, compared to developers Debugging and fixing code without using EvoCrash tests.Software EngineeringSoftware Technolog

Sudarshan Srinivasan - One of the best experts on this subject based on the ideXlab platform.

  • flashback a lightweight extension for rollback and deterministic replay for Software Debugging
    USENIX Annual Technical Conference, 2004
    Co-Authors: Sudarshan Srinivasan, Srikanth Kandula, Christopher R Andrews, Yuanyuan Zhou
    Abstract:

    Software robustness has significant impact on system availability. Unfortunately, finding Software bugs is a very challenging task because many bugs are hard to reproduce. While Debugging a program, it would be very useful to rollback a crashed program to a previous execution point and deterministically re-execute the "buggy" code region. However, most previous work on rollback and replay support was designed to survive hardware or operating system failures, and is therefore too heavyweight for the fine-grained rollback and replay needed for Software Debugging. This paper presents Flashback, a lightweight OS extension that provides fine-grained rollback and replay to help Debug Software. Flashback uses shadow processes to efficiently roll back in-memory state of a process, and logs a process' interactions with the system to support deterministic replay. Both shadow processes and logging of system calls are implemented in a lightweight fashion specifically designed for the purpose of Software Debugging. We have implemented a prototype of Flashback in the Linux operating system. Our experimental results with micro-benchmarks and real applications show that Flashback adds little overhead and can quickly roll back a Debugged program to a previous execution point and deterministically replay from that point.

Zhang Jun - One of the best experts on this subject based on the ideXlab platform.