debuggingbook

Project page for "The Debugging Book"

https://github.com/uds-se/debuggingbook

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 15 committers (6.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.6%) to scientific vocabulary

Keywords

automated-debugging debuggers debugging debugging-tools interactive-notebooks jupyter-notebooks python textbook

Keywords from Contributors

mesh interpretability sequences projection interactive hacking network-simulation
Last synced: 6 months ago · JSON representation

Repository

Project page for "The Debugging Book"

Basic Info
Statistics
  • Stars: 227
  • Watchers: 12
  • Forks: 179
  • Open Issues: 10
  • Releases: 1
Topics
automated-debugging debuggers debugging debugging-tools interactive-notebooks jupyter-notebooks python textbook
Created over 5 years ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

README.md

Code Tests   Notebook Tests   Static Type Checking   Imports   Website www.debuggingbook.org

Launch Binder   Made with Python   Made with Jupyter   License: MIT (Code), CC BY-NC-SA (Book)

About this Book

Welcome to "The Debugging Book"! Software has bugs, and finding bugs can involve lots of effort. This book addresses this problem by automating software debugging, specifically by locating errors and their causes automatically. Recent years have seen the development of novel techniques that lead to dramatic improvements in automated software debugging. They now are mature enough to be assembled in a book even with executable code. <!-- This book is work in progress. It will be released to the public in Spring 2021. -->

python from bookutils import YouTubeVideo YouTubeVideo("-nOxI6Ev_I4")

A Textbook for Paper, Screen, and Keyboard

You can use this book in four ways:

  • You can read chapters in your browser. Check out the list of chapters in the menu above, or start right away with the introduction to debugging or how debuggers work. All code is available for download.

  • You can interact with chapters as Jupyter Notebooks (beta). This allows you to edit and extend the code, experimenting live in your browser. Simply select "Resources Edit as Notebook" at the top of each chapter. Try interacting with the introduction to interactive debuggers.

  • You can use the code in your own projects. You can download the code as Python programs; simply select "Resources Download Code" for one chapter or "Resources All Code" for all chapters. These code files can be executed, yielding (hopefully) the same results as the notebooks. Once the book is out of beta, you can also install the Python package.

  • You can present chapters as slides. This allows for presenting the material in lectures. Just select "Resources View slides" at the top of each chapter. Try viewing the slides for how debuggers work.

Who this Book is for

This work is designed as a textbook for a course in software debugging; as supplementary material in a software testing or software engineering course; and as a resource for software developers. We cover fault localization, program slicing, input reduction, automated repair, and much more, illustrating all techniques with code examples that you can try out yourself.

News

This book is work in progress. All chapters planned are out now, but we keep on refining text and code with minor and major releases. To get notified on updates, follow us on Mastodon.

<!--

Owner

  • Name: Andreas Zeller's group at CISPA and Saarland University
  • Login: uds-se
  • Kind: organization
  • Location: Saarbrücken, Germany

GitHub Events

Total
  • Issues event: 3
  • Watch event: 42
  • Issue comment event: 2
  • Push event: 36
  • Pull request event: 3
  • Fork event: 48
Last Year
  • Issues event: 3
  • Watch event: 42
  • Issue comment event: 2
  • Push event: 36
  • Pull request event: 3
  • Fork event: 48

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 3,269
  • Total Committers: 15
  • Avg Commits per committer: 217.933
  • Development Distribution Score (DDS): 0.026
Past Year
  • Commits: 178
  • Committers: 2
  • Avg Commits per committer: 89.0
  • Development Distribution Score (DDS): 0.022
Top Committers
Name Email Commits
Andreas Zeller z****r@c****d 3,185
kuznetsov k****v@s****e 34
dependabot[bot] 4****] 15
Nikolas Havrikov n****v@c****d 6
Leon Bettscheider l****n@l****n 6
Johannes Lampel j****l@i****m 5
bjrn b****s@c****d 5
Laura l****a@L****l 4
Dominic Steinhöfel d****l@c****e 2
Alexander Kampmann a****n@c****d 2
Eisele Max Camillo (CR/ADT4) m****e@d****m 1
Simon s****r@g****m 1
marius.smytzek m****k@c****e 1
Johannes Lampel j****l@c****d 1
Leon Bettscheider l****r@c****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 30
  • Total pull requests: 83
  • Average time to close issues: 21 days
  • Average time to close pull requests: about 1 month
  • Total issue authors: 13
  • Total pull request authors: 17
  • Average comments per issue: 1.7
  • Average comments per pull request: 0.24
  • Merged pull requests: 60
  • Bot issues: 0
  • Bot pull requests: 37
Past Year
  • Issues: 3
  • Pull requests: 2
  • Average time to close issues: about 11 hours
  • Average time to close pull requests: about 9 hours
  • Issue authors: 3
  • Pull request authors: 1
  • Average comments per issue: 0.67
  • Average comments per pull request: 0.5
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • andreas-zeller (4)
  • k-o-n-s-t (3)
  • TheSilvus (3)
  • dfpetrin (2)
  • wyjw (2)
  • masquerad3r (1)
  • rindPHI (1)
  • maxeisele (1)
  • PySimpleGUI (1)
  • jainpranav1 (1)
  • eyucherin (1)
  • rjc (1)
  • VidmS (1)
Pull Request Authors
  • dependabot[bot] (20)
  • havrikov (7)
  • leonbett (6)
  • bjrnmath (3)
  • k-o-n-s-t (3)
  • alexkamp (2)
  • smythi93 (2)
  • rindPHI (2)
  • LaPlei96 (2)
  • TheV1rtuoso (1)
  • maxeisele (1)
  • boneyag (1)
  • MaxCamillo (1)
  • ARogovskyy (1)
  • darkrsw (1)
Top Labels
Issue Labels
enhancement (2) documentation (1)
Pull Request Labels
dependencies (20) javascript (19) enhancement (1) question (1) python (1)

Dependencies

docs/beta/slides/reveal.js/package-lock.json npm
  • 742 dependencies
docs/beta/slides/reveal.js/package.json npm
  • @babel/core ^7.14.3 development
  • @babel/eslint-parser ^7.14.3 development
  • @babel/preset-env ^7.14.2 development
  • @rollup/plugin-babel ^5.3.0 development
  • @rollup/plugin-commonjs ^19.0.0 development
  • @rollup/plugin-node-resolve ^13.0.0 development
  • babel-plugin-transform-html-import-to-string 0.0.1 development
  • colors ^1.4.0 development
  • core-js ^3.12.1 development
  • fitty ^2.3.0 development
  • glob ^7.1.7 development
  • gulp ^4.0.2 development
  • gulp-autoprefixer ^8.0.0 development
  • gulp-clean-css ^4.2.0 development
  • gulp-connect ^5.7.0 development
  • gulp-eslint ^6.0.0 development
  • gulp-header ^2.0.9 development
  • gulp-tap ^2.0.0 development
  • gulp-zip ^4.2.0 development
  • highlight.js ^10.0.3 development
  • marked ^4.0.12 development
  • node-qunit-puppeteer ^2.1.0 development
  • qunit ^2.17.2 development
  • rollup ^2.48.0 development
  • rollup-plugin-terser ^7.0.2 development
  • sass ^1.39.2 development
  • yargs ^15.1.0 development
binder/requirements.txt pypi
  • jupyter_contrib_nbextensions *
  • python-magic *
  • selenium *
  • svglib *
  • valgrind *
docs/beta/notebooks/requirements.txt pypi
  • Markdown >=3.3.4
  • Pygments >=2.7.1
  • autopep8 >=1.5.4
  • beautifulsoup4 >=4.9.3
  • bibtexparser >=1.0.1
  • diff_match_patch >=20200713
  • easyplotly >=0.1.3
  • enforce >=0.3.4
  • fuzzingbook >=0.8.1
  • graphviz >=0.14.2
  • ipypublish >=0.6.8
  • ipython >=7.16.1
  • jupyter >=1.0.0
  • jupyter-client >=6.1.7
  • jupyter_contrib_nbextensions >=0.5.1
  • jupyterlab-lsp *
  • jupyterlab_markup *
  • lxml >=4.5.1
  • matplotlib >=3.3.2
  • multiprocess >=0.70.12.2
  • mypy >=0.910
  • nbconvert >=6.0.7
  • nbformat >=5.0.8
  • nbstripout >=0.5.0
  • networkx >=2.5
  • numpy >=1.16.5
  • pandoc-mermaid-filter *
  • pydriller >=2.0
  • pyparsing ==2.4.7
  • python-lsp-server *
  • python-magic >=0.4.18
  • scikit_learn >=0.23.2
  • selenium >=3.141.0
  • showast >=0.2.4
  • spellchecker >=0.4
  • testpath >=0.6.0
  • types-Markdown >=3
.github/workflows/check-code.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/check-imports.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/check-notebooks.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/check-types.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
binder/environment.yml conda
  • autopep8
  • django
  • geckodriver
  • graphviz
  • markdown
  • matplotlib
  • mypy
  • notedown
  • numpy
  • pandas
  • pip
  • python 3.9.7.*
  • scipy
  • selenium