Generating Software Tests Andreas Zeller, Rahul Gopinath

Registration for this course is open until Monday, 12.11.2018 23:59.

News

16.10.2018

Bug Bounties for "Generating Software Tests"

Andreas Zeller offers bounties for bugs found in the notebooks distributed every week:

  • 0.20€ for every new bug in the writing (i.e. text cells)
  • 0.50€ for every new bug found in the code.

Here, a "bug" is any condition leading to a change.  

Bugs are... Read more

Andreas Zeller offers bounties for bugs found in the notebooks distributed every week:

  • 0.20€ for every new bug in the writing (i.e. text cells)
  • 0.50€ for every new bug found in the code.

Here, a "bug" is any condition leading to a change.  

Bugs are best resolved interactively.  Come and see Professor Zeller with a printout or a list, preferably after the lecture.  We will have leaderboards of students reporting the most bugs.

The fine print: Offer can be revoked at any time, all further liability is excluded, decisions are final, there is no recourse to the courts, yada yada yada.

16.10.2018

Book "Generating Software Tests"

The book "Generating Software Tests" can be found here: https://beta.fuzzingbook.org

The chapters to work on this week are the first two: "Introduction to Software Testing" and "Fuzzing: Breaking Things with Random Inputs"
 

 

Security Testing

Software has bugs, and catching bugs can involve lots of effort. This book addresses this problem by automating software testing, specifically by generating tests automatically. Recent years have seen the development of novel techniques that lead to dramatic improvements in test generation and software testing.  In this course, we explore these techniques – in theory and in code.

Course Organization

Every week, you will be provided with Jupyter Notebooks every week that teach a particular topic and illustrate it using plenty of runnable Python code.  In the notebook, you can edit the code as you like, run your own experiments, and re-use and extend the code to your liking.  Your task will be to use these techniques (and their code) to build a series of fuzzers (i.e. test generators) that find bugs in a number of challenging settings.

This course uses the "inverted classroom" principle – you learn at home, and discuss issues with your instructor.  In our weekly meeting, we use the gathering in the lecture hall to introduce the notebooks and projects as well as to discuss the ongoing ones as well as general questions.

Topics and Lectures

  • Intro
  • Fuzzing
  • Simplifying Tests
  • Testing with Mutations
  • Testing with Grammars
  • Grammar Inference
  • Taint Analysis
  • Coverage-Driven Testing
  • Search-Based Testing
  • Solving Constraints
  • Inferring Preconditions
  • Mutation Analysis
  • Automated Repair and Protection
  • Test Carving and Decomposition

Advanced course (6 CP)

  • 12-14 lectures
  • Tuesday 16-18 @ CISPA Lecture Hall
  • Start: Oct 16


Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators