Gordon Fraser

Search-Based Software Engineers need Tools

Search-based software engineering as a research discipline has matured, and papers using SBSE now regularly appear at mainstream software engineering conferences. The impact in practice, however, is often limited because research prototypes do not scale up to the challenges posed by industrial software. In this talk I will share my experiences from building the EvoSuite automated unit test generation tool. EvoSuite uses a genetic algorithm to generate JUnit test suites optimised for a combination of code coverage criteria, and has seen successful applications in research, teaching, and industry. The widespread application of the tool has led to insights on how to, and how not to, build tools for search-based software engineering.

Chris Simons

The Truth is Out There: Reflections on Search in Software Engineering

In the popular science fiction horror drama TV series "The X-Files", two FBI agents (Mulder and Skully) investigate unsolved case files relating to emerging paranormal phenomena and possible alien life. Many explanations and conspiracy theories abound. Although the intrepid investigators struggle to put the disparate pieces together, they believe that "the truth is out there".

Search-based software engineering has attracted much research attention recently and many theories also abound relating to the application of metaheuristic search techniques to software engineering problems. Some 15 years since the term 'search-based software engineering' was suggested, it is perhaps timely to reflect on some of these emerging phenomena in the field of search-based software engineering and examine some of the theories, fallacies and facts in a wider software engineering context. Is there truth out there?

This presentation suggests some possible fallacies of search with respect to software engineering, before reviewing some more established facts about the progress of search-based software engineering, 15 years on. The application of search-based software engineering techniques within different phases of the software engineering life cycle is discussed, with a particular emphasis on agile development methodologies. Finally, attempts are made to put the disparate pieces together to speculate on areas of future industrial adoption of search-based software engineering.