Pidgin Crasher: Searching for Minimised Crashing GUI Event Sequences

Categories
Artificial Intelligece, Code Optimisation, Research

We present a search based testing system that automatically explores the space of all possible GUI event interleavings. Search guides our system to novel crashing sequences using Levenshtein distance and minimises the resulting fault-revealing UI sequences in a post-processing hill climb.

SBSelector: Search Based Component Selection for Budget Hardware

Categories
Artificial Intelligece, Code Optimisation, Research

Determining which functional components should be integrated to a large system is a challenging task, when hardware constraints, such as available memory, are taken into account. We formulate such problem as a multi-objective component selection problem, which searches for feature subsets that balance the provision of maximal functionality at minimal memory resource cost.

Deep Parameter Optimisation

Categories
Artificial Intelligece, Code Optimisation, Research

We introduce a mutation-based approach to automatically discover and expose ‘deep’ (previously unavailable) parameters that affect a program’s runtime costs. These discovered parameters, together with existing (‘shallow’) parameters, form a search space that we tune using search-based optimisation in a bi-objective formulation that optimises both time and memory consumption.

HOMI: Searching Higher Order Mutants for Software Improvement

Categories
Code Optimisation, Genetic Algorithms, Research

This paper introduces a Higher Order Mutation based approach for Genetic Improvement of software, in which the code modification granularity is finer than in previous work while scalability remains. The approach applies the NSGAII algorithm to search for higher order mutants that improve the non-functional properties of a program while passing all its regression tests.

Mutation-based genetic improvement of software

Categories
Code Optimisation, Genetic Algorithms, Research

The thesis applies Mutation Operators to automatically modify the source code of the target software. After a prior sensitivity analysis on First Order Mutants, “deep” (previously unavailable) parameters are exposed from the most sensitive locations, followed by a bi-objective optimisation process to fine tune them together with existing (“shallow”) parameters. The objective is to improve both time and memory resources required by the computation.