Dynamic Data Flow Testing

Staff - Faculty of Informatics

Start date:

End date:

You are cordially invited to attend the PhD Dissertation Defense of Mattia VIVANTI on Wednesday, March 2nd 2016 at 16h00 in room SI-003 (Informatics building)

Data flow testing is a particular form of testing that identifies data flow relations as test objectives. Data flow testing has recently attracted new interest in the context of testing object oriented systems, since data flow information is well suited to capture relations among the object states, and can thus provide useful information for testing method interactions. Unfortunately, classic data flow testing, which is based on static analysis of the source code, fails to identify many important data flow relations due to the dynamic nature of object oriented systems.

This thesis presents Dynamic Data Flow Testing, a technique which rethinks data flow testing to suite the testing of modern object oriented software. Dynamic Data Flow Testing stems from empirical evidence that we collect on the limits of classic data flow testing techniques. We investigate such limits by means of Dynamic Data Flow Analysis, a dynamic implementation of data flow analysis that computes sound data flow information on program traces. We compare data flow information collected with static analysis of the code with information observed dynamically on execution traces, and empirically observe that the data flow information computed with classic analysis of the source code misses a significant part of information that corresponds to relevant behaviors that shall be tested.

In view of these results, we propose Dynamic Data Flow Testing. The technique promotes the synergies between dynamic analysis, static reasoning and test case generation for automatically extending a test suite with test cases that execute the complex state based interactions between objects. Dynamic Data Flow Testing computes precise data flow information of the program with Dynamic Data Flow Analysis, processes the dynamic information to infer new test objectives, which Dynamic Data Flow Testing uses to generate new test cases. The test cases generated by Dynamic Data Flow Testing exercise relevant behaviors that are otherwise missed by both the original test suite and test suites that satisfy classic data flow criteria.

Dissertation Committee:

  • Prof. Mauro Pezzè, Università della Svizzera italiana, Switzerland (Research Advisor) 
  • Prof. Walter Binder, Università della Svizzera italiana, Switzerland (Internal Member)
  • Prof. Nate Nystrom, Università della Svizzera italiana, Switzerland (Internal Member)
  • Prof. Antonia Bertolino, Consiglio Nazionale delle Ricerche, Italy (External Member)
  • Prof. Phil McMinn, University of Sheffield, United Kingdom (External Member)