Organizational Unit:
Undergraduate Research Opportunities Program

Research Organization Registry ID
Description
Previous Names
Parent Organization
Parent Organization
Organizational Unit
Includes Organization(s)

Publication Search Results

Now showing 1 - 4 of 4
  • Item
    No Code Test Recording for iOS Applications
    (Georgia Institute of Technology, 2020-08) Mittal, Anushk
    Over the past decade, mobile apps have touched every sphere of life with ~4.5M applications available to download through Apple’s App Store and Google’s Play Store that are expected to generate ~$1T in revenue by 2023. Today, an average American checks their phone once every 12 minutes, but testing these mobile apps is mostly unreliable and too resource expensive with current state-of-the-art technology. Specifically, testing iOS apps requires writing code using Xcode IDE that requires a development environment setup for all testers. These testers must also be familiar with coding for iOS apps as they need to interface with XCUITest API to write UI tests or verify the automatically generated code through Xcode’s XCUITest Recorder. To address this issue and to make iOS testing accessible to everyone, we adopt the Barista technique to passively record user interactions and build device-independent test scripts using any iOS device. We describe a three-part technique of recording user interactions through Objective-C swizzling, encoding generated test cases using a separately hosted server, and generating XCUITest files to run encoded test cases. We conclude with experimental results and discussions that demonstrate the effectiveness of our solution on a host of sample open-source applications that represent the most common and popular app categories and functionalities along with future directions on how this collected big data could be leveraged for intelligent insights. The goal of this research is to make testing approachable and easy for large corporations and indie developers alike with presented tool made open-source at https://github.com/anushkmittal/iOSTestSDK.
  • Item
    On Formula Embeddings in Neural-Guided SAT Solving
    (Georgia Institute of Technology, 2019-12) Dumenci, Mert
    Branching heuristics determine the performance of search-based SAT solvers. We note that recently, Neural Machine Learning approaches have been proposed to learn such heuristics from data. The first step in learning a branching heuristic is a transformation from the space of Boolean formulas to a vector space. We note that there is no canonical transformation: techniques such as message-passing networks and LSTMs have been proposed to embed formulas into R^n. We build a novel dataset of an approximate optimal heuristic and compare the estimation performance of models with different embedding methods. We show that for performant models, embedding methods need to represent the structural invariances of Boolean formulas: similar to CNNs and spatially local data such as images.
  • Item
    Analysis of the errors caused by the fragmentation of the Android ecosystem: an empirical study
    (Georgia Institute of Technology, 2019-05) Prammer, Martin A.
    Software testing and debugging has always been a pervasive problem for software developers. Mobile applications are highly important to our lives and ensuring their correctness is challenging problem. Android is a popular platform for both developers and users as there are many kinds of devices that can run the operating system. However, because of the highly fragmented nature of the Android ecosystem, it is a complex task to verify that apps behave as expected. To provide more insight into this problem, we performed a study to learn quantitative information about the problems caused by fragmentation. We conducted our study by leveraging cloud-based testing services with existing and suitably developed test suites. We implemented this study by utilizing the Amazon Web Services Device Farm and Android Compatibility Test Suite to execute these tests on a large scale. As a preliminary study, we have focused on a subset of the Compatibility Test Suite test packages and have classified the discovered test failures. We present the results of our study and the fragmentation issues discovered, which we release to assist developers and device vendors in accounting for fragmentation inconsistencies. In future work, we see this study acting as a foundation for continued quantitative analysis on the fragmentation within the Android ecosystem.
  • Item
    Automated Penetration Testing for PHP Web Applications
    (Georgia Institute of Technology, 2016-12) Zhu, Zixiang
    Penetration Testing emerged in the mid-1960s as an approach to exploit vulnerabilities of possible attacks of a software application by nefarious users. Traditional penetration testing is done manually, which is not only inefficient but also unstable in terms of reliability. In the recent decade, multiple automated penetration testing approaches have been proposed, including automatically test inputs generation based on genetic algorithms and neural networks learning. However, these black-box testing methods only have limited accuracy, and usually require a large number of data to train the agents before they can be used to do actual tests. To address this issue, we present a novel approach in which program static analysis is exploited. The proposed penetration testing system is able to not only estimate HTTP request data more precisely, but also discover dynamic interfaces exposed by the web applications. This research is focused on PHP web applications only.