Software Testing

Neat: Mobile App Layout Similarity Comparison based on Graph Convolutional Networks

A wide variety of device models, screen resolutions and operating systems have emerged with recent advances in mobile devices. As a result, the graphical user interface (GUI) layout in mobile apps has become increasingly complex due to this market …

Hawkeye: Change-targeted Testing for Android Apps based on Deep Reinforcement Learning

Android Apps are frequently updated to keep up with changing user, hardware, and business demands. Ensuring the correctness of App updates through extensive testing is crucial to avoid potential bugs reaching the end user. Existing Android testing …

AG3: Automated Game GUI Text Glitch Detection based on Computer Vision

With the advancement of device software and hardware performance, and the evolution of game engines, an increasing number of emerging high-quality games are captivating game players from all around the world who speak different languages. However, …

Effective Concurrency Testing for Go via Directional Primitive-constrained Interleaving Exploration

The Go language (Go/Golang) has been attracting increasing attention from the industry in recent years due to its straightforward syntax, strong concurrency support, and ease of deployment. This programming language encourages developers to use …

NxtUnit: Automated Unit Test Generation for Go

Automated test generation has been extensively studied for dynamically compiled or typed programming languages like Java and Python. However, Go, a popular statically compiled and typed programming language for server application development, has …

Fastbot2: Reusable Automated Model-based GUI Testing for Android Enhanced by Reinforcement Learning

In the industrial setting, mobile apps undergo frequent updates to catch up with the changing real-world requirements. It leads to the strong practical demands of continuous testing, i.e., obtaining quick feedback on app quality during development. …

Testing Smart Contracts: Which Technique Performs Best?

Executing, verifying and enforcing credible transactions on permissionless blockchains is done using smart contracts. A key challenge with smart contracts is ensuring their correctness and security. Several test input generation techniques for …

CAT: Change-focused Android GUI Testing

Android Apps are frequently updated, every couple of weeks, to keep up with changing user, hardware and business demands. Correctness of App updates is checked through extensive testing. Recent research has proposed tools for automated GUI event …

Automated Test Generation for OpenCL Kernels Using Fuzzing and Constraint Solving

Graphics Processing Units (GPUs) are massively parallel processors offering performance acceleration and energy efficiency unmatched by current processors (CPUs) in computers. These advantages along with recent advances in the programmability of GPUs …

SIF: A Framework for Solidity Contract Instrumentation and Analysis

Solidity is an object-oriented and high-level language for writing smart contracts that are used to execute, verify and enforce credible transactions on permissionless blockchains. In the last few years, analysis of smart contracts has raised …