Current Research Projects

  1. GPU Kernels - Automated Test Generation and Coverage Measurement
  2. Smart Contracts - Vulnerability Detection and Test Generation
  3. Smart Contracts - Code Instrumentation Framework
  4. Android Apps - Change-focused GUI Test Generation
  5. Trustworthy Autonomous Systems - Governance and Regulation (UKRI Project with multiple investigators)
  6. Accelerating Test Executions on GPU
  7. Test Oracle Problem - Supervised Learning over Test Executions
  8. Artificial Intelligence for Cancer Immunotherapy (Hiring Postdoc and Bioinformatician)



1. GPU Kernels - Automated Test Generation and Coverage Measurement

PhD Student Lead: Chao Peng

Description

  1. Coverage criteria defined for GPU programs including control flow based and barrier (synchronisation) coverage.
  2. Fault-finding capability measurement by running test suites with mutations with injected faults including traditional operation mutants and synchronisation mutants.
  3. Automated test case generation aiming at high test quality based on fuzzing and constraint solving.

Publications

  1. Chao Peng (2019). On the Correctness of GPU Programs. In proceedings of ISSTA 2019.
  2. Chao Peng, Ajitha Rajan (2019). CLTestCheck: Measuring Test Effectiveness for GPU Kernels. In proceedings of FASE 2019 (ETAPS 2019).
  3. Chao Peng, Ajitha Rajan (2020). Automated Test Generation for OpenCL Kernels Using Fuzzing and Constraint Solving. In proceedings of GPGPU 2020 (workshop of PPoPP 2020).

Tools

  1. CLTestCheck: https://github.com/chao-peng/CLTestCheck
    • clcov: Coverage measurement for OpenCL programs.
    • clmt: Mutation testing for OpenCL programs.
    • clschedule: host and device code to schedule work groups
  2. CLFuzz: https://github.com/chao-peng/CLFuzz
    • Automated test case generation for a given OpenCL kernel
    • Direct kernel execution with generated tests without needing to write a host (CPU) code to allocate and transfer GPU memory objects.

2. Smart Contracts - Vulnerability Detection and Test Generation

PhD Student Lead: Sefa Akca

Description

  • We implemented a fully automated framework, SolAnalyser, for vulnerability detection over Solidity smart contracts using static and dynamic analysis techniques. Our framework detects 8 different types of vulnerabilities.
  • Test generation - We generate and evaluate tests using fuzzing and genetic algorithms for Solidity smart contracts.

Publications

Sefa Akca, Chao Peng, Ajitha Rajan (2019). SolAnalyser: A Framework for Analysing and Testing Smart Contracts. In proceedings of APSEC 2019.

Tools

Solidity - Vulnerability Detection and Test Generation:
https://github.com/sefaakca?tab=repositories


3. Smart Contracts - Code Instrumentation Framework

PhD Student Lead: Chao Peng

Description

  1. A comprehensive framework for Solidity contract analysis, query, instrumentation, and code generation.
  2. Comes with 7 tools based on this framework including call graph and control flow graph generator.

Publications

Chao Peng, Sefa Akca, Ajitha Rajan (2019). SIF: A Framework for Solidity Contract Instrumentation and Analysis. In proceedings of APSEC 2019.

Tools

SIF: https://github.com/chao-peng/sif

  1. With SIF, you can easily query syntactic information from the AST of smart contracts and make changes to it. SIF is able to generate source code from the AST of Solidity contracts reflecting code instrumentations.
  2. Tools include:
    • Assertion Analyser inserts property assertions to operations susceptible to arithmetic vulnerabilities.
    • AST Diff compares smart contracts in syntax level.
    • CG_Generator is easy to follow, it generates a control graph for the smart contract by recording function calls.
    • CFG_Generator can be used to generate control-flow graphs for functions. It supports control flows including branches and loops.
    • Fault Seeder seeds faults to smart contracts.
    • Function Listing lists function definitions and in which contracts they are defined.
    • Sif Rename renames existing identifiers.

4. Android Apps - Change-focused GUI Test Generation

PhD Student Lead: Chao Peng

Description

  1. Identifying GUI elements affected by source code level changes.
  2. Automated GUI test generation and execution focusing on exercising changed source code.

Publications

(Pre-print) Chao Peng, Ajitha Rajan (2020). CAT: Change-focused Android GUI Testing." arXiv preprint arXiv:2011.11766.

Tools

CAT: https://github.com/chao-peng/CAT

  1. Change impact analyser to detect change affected GUI elements and the activity in which it resides.
  2. Test generation and execution based on DroidBot.

5. TAS Governance and Regulation Research Node (led by Prof. Ram Ramamoorthy)

Description

The Trustworthy Autonomous Systems (TAS) programme brings together research communities and key stakeholders to drive forward cross-disciplinary, fundamental research to ensure that autonomous systems ar$ Led by Professor Subramanian Ramamoorthy from the School of Informatics and Edinburgh Centre for Robotics, the project is part of the UKRI Trustworthy Autonomous Systems (TAS) programme, funded through the UKRI Strategic Priorities Fund and delivered by the Engineering and Physical Sciences Research Council (EPSRC). The project aims to ensure the trustworthiness of systems that put machines in charge of decisions, from virtual assistants like Alexa to aircraft autopilot. I am a co-Investigator on this project and will work on the responsibility, causality to help understand failures, testing and formal verification aspects of the project.

The project will establish a new software engineering framework to support TAS governance, and trial them with external stakeholders in areas including mobile autonomous systems, and health and social care. Newly developed computational tools for regulators and developers will complement the new methods of governance. In particular, this will include a deeper understanding, from multiple disciplinary perspectives, of how and why autonomous systems fail. The team also aim to improve understanding of the iterative nature of design processes associated with such technologies, and recommend ways to better govern such processes.

6. Accelerating Test Executions using GPUs

PhD Student Lead: Vanya Yaneva

Description

Vanya worked on a novel approach to accelerating test execution by parallelising it using Graphics Processing Units (GPUs). Her work addressed challenges related to usability, performance and scope, by providing an automated framework for testing on the GPU, which uses compiler-based transformations to translate the system under test into OpenCL. The framework also automatically launches test execution in parallel on the GPU threads, without requiring any expert GPU programming and architecture knowledge. The approach was applied to the testing of two types of systems - sequential C programs form the embedded systems domain and Finite State Machine (FSM) models, and performance was extensively analysed and optimised through a combination of standard and domain specific techniques. Evaluation demonstrated that the GPU outperforms a standard 16-core Central Processing Unit (CPU) by up to 4x (avg. 1.4x) for embedded systems and up to 9x (avg. 4.5x) for FSMs, showing that GPUs can be automatically used to reduce test execution time compared to other parallel approaches.

Publications

  1. Vanya Yaneva, Ajitha Rajan, Christophe Dubach (2020). GPU Acceleration of FSM Test Execution: Improving Scale and Performance. In STVR Journal.
  2. Vanya Yaneva, Arnav Kapoor, Ajitha Rajan, Christophe Dubach (2018). Accelerated Finite State Machine Test Execution Using GPUs. In proceedings of APSEC 2018.
  3. Vanya Yaneva, Ajitha Rajan, Christophe Dubach (2017). Compiler-assisted Test Acceleration on GPUs for Embedded Software. In proceedings of ISSTA 2017.
  4. Vanya Yaneva, Ajitha Rajan, Christophe Dubach (2017). Parallel Testing Using OpenCL. In proceedings of ISSTA 2017 (Tools paper).

Tools


7. Test Oracle - Supervised Learning over Test Executions

PhD Student Lead: Foivos Tsimpurlas

Description

The challenge of automatically determining the correctness of test executions is referred to as the test oracle problem and is a key remaining issue for automated testing. The project aims at solving the test oracle problem in a scalable and accurate way. To achieve this, we use supervised learning over test execution traces. We label a small fraction of the execution traces with their verdict of pass or fail. We use the labelled traces to train a neural network (NN) model to learn to distinguish runtime patterns for passing versus failing executions for a given program.

Publications

Foivos Tsimpourlas, Ajitha Rajan, Miltiadis Allamanis. Supervised Learning over Test Executions as a Test Oracle. In proceedings of ACM SAC-SE 2021. To Appear in March 2021

Tools

  • Trace Classifier as a Test Oracle: https://github.com/fivosts/Learning-over-test-executions . The tool contains LLVM passes for C++ program instrumentation to help gather execution traces, python scripts ot encode execution traces into fixed length vectors, and finally the NN classifier that acts as a test oracle.

8. Artificial Intelligence for Cancer Immunotherapy

PhD Student Lead: Tongjie Wang

Description

There are several ongoing collaborative projects with Prof. Ted Hupp, Dr. Javier Alfaro and clinicians under this topic exploring questions about overall survival, recurrence, motif discovery for Glioma, Oesophageal and Renal cancers.


Tongjie is currently working on two cancer datasets - Glioma and Oesophageal, and examining the cancerogenesis and clinical trial outcomes. For glioma, he is implementing the RNA seq analysis pipelines and statistics tools to find out the disease genetic pattern. He is also interested in uncovering immune-signatures to predict patient treatment outcomes. He is collaborating with U.Cambridge to investigate recurrence and overall survival for patients with oesophageal cancer. He is working with an NHS dataset of 3.6k patients with clinical and pathological features. The current models he has explored including traditional models and different neural networks.

Funding and Hiring

We were recently awarded H2020 – DT-TDS-04-2020 AI for Genomics and Personalised Medicine in which I am Edinburgh Lead PI: 2021- 2025. Project title: Knowledge at the Tip of Your fingers: Clinical Knowledge for Humanity (KATY) We will be hiring a Postdoc and a Bioinformatician for this project shortly.