Talk:Delta debugging

CoI notes: I am the original author of a reducer called Lithium. I've been involved with some of the projects that might serve as examples or sources, including

Talk:Delta debugging

Suggestions

  • Refocus and rename the article to "Automated test-case reduction":
    • The term "Delta debugging" is sometimes used as a synonym, but can also refer to a broader methodology (Zeller's original use) or to only the original reduction algorithm (without asymptotic optimizations or grammar-awareness)
  • Add a short section titled "Significance" near the top:
    • If the original fault-inducing input is from fuzz testing, reduction can help by removing red herrings.
    • If the original fault-inducing input is closed source, reduction can help to create a smaller version that the author is comfortable sharing with the compiler team.
    • A simple testcase makes it easier to determine the cause of the bug and identify duplicates.
    • A simple testcase can be added to a test suite as a regression test with confidence that it will continue to test the same thing / require minimal maintenance.
  • Limitations
    • The fault must be reproducible — For nondeterministic crashes, it often helps to run under a tool that explicitly catches undefined behavior such as a code sanitizer or memory debugger
    • Risk of reducing to a different bug — you might want to retest the original to make sure you fixed the right bug.
    • Reduction is not always simplification — a naïve reducer may introduce other errors (such as missing closing tags in HTML) which aren't relevant for reproducing the bug
  • Convert the list of tools into a comparison table with columns:
    • License
    • Language
    • Interestingness-test specification
    • Strengths (e.g. Perses can leverage a supplied grammar, C-Reduce works on anything with a vaguely C-like syntax, rust-reduce works across multiple files and applies Rust-specific transformations)

CoI notes: I am the original author of a reducer called Lithium. I've been involved with some of the projects that might serve as examples or sources, including Mozilla and Rust. Jruderman (talk) 23:20, 26 June 2024 (UTC)Reply

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.