Machine learning of software artefacts is an emerging area of interaction between the machine learning and software analysis communities. Increased productivity in software engineering relies on the creation of new adaptive, scalable tools that can analyse large and continuously changing software systems. These require new software analysis techniques based on machine learning, such as learning-based software testing, invariant generation or code synthesis. Machine learning is a powerful paradigm that provides novel approaches to automating the generation of models and other essential software artifacts. This volume originates from a Dagstuhl Seminar entitled "Machine Learning for Dynamic Software Analysis: Potentials and Limits" held in April 2016. The seminar focused on fostering a spirit of collaboration in order to share insights and to expand and strengthen the cross-fertilisation between the machine learning and software analysis communities. The book provides an overview of the machine learning techniques that can be used for software analysis and presents example applications of their use. Besides an introductory chapter, the book is structured into three parts: testing and learning, extension of automata learning, and integrative approaches.
Introduction.- Testing and Learning.- Extensions of Automata Learning.- Integrative Approaches.