Generating Software Tests Andreas Zeller, Rahul Gopinath


Currently, no news are available

Generating Software Tests

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 15

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