Generating Software Tests

Andreas Zeller

CISPA Helmholtz Institute for IT Security

15/04/2019

Anfiteatro VA4 no piso-1 do Edificio de Civil – IST/Alameda | 11:00H

Abstract

Software has bugs. What can we do to find as many of these as possible? In this talk, I show how to systematically test software by generating such tests automatically, starting with simple random “fuzzing” generators and then proceeding to more effective grammar-based and coverage-guided approaches. Being fully automatic and easy to deploy, such fuzzers run at little cost, yet are very effective in finding bugs: Our own Langfuzz grammar-based test generator for JavaScript runs around the clock for the Firefox, Chrome, and Edge web browsers and so far has found more than 2,600 confirmed bugs. Our latest test generator prototypes are even able to automatically learn the input language of a given program, which allows to generate highly effective tests for arbitrary programs without any particular setup. In the past months, we have collected our tools and techniques in an interactive textbook (www.fuzzingbook.org) with 10,000 well-documented lines of Python code for highly productive fuzzing.

Bio

Andreas Zeller is Faculty at the CISPA Helmholtz Center for Information Security, and professor for Software Engineering at Saarland University, both in Saarbrücken, Germany. In 2010, Zeller was inducted as Fellow of the ACM for his contributions to automated debugging and mining software archives, for which he also obtained the ACM SIGSOFT Outstanding Research Award in 2018. His current work focuses on specification mining and test case generation, funded by grants from DFG and the European Research Council (ERC).

Host

António Manuel Ferreira Rito da Silva