PhD Defense by Farnaz Behrang
Title: Leveraging Existing Software Artifacts to Support Design, Development, and Testing of Mobile Applications
School of Computer Science
College of Computing
Georgia Institute of Technology
Date: Tuesday, June 16th, 2020
Time: 1:00 pm to 3:00 pm (EDT)
Dr. Alessandro Orso (Advisor, School of Computer Science, Georgia Institute of Technology)
Dr. Vivek Sarkar (School of Computer Science, Georgia Institute of Technology)
Dr. Qirun Zhang (School of Computer Science, Georgia Institute of Technology)
Dr. Denys Poshyvanyk (Computer Science Department, William and Mary)
Dr. Sam Malek (School of Information and Computer Sciences, University of California, Irvine)
There is an ever growing amount of code available and easily accessible online in public repositories, such as GitHub and Bitbucket. It is therefore not surprising that, there has been an increasing interest in analyzing the rich data available in such repositories. Despite the large number of proposed techniques that leverage existing source code, however, these techniques mostly focus on supporting coding and maintenance activities. Other important software engineering tasks, such as software design and testing, have been mostly ignored by previous work. In this dissertation, I defined automated techniques that leverage existing software artifacts to support the design, development, and testing of mobile apps.
I defined three techniques: GUIFetch, AppTestMigrator, and GUITestGen. GUIFetch is
a code-search technique that takes advantage of the growing number of open source apps in public repositories to support app design and development. Given a sketch of an app's screens and transitions between them, GUIFetch searches for apps in public repositories that are as similar as possible to the provided sketch, ranks them by similarity to the sketch, and then reports them to the user. GUIFetch can provide developers with a starting point for building their GUI-based apps, support early prototyping, and help designers assess whether any existing apps are similar to the one they want to develop. AppTestMigrator is a test migration technique that takes advantage of existing test cases to reduce the cost of testing mobile apps. More specifically, AppTestMigrator considers similarities between apps and migrate test cases across similar apps. Typical examples of this situation are apps that are developed independently by students as part of a class project or an assignment based on a similar specification or apps that belong to the same category, such as banking apps, which share much of their functionality and may provide GUIs that are inherently similar. GUITestGen is a technique that leverages the execution traces of human users for apps that belong to the same category to generate GUI test inputs for other apps in that category.
To evaluate the effectiveness of the techniques, I implemented them as prototype tools and evaluated them through user studies and performing empirical investigations on real-world apps. The results provide evidence that the techniques are effective in supporting design, development, and testing of mobile apps.
- Workflow Status: Published
- Created By: Tatianna Richardson
- Created: 06/09/2020
- Modified By: Tatianna Richardson
- Modified: 06/09/2020