We describe the deployment of Sapienz, a system for automated test case design that uses Search Based Software Engineering (SBSE) that has been deployed at Facebook since October 2017 to design test cases, localise and triage crashes to developers and monitor their fixes. Facebook continues to build on the Sapienz infrastructure, extending it to provide other software engineering services and we hope this will yield sustained interest in SBSE and hybridisation of it as a result. We explain how Sapienz is deployed, how it collaborates with other tools, such as Facebook's FBLeaner Machine Learning Infrastructure, its One World Device and Emulator platform and other testing and verification tools, such as Infer, the Facebook Static Analysis tooling. We also outline some open problems and challenges for the SBSE community, based on our experience of deploying Sapienz at Facebook scale.
Mark was the director of CREST (the Centre for Research on Evolution Search and Testing) from its inception on 28th June 2006 to 5th February 2017, and was head of SSE (Software Systems Engineering) at UCL from 2012 to 2017. Since February 6th 2017 he has been a full-time Engineering Manager at Facebook London and a part-time professor of Software Engineering in CREST, SSE and the CS department at UCL.
While evolutionary metaheuristics are strongly advocated by the outstanding complexity and adaptation of life forms, we are still far to get the same complexity in the products and applications of artificial evolution. But simultaneously, we have to acknowledge that (i.) evolutionary biology still has difficulties to understand how evolution proceeded (and still proceeds) to produce this diversity and complexity (ii.) current metaheuristics are far to integrate all what evolutionary biologists know about evolution! In this talk I will introduce a very specific form of evolutionary software – namely in silico experimental evolution, aka digital genetics – that is dedicated not to evolve solutions to technical problems but to model evolution in order to better understand its dynamics and, in particular, the way evolution innovates and produces new life forms, more complex and eventually fitter – or not! I will present some of the results we got using the Aevol in silico experimental evolution platform and discuss how these results could be transposed into the software engineering domain.
Guillaume Beslon is a professor of computer science in the computer science department of the National Institute of Applied Science (Lyon, France) and in the CNRS Laboratoire de Recherche en Image et Systèmes d’Information (LIRIS). He created the interdisciplinary INRIA Beagle team and leads it since. The Beagle team addresses biological questions with formal models based on simulation and modeling. The team is specifically interested in systems biology, i.e. understanding how complex biological systems emerge as stable and efficient entities from the incredible chaos that constitutes their molecular level. Guillaume Beslon is mainly interested in evolutionary systems biology, i.e. in providing a better understanding of extant biological systems by studying the evolutionary process that led to them. In particular his researches mainly focus on the evolutionary consequences of chromosomal rearrangements, a kind of mutation that is overlooked in most models and metaheuristics. He proposed the Aevol in silico experimental evolution platform, to date one of the few simulation platforms able to account for this kind of events. In 2013-2016, he has been the leader of the EvoEvo (“Evolution of Evolution”) European project, an interdisciplinary project that aimed at linking experimental evolutionary biology to software engineering by mean of in silico experimental evolution.
This talk is a revamped presentation based in the original one I had the honor to deliver back in 2009 in the first SSBSE in London. At this time, the many international forces dealing with optimization, search, and learning (OSL) met software engineering researchers looking for a quantified manner of modeling and solving problems in their domain. The contents, as in the original one, will develop on the bases of metaheuristics and other advanced algorithms (like bio-inspired ones, and event exact techniques) to highlight the many good potential ways in which they can help to create a well-grounded domain where the construction, assessment and exploitation of software is not just done by human experts, but also enhanced with intelligent automatic tools. In this talk, we will of course visit the many applications in software engineering faced with intelligent algorithms, as well as will offer a reasonably updated view of they two (algorithms and applications). The key understanding of this as a crossfertilization task between research fields could even offer a wider and more useful lesson for future research. I will include a historical perspective of the old times (before SBSE), the last 10 years on SBSE, and the many avenues for future research and development spinning around this exciting clash of stars. A new galaxy has been born out of the body of knowledge in OSL and SE, creating forever a new class of researchers able of unparalleled tools and scientific results for the benefit of software, that is, of modern societies.
Prof. Enrique Alba had his degree in engineering and PhD in Computer Science in 1992 and 1999, respectively, by the University of Málaga (Spain). He works as a Full Professor in this university with varied teaching duties: data communications, distributed programing, software quality, and also evolutionary algorithms, bases for R+D+i and smart cities, both at graduate and master/doctoral programs. Prof. Alba leads an international team of researchers in the field of complex optimization/learning with applications in smart cities, bioinformatics, software engineering, telecoms, and others. In addition to the organization of international events (ACM GECCO, IEEE IPDPS-NIDISC, IEEE MSWiM, IEEE DS-RT, smart-CT…) Prof. Alba has offered dozens postgraduate courses, more than 70 seminars in international institutions, and has directed many research projects (7 with national funds, 5 in Europe, and numerous bilateral actions). Also, Prof. Alba has directed 10 projects for innovation in companies (OPTIMI, Tartessos, ACERINOX, ARELANCE, TUO, INDRA, AOP, VATIA, EMERGIA, SECMOTIC) and has worked as invited professor at INRIA, Luxembourg, Ostrava, Japan, Argentina, Cuba, Uruguay, and Mexico. He is editor in several international journals and book series of Springer-Verlag and Wiley, as well as he often reviews articles for more than 30 impact journals. He is included in the list of most prolific DBLP authors, and has published 104 articles in journals indexed by Thomson ISI, 17 articles in other journals, 50 papers in LNCS, and more than 280 refereed conferences. Besides that, Prof. Alba has published 11 books, 39 book chapters, and has merited 13 awards to his professional activities. Pr. Alba’s H index is 53, with more than 13,500 cites to his work.
Due to the growing complexity of software systems, there has been a dramatic increase and industry demand for tools and techniques for software refactoring in the last ten years, defined traditionally as a set of program transformations intended to improve the system design while preserving the behavior. The challenges to be addressed by refactoring work are nowadays beyond code transformation to include, but not limited to, scheduling the opportune time to carry refactoring, recommendations of specific refactoring activities, detection of refactoring opportunities and testing the correctness of applied refactorings. Therefore, the refactoring research efforts are fragmented over several research communities, various domains, and different objectives. Based on our recent analysis of 2556 research papers on refactoring, we found that search-based software engineering was widely adopted to automate or semi-automate several activities of the refactoring life cycle in multiple domains. In this tutorial, I will give an overview about the current state of search-based refactoring, why the use of computational search is ideal to address refactoring challenges and what factors contributed to the growth of the field. Then, I will focus on our recent work and tools to interactively integrate the preferences of programmers during the search for refactoring candidates to avoid the natural reluctance of programmers to trust the fully-automated search tools. A tool demo will be presented, as well, and participants will have the opportunity to practice our interactive search-based refactoring and antipatterns detection tools, licensed to industrial partners, on two open source projects. Finally, I will conclude the tutorial with different suggestions to enhance the adoption of SBSE research into industry, and the lessons that we learned along this journey and my vision about the future of search-based refactoring.
Astor is a framework for repairing buggy Java program, which includes 6 publicly available repair approaches. Those repair approaches take as input a buggy Java program (having at least one failing test case that exposes the bug) and search for a patch that produces all test cases to pass. Astor provides twelve extension points that form the design space of program repair. Using those extension points, program repair researchers can create new repair approaches or extend those included in the framework by choosing existing components (among 33 ones) or implementing new ones. In this tutorial, we will first discuss the main techniques proposed on the field of automated software repair. Then, we will discuss how to execute repair approaches included in Astor framework, how to extend them, and how to implement new repair approaches reusing components provided by Astor.
EvoSuite automatically generates test cases with assertions for classes written in Java code, using a search-based approach that evolves whole test suites towards satisfying a coverage criterion. For the produced test suites, EvoSuite suggests possible oracles by adding small and effective sets of assertions that concisely summarize the current behavior; these assertions allow the developer to detect deviations from expected behavior, and to capture the current behavior in order to protect against future defects breaking this behaviour. In this tutorial, we will discuss how to use of the EvoSuite search-based test generation infrastructure to apply search-based test generation, and how to build on EvoSuite to develop new techniques using, or extending, search-based testing.