• Login
    View Item 
    •   SMARTech Home
    • Georgia Tech Theses and Dissertations
    • Georgia Tech Theses and Dissertations
    • View Item
    •   SMARTech Home
    • Georgia Tech Theses and Dissertations
    • Georgia Tech Theses and Dissertations
    • View Item
    JavaScript is disabled for your browser. Some features of this site may not work without it.

    Leveraging existing software artifacts to support design, development, and testing of mobile applications

    Thumbnail
    View/Open
    BEHRANG-DISSERTATION-2020.pdf (3.215Mb)
    Date
    2020-07-29
    Author
    Behrang, Farnaz
    Metadata
    Show full item record
    Abstract
    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 to a large extent neglected by previous work. To address this limitation of previous work, in this dissertation I defined automated techniques that leverage existing software artifacts to support the design, development, and testing of mobile apps. Specifically, 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 precisely, AppTestMigrator considers similarities between apps and migrates 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 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. Finally, GUITestGen is a technique that first collects the execution traces generated by one or more apps in a given category when the apps are used by their end-users, and then leverages the collected traces to generate GUI tests for other apps in that same category (i.e., apps that share part of their functionality). To evaluate the effectiveness of the techniques I developed, I implemented them as prototype tools and evaluated them through user studies and empirical investigations on real-world apps. My results provide evidence that the techniques are effective in supporting design, development, and testing of mobile apps.
    URI
    http://hdl.handle.net/1853/63577
    Collections
    • College of Computing Theses and Dissertations [1191]
    • Georgia Tech Theses and Dissertations [23877]

    Browse

    All of SMARTechCommunities & CollectionsDatesAuthorsTitlesSubjectsTypesThis CollectionDatesAuthorsTitlesSubjectsTypes

    My SMARTech

    Login

    Statistics

    View Usage StatisticsView Google Analytics Statistics
    facebook instagram twitter youtube
    • My Account
    • Contact us
    • Directory
    • Campus Map
    • Support/Give
    • Library Accessibility
      • About SMARTech
      • SMARTech Terms of Use
    Georgia Tech Library266 4th Street NW, Atlanta, GA 30332
    404.894.4500
    • Emergency Information
    • Legal and Privacy Information
    • Human Trafficking Notice
    • Accessibility
    • Accountability
    • Accreditation
    • Employment
    © 2020 Georgia Institute of Technology