Staff - Faculty of Informatics
Date: / -
USI Lugano Campus, room SI-003, Informatics building (Via G. Buffi 13)
You are cordially invited to attend the PhD Dissertation Defense of Daniele Zuddas on Wednesday June 12th, 2019 at 17:30 in room SI-003 (Informatics building).
Interactive applications, such as mobile or web apps, have become essential in our lives and verifying their correctness is now a key issue. Automatic system test case generation can dramatically improve the testing process for these applications and has recently motivated researchers to work on this problem defining a wide range of different approaches. However, most state-of-the-art approaches automatically generate test cases only leveraging the structural characteristics of interactive applications GUIs, paying little attention to their semantic aspects. This led to techniques that, although useful, cannot effectively cover all the semantically meaningful execution scenarios of an interactive application under test and that are not able to distinguish correct behaviors from faulty ones. In this Ph.D. thesis, we propose to address the limitations of current techniques exploiting the fact that interactive applications often share semantic similarities and implement many functionalities that are not specific to one application only. Our intuition is that these similarities can be leveraged to complement the classical structural information used so far to define truly effective test case generation approaches. This dissertation presents two novel techniques that exploit this intuition: AUGUSTO and ADAPTDROID. AUGUSTO exploits a built-in knowledge of the semantics associated with popular and well-known functionalities, such as CRUD operations, to automatically identify these these popular functionalities in the application under test and generate effective test cases with automated functional oracles. We demonstrated the effectiveness of AUGUSTO experimenting with different popular functionalities in the context of interactive desktop applications showing that it can reveal faults that cannot be revealed with other state-of-the-art techniques. ADAPTDROID instead generates semantically meaningful test cases exploiting a radically new approach: obtaining test cases by adapting existing test cases (including oracles) of similar applications instead of generating test cases from scratch. We empirically evaluated this strategy in the context of Android apps and showed that ADAPTDROID is the first fully automatic technique that can effectively adapt test cases, including assertions, across similar interactive applications.