Further Enquiries

School of Computer Science
Ingkarni Wardli Building
The University of Adelaide
SA 5005

Telephone: +61 8 8313 5586
Facsimile: +61 8 8313 4366

Search-based Software Engineering

Coordinator: Dr Brad Alexander

Many activities in software engineering involve some element of search. Some examples include selection of requirements, localisation and correction of defects, and the optimisation of test coverage. The fast-growing field of Search-Based Software Engineering (SBSE) applies computing resources to these search problems to improve the efficiency and quality of software engineering processes.

OptLog is expanding its research in SBSE. Our current areas of interest including test coverage of verification systems, software defect repair and direct exploration of program design spaces.

Dynamic Adaptive Software Configuration

Our primary goal is to optimise energy consumption on Android mobile phones. To model the power usage, we use an event-based modelling technique. The internal battery fuel gauge chip is used to measure the amount of energy being consumed and accordingly the model is built on. We use the model to estimate components' energy usages. In addition, we use evolutionary computation to prolong the battery life. This can be achieved by using the power consumption model as a fitness function, re-configuring the smartphone's default settings and modifying existing code of applications.

Test Coverage of Verifcation Systems

For verification systems to be used it is important for them to be demonstrated as reliable and correct. One way to test verification systems is to expose them to proof cases that drive them through their sets of axioms. The OptLog group has explored new ways to measure axiom coverage. We have also created novel methods of driving better axiom coverage with existing benchmark sets through the selective removal of axioms to drive proofs through alternative paths. Current research focuses on optimising the set of changes required to maximise axiom coverage.

Software Defect Repair

Manual localisation and repair of software defects is costly and time-consuming. Recently there has been strong interest in the develpment of processes and tools for automatic repair. The OptLog group has been successful in applying evolutionary search in the creation of patches to repair small applications programs. In future we would like to apply recent improvments in localisation techniques to boost current approaches.

Direct Exploration of Program Design Spaces

Direct search can be applied to specific problems in the discovery and improvement of substantial software artifacts. The OptLog group has applied search to the problem of improving strategies for the application of rewriting rules in an optimising compiler. More recently we have used search techniques to automate the discovery of non-trivial recurrences from hand-drawn trees. Future work will focus on leveraging more information from trees to expand the range of recurrences that can be inferred.


  • Deep Parameter Optimisation on Android Smartphones for Energy Minimisation - A Tale of Woe and a Proof-of-Concept, Mahmoud A. Bokhari, Bobby R. Bruce, Brad Alexander, and Markus Wagner, GI@GECCO 2017
  • Validation of Internal Meters of Mobile Android Devices, Mahmoud A. Bokhari, Yuanzhong Xia, Bo Zhou, Brad Alexander, and Markus Wagner arXiv
  • Optimising Energy Consumption Heuristically on Android Mobile Phones, Mahmoud Bokhari and Markus Wagner, GI@GECCO 2016
  • Speeding up the proof strategy in formal software verification, Markus Wagner, GI@GECCO 2016
  • An Improved Beam-Search for Testing Formal Verification Systems, Mahmoud Bokhari, Thorsten Bormer, and Markus Wagner, SSBSE 2015 (software)
  • Boosting Search for Recursive Functions using Partial Call-Trees, Brad Alexander and Brad Zacher, PPSN 2014
  • Maximising Axiomatization Coverage and Minimizing Regression Testing Time, Markus Wagner, WCCI/CEC 2014
  • Heuristically Creating Test Cases for Program Verification Systems, Bernhard Beckert, Thorsten Bormer, and Markus Wagner, MIC 2013
  • A Metric for Testing Program Verification Systems, Bernhard Beckert, Markus Wagner, and Thorsten Bormer, TAP 2013
  • Evolving Patches for Software Repair, Thomas Ackling, Brad Alexander and Ian Grunert, GECCO 2011
  • Constructing an Optimisation Phase Using Grammatical Evolution, Brad Alexander and Michael Gratton, 2009 IEEE Congress on Evolutionary Computation, CEC 2009