Andrea Mattavelli

Andrea Mattavelli

Software engineer, Monday hater, food lover.

I am a Software Engineer at GM Technologies, the leading provider for purchase-by-invoice services in Switzerland.

Previously, I was a Research Associate at Imperial College London (UK) working on symbolic execution in the Software Reliability Group.
I obtained my Ph.D. at Università della Svizzera Italiana (Switzerland) working on software redundancy, automatic program repair, program synthesis, and test oracle generation under the supervision of Antonio Carzaniga and Mauro Pezzè.


Papers

2018

  1. Chopped Symbolic Execution. David Trabish, Andrea Mattavelli, Noam Rinetzky, and Cristian Cadar. In Proceedings of the 40th International Conference on Software Engineering. ICSE ’18.

2017

  1. Accelerating Array Constraints in Symbolic Execution. David M. Perry, Andrea Mattavelli, Xiangyu Zhang, and Cristian Cadar. In Proceedings of the 26th International Symposium on Software Testing and Analysis. ISSTA ’17.
  2. Combining Symbolic Execution and Search-Based Testing for Programs with Complex Heap Inputs. Pietro Braione, Giovanni Denaro, Andrea Mattavelli, and Mauro Pezzè. In Proceedings of the 26th International Symposium on Software Testing and Analysis. ISSTA ’17.
  3. Intrinsic Redundancy for Reliability and Beyond. Alberto Goffi, Alessandra Gorla, Andrea Mattavelli, and Mauro Pezzè. In Bertrand Meyer & Manuel Mazzara, eds. PAUSE: Present and Ulterior Software Engineering. Springer.

2016

  1. Software Redundancy: What, Where, How. Andrea Mattavelli. PhD thesis. Università della Svizzera italiana (USI).

2015

  1. Synthesis of Equivalent Method Calls in Guava. Andrea Mattavelli, Alberto Goffi, and Alessandra Gorla. In Proceedings of the 7th Symposium on Search-Based Software Engineering (Challenge Track). SSBSE ’15.
  2. Measuring Software Redundancy. Antonio Carzaniga, Andrea Mattavelli, and Mauro Pezzè. In Proceedings of the 37th International Conference on Software Engineering. ICSE ’15.
  3. Intrinsic Software Redundancy for Self-healing Software Systems and Automated Oracle generation. Antonio Carzaniga, Alberto Goffi, Alessandra Gorla, Andrea Mattavelli, Nicolò Perino, Mauro Pezzè, and Paolo Tonella. In Software Engineering & Management 2015. GI.

2014

  1. Search-Based Synthesis of Equivalent Method Sequences. Alberto Goffi, Alessandra Gorla, Andrea Mattavelli, Mauro Pezzè, and Paolo Tonella. In Proceedings of the 22nd International Symposium on the Foundations of Software Engineering. FSE ’14.
  2. Cross-checking Oracles from Intrinsic Software Redundancy. Antonio Carzaniga, Alessandra Gorla, Alberto Goffi, Andrea Mattavelli, and Mauro Pezzè. In Proceedings of the 36th International Conference on Software Engineering. ICSE ’14.
  3. Understanding the Redundancy of Software Systems. Andrea Mattavelli. In Proceedings of the 36th International Conference on Software Engineering (Doctoral Symposium). ICSE ’14.
  4. Software Testing with Code-based Test Generators: Data and Lessons Learned from a Case Study with an Industrial Software Component. Pietro Braione, Giovanni Denaro, Andrea Mattavelli, Mattia Vivanti, and Ali Muhammad. Software Quality Journal 22, 2 (2014).

2013

  1. Automatic Recovery from Runtime Failures. Antonio Carzaniga, Alessandra Gorla, Andrea Mattavelli, Mauro Pezzè, and Nicolò Perino. In Proceedings of the 35th International Conference on Software Engineering. ICSE ’13.

2012

  1. A Self-Healing Technique for Java Applications. Antonio Carzaniga, Alessandra Gorla, Andrea Mattavelli, and Nicolò Perino. In Proceedings of the 34th International Conference on Software Engineering (Poster). ICSE ’12.
  2. An Industrial Case Study of the Effectiveness of Test Generators. Pietro Braione, Giovanni Denaro, Andrea Mattavelli, Mattia Vivanti, and Ali Muhammad. In Proceedings of the 7th International Workshop on Automation of Software Test. AST ’12.

Software

ARMOR
ARMOR is a tool that implements automatic runtime recovering for Java.

Cross-Checking Oracles
Cross-Checking Oracles is a technique to generate and execute test oracles that exploits the intrinsic redundancy of the program under test.

KLEE
KLEE is a symbolic virtual machine built on top of the LLVM compiler infrastructure that targets the generation of test cases for high code coverage.
We also developed KLEE-Array, a version of KLEE augmented with a set of semantic-preserving transformations that take advantage of contextual information to speedup array operations.

SBES
SBES is a program synthesis tool that leverages search-based algorithm to automatically generate object-oriented Java code.

SUSHI
SUSHI is a test case generator that combines symbolic execution and search-based techniques to achieve high branch coverage.


Talks

2017

2016

2015

2014

2013


Research Service

Committee Member

Reviewer

rss facebook twitter github youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora