- Advanced Malware Detection Techniques
- Software Engineering Research
- Software Testing and Debugging Techniques
- Mobile and Web Applications
- Web Data Mining and Analysis
- Green IT and Sustainability
- Software System Performance and Reliability
- Software Engineering Techniques and Practices
- Software Reliability and Analysis Research
- Natural Language Processing Techniques
- Information and Cyber Security
- Digital and Cyber Forensics
- Multimedia Communication and Technology
- Security and Verification in Computing
- Topic Modeling
- Interactive and Immersive Displays
- COVID-19 diagnosis using AI
- Artificial Intelligence in Healthcare and Education
- Advanced Software Engineering Methodologies
- User Authentication and Security Systems
- Usability and User Interface Design
- Smart Grid Energy Management
- Real-time simulation and control systems
- Museums and Cultural Heritage
- Domain Adaptation and Few-Shot Learning
George Mason University
2020-2024
University of Central Florida
2023-2024
William & Mary
2015-2023
Williams (United States)
2015-2023
Universidad Nacional de Colombia
2023
Rensselaer Polytechnic Institute
2021
RheinMain University of Applied Sciences
2021
Moscow State University
2021
Lomonosov Moscow State University
2021
Moscow Institute of Physics and Technology
2021
It is common practice for developers of user-facing software to transform a mock-up graphical user interface (GUI) into code. This process takes place both at an application's inception and in evolutionary context as GUI changes keep pace with evolving features. Unfortunately, this challenging time-consuming. In paper, we present approach that automates by enabling accurate prototyping GUIs via three tasks: detection, classification, assembly. First, logical components are detected from...
Mobile developers face unique challenges when detecting and reporting crashes in apps due to their prevailing GUI event-driven nature additional sources of inputs (e.g., sensor readings). To support these tasks, we introduce a novel, automated approach called CRASHSCOPE. This tool explores given Android app using systematic input generation, according several strategies informed by static dynamic analyses, with the intrinsic goal triggering crashes. When crash is detected, CRASHSCOPE...
An increasingly popular set of techniques adopted by software engineering (SE) researchers to automate development tasks are those rooted in the concept Deep Learning (DL). The popularity such largely stems from their automated feature capabilities, which aid modeling artifacts. However, due rapid pace at DL have been adopted, it is difficult distill current successes, failures, and opportunities research landscape. In an effort bring clarity this cross-cutting area work, its modern...
Enabling fully automated testing of mobile applications has recently become an important topic study for both researchers and practitioners. A plethora tools approaches have been proposed to aid developers by augmenting manual practices automating various parts the process. However, current fall short in convincing about their benefits, leading a majority being performed manually. With goal helping practitioners - who design supporting understand developer's needs, we analyzed survey...
Mobile app development involves a unique set of challenges including device fragmentation and rapidly evolving platforms, making testing difficult task. The design space for comprehensive mobile strategy includes features, inputs, potential contextual states, large combinations devices underlying platforms. Therefore, automated is an essential activity the process. However, current state art tools apps posses limitations that has driven preference manual in practice. As today, there no...
Software testing is an essential part of the software lifecycle and requires a substantial amount time effort. It has been estimated that developers spend close to 50% their on code they write. For these reasons, long standing goal within research community (partially) automate testing. While several techniques tools have proposed automatically generate test methods, recent work criticized quality usefulness assert statements generate. Therefore, we employ Neural Machine Translation (NMT)...
The modern software development landscape has seen a shift in focus toward mobile applications as tablets and smartphones near ubiquitous adoption. Due to this trend, the complexity of these "apps" been increasing, making maintenance challenging. Additionally, current bug tracking systems are not able effectively support construction reports with actionable information that directly lead bug's resolution. To address need for an improved reporting system, we introduce novel solution, called...
Mutation testing has been widely used to assess the fault-detection effectiveness of a test suite, as well guide case generation or prioritization. Empirical studies have shown that, while mutants are generally representative real faults, an effective application mutation requires "traditional" operators designed for programming languages be augmented with specific domain and/or technology. This paper proposes MDroid+, framework Android apps. First, we systematically devise taxonomy 262...
GUI-based models extracted from Android app execution traces, events, or source code can be extremely useful for challenging tasks such as the generation of scenarios test cases. However, extracting effective an expensive process. Moreover, existing approaches automatically deriving are not able to generate that include events which were observed in (nor event) traces. In this paper, we address these and other major challenges our novel hybrid approach, coined MONKEYLAB. Our approach is...
Screen recordings of mobile applications are easy to obtain and capture a wealth information pertinent software developers (e.g., bugs or feature requests), making them popular mechanism for crowdsourced app feedback. Thus, these videos becoming common artifact that must manage. In light unique development constraints, including swift release cycles rapidly evolving platforms, automated techniques analyzing all types rich artifacts provide benefit developers. Unfortunately, automatically...
GUI-based models extracted from Android app execution traces, events, or source code can be extremely useful for challenging tasks such as the generation of scenarios test cases. However, extracting effective an expensive process. Moreover, existing approaches automatically deriving are not able to generate that include events which were observed in (nor event) traces. In this paper, we address these and other major challenges our novel hybrid approach, coined MONKEYLAB. Our approach is...
Test Case Prioritization (TCP) is an increasingly important regression testing technique for reordering test cases according to a pre-defined goal, particularly as agile practices gain adoption. To better understand these techniques, we perform the first extensive study aimed at empirically evaluating four static TCP comparing them with state-of-research dynamic techniques across several quality metrics. This was performed on 58 real-word Java programs encompassing 714 KLoC and results in...
A major problem with user-written bug reports, indicated by developers and documented researchers, is the (lack of high) quality reported steps to reproduce bugs. Low-quality lead excessive manual effort spent on triage resolution. This paper proposes Euler, an approach that automatically identifies assesses in a report, providing feedback reporters, which they can use improve report. The provided Euler was assessed external evaluators results indicate correctly identified 98% existing 58%...
Test Case Prioritization (TCP) is an important component of regression testing, allowing for earlier detection faults or helping to reduce testing time and cost. While several TCP approaches exist in the research literature, a growing number studies have evaluated them against synthetic software defects, called mutants. Hence, it currently unclear what extent performance on mutants would be representative achieved real faults. To answer this fundamental question, we conduct first empirical...
When a bug manifests in user-facing application, it is likely to be exposed through the graphical user interface (GUI). Given importance of visual information process identifying and understanding such bugs, users are increasingly making use screenshots screen-recordings as means report issues developers. However, when reported en masse, during crowd-sourced testing, managing these artifacts can time-consuming process. As reporting particular becomes more popular, developers face challenges...
Unique challenges arise when testing mobile applications due to their prevailing event-driven nature and complex contextual features (e.g. sensors, notifications). Current automated input generation approaches for Android apps are typically not practical developers use required instrumentation or platform dependence generally do effectively exercise features. To better support in tasks, this demo we present a novel, tool called CrashScope. This explores given app using systematic generation,...
The large body of existing research in Test Case Prioritization (TCP) techniques, can be broadly classified into two categories: dynamic techniques (that rely on run-time execution information) and static operate directly source test code). Absent from this current work is a comprehensive study aimed at understanding evaluating the approaches comparing them to set projects. In work, we perform first extensive empirically four TCP with state-of-research different test-case granularities...
The inception of a mobile app often takes form mock-up the Graphical User Interface (GUI), represented as static image delineating proper layout and style GUI widgets that satisfy requirements. Following this initial mock-up, design artifacts are then handed off to developers whose goal is accurately implement these GUIs desired functionality in code. Given sizable abstraction gap between mock-ups code, introduce mistakes related can negatively impact an app's success highly competitive...
Designing practical security systems for the smart home is challenging without knowledge of realistic usage. This paper describes design and implementation Hεlion, a framework that generates natural automation scenarios by identifying regularities in user-driven sequences, which are turn generated from routines created end-users. Our key hypothesis event sequences users exhibit inherent semantic patterns, or naturalness can be modeled used to generate valid useful scenarios. To evaluate our...
Neural Language Models of Code, or Code (NCMs), are rapidly progressing from research prototypes to commercial developer tools. As such, understanding the capabilities and limitations such models is becoming critical. However, abilities these typically measured using automated metrics that often only reveal a portion their real-world performance. While, in general, performance NCMs appears promising, currently much unknown about how arrive at decisions. To this end, paper introduces <italic...
Homes powered fully or partially by renewable sources such as solar are becoming more widely adopted, however energy management strategies in these environments lacking. This paper presents the first results of a study that explores home automation techniques for achieving better utilization generated technologies. First, using network off-the-shelf sensing devices, we observe generation and consumption an off-grid is both variable predictable. Moreover, find reactive insufficient to prevent...
The importance of random number generators (RNGs) to various computing applications is well understood. To ensure a quality level output, high-entropy sources should be utilized as input. However, the algorithms used have not yet fully evolved utilize newer technology. Even Android pseudo RNG (APRNG) merely builds atop Linux produce numbers. This paper presents an exploratory study into methods generating numbers on sensor-equipped mobile and Internet Things devices. We first perform data...
Mobile applications have become a popular software development domain in recent years due part to large user base, capable hardware, and accessible platforms. However, mobile developers also face unique challenges, including pressure for frequent releases keep pace with rapid platform evolution, hardware iteration, feedback. Due this of need automated support documenting the changes made their apps order aid program comprehension. One more challenging types document are those graphical...
Mutation testing has shown great promise in assessing the effectiveness of test suites while exhibiting additional applications to test-case generation, selection, and prioritization. Traditional mutation typically utilizes a set simple language specific source code transformations, called operators, introduce faults. However, empirical studies have that for be most effective, these operators must augmented with domain software under test. One challenging application is mobile apps. While...
Bug reports are essential for developers to confirm software problems, investigate their causes, and validate fixes. Unfortunately, often miss important information or written unclearly, which can cause delays, increased issue resolution effort, even the inability solve issues. One of most common components that problematic is steps reproduce bug(s) (S2Rs), replicate described program failures reason about Given proclivity deficiencies in reported S2Rs, prior work has proposed techniques...