197 research outputs found
Analysing Symbolic Regression Benchmarks under a Meta-Learning Approach
The definition of a concise and effective testbed for Genetic Programming
(GP) is a recurrent matter in the research community. This paper takes a new
step in this direction, proposing a different approach to measure the quality
of the symbolic regression benchmarks quantitatively. The proposed approach is
based on meta-learning and uses a set of dataset meta-features---such as the
number of examples or output skewness---to describe the datasets. Our idea is
to correlate these meta-features with the errors obtained by a GP method. These
meta-features define a space of benchmarks that should, ideally, have datasets
(points) covering different regions of the space. An initial analysis of 63
datasets showed that current benchmarks are concentrated in a small region of
this benchmark space. We also found out that number of instances and output
skewness are the most relevant meta-features to GP output error. Both
conclusions can help define which datasets should compose an effective testbed
for symbolic regression methods.Comment: 8 pages, 3 Figures, Proceedings of Genetic and Evolutionary
Computation Conference Companion, Kyoto, Japa
Neutral Networks of Real-World Programs and their Application to Automated Software Evolution
The existing software development ecosystem is the product of evolutionary forces, and consequently real-world software is amenable to improvement through automated evolutionary techniques. This dissertation presents empirical evidence that software is inherently robust to small randomized program transformations, or \u27mutations. Simple and general mutation operations are demonstrated that can be applied to software source code, compiled assembler code, or directly to binary executables. These mutations often generate variants of working programs that differ significantly from the original, yet remain fully functional. Applying successive mutations to the same software program uncovers large \u27neutral networks\u27 of fully functional variants of real-world software projects. These properties of \u27mutational robustness\u27 and the corresponding \u27neutral networks\u27 have been studied extensively in biology and are believed to be related to the capacity for unsupervised evolution and adaptation. As in biological systems, mutational robustness and neutral networks in software systems enable automated evolution. The dissertation presents several applications that leverage software neutral networks to automate common software development and maintenance tasks. Neutral networks are explored to generate diverse implementations of software for improving runtime security and for proactively repairing latent bugs. Next, a technique is introduced for automatically repairing bugs in the assembler and executables compiled from off-the-shelf software. As demonstration, a proprietary executable is manipulated to patch security vulnerabilities without access to source code or any aid from the software vendor. Finally, software neutral networks are leveraged to optimize complex nonfunctional runtime properties. This optimization technique is used to reduce the energy consumption of the popular PARSEC benchmark applications by 20% as compared to the best available public domain compiler optimizations. The applications presented herein apply evolutionary computation techniques to existing software using common software engineering tools. By enabling evolutionary techniques within the existing software development toolchain, this work is more likely to be of practical benefit to the developers and maintainers of real-world software systems
Search based software engineering: Trends, techniques and applications
© ACM, 2012. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version is available from the link below.In the past five years there has been a dramatic increase in work on Search-Based Software Engineering (SBSE), an approach to Software Engineering (SE) in which Search-Based Optimization (SBO) algorithms are used to address problems in SE. SBSE has been applied to problems throughout the SE lifecycle, from requirements and project planning to maintenance and reengineering. The approach is attractive because it offers a suite of adaptive automated and semiautomated solutions in situations typified by large complex problem spaces with multiple competing and conflicting objectives.
This article provides a review and classification of literature on SBSE. The work identifies research trends and relationships between the techniques applied and the applications to which they have been applied and highlights gaps in the literature and avenues for further research.EPSRC and E
Animating the evolution of software
The use and development of open source software has increased significantly in the last decade. The high frequency of changes and releases across a distributed environment requires good project management tools in order to control the process adequately. However, even with these tools in place, the nature of the development and the fact that developers will often work on many other projects simultaneously, means that the developers are unlikely to have a clear picture of the current state of the project at any time. Furthermore, the poor documentation associated with many projects has a detrimental effect when encouraging new developers to contribute to the software. A typical version control repository contains a mine of information that is not always obvious and not easy to comprehend in its raw form. However, presenting this historical data in a suitable format by using software visualisation techniques allows the evolution of the software over a number of releases to be shown. This allows the changes that have been made to the software to be identified clearly, thus ensuring that the effect of those changes will also be emphasised. This then enables both managers and developers to gain a more detailed view of the current state of the project. The visualisation of evolving software introduces a number of new issues. This thesis investigates some of these issues in detail, and recommends a number of solutions in order to alleviate the problems that may otherwise arise. The solutions are then demonstrated in the definition of two new visualisations. These use historical data contained within version control repositories to show the evolution of the software at a number of levels of granularity. Additionally, animation is used as an integral part of both visualisations - not only to show the evolution by representing the progression of time, but also to highlight the changes that have occurred. Previously, the use of animation within software visualisation has been primarily restricted to small-scale, hand generated visualisations. However, this thesis shows the viability of using animation within software visualisation with automated visualisations on a large scale. In addition, evaluation of the visualisations has shown that they are suitable for showing the changes that have occurred in the software over a period of time, and subsequently how the software has evolved. These visualisations are therefore suitable for use by developers and managers involved with open source software. In addition, they also provide a basis for future research in evolutionary visualisations, software evolution and open source development
Automatic generation of smell-free unit tests
Tese de mestrado, Engenharia Informática, 2022, Universidade de Lisboa, Faculdade de CiênciasAutomated test generation tools (such as EvoSuite) typically aim to maximize code
coverage. However, they frequently disregard non-coverage aspects that can be relevant
for testers, such as the quality of the generated tests. Therefore, automatically generated
tests are often affected by a set of test-specific bad programming practices that may hinder
the quality of both test and production code, i.e., test smells. Given that other researchers
have successfully integrated non-coverage quality metrics into EvoSuite, we decided to
extend the EvoSuite tool such that the generated test code is smell-free. To this aim, we
compiled 54 test smells from several sources and selected 16 smells that are relevant to the
context of this work. We then augmented the tool with the respective test smell metrics
and investigated the diffusion of the selected smells and the distribution of the metrics.
Finally, we implemented an approach to optimize the test smell metrics as secondary
criteria. After establishing the optimal configuration to optimize as secondary criteria
(which we used throughout the remainder of the study), we conducted an empirical study
to assess whether the tests became significantly less smelly. Furthermore, we studied
how the proposed metrics affect the fault detection effectiveness, coverage, and size of
the generated tests. Our study revealed that the proposed approach reduces the overall
smelliness of the generated tests; in particular, the diffusion of the “Indirect Testing” and
“Unrelated Assertions” smells improved considerably. Moreover, our approach improved
the smelliness of the tests generated by EvoSuite without compromising the code coverage
or fault detection effectiveness. The size and length of the generated tests were also not
affected by the new secondary criteria
Automated Black-Box Boundary Value Detection
The input domain of software systems can typically be divided into
sub-domains for which the outputs are similar. To ensure high quality it is
critical to test the software on the boundaries between these sub-domains.
Consequently, boundary value analysis and testing has been part of the toolbox
of software testers for long and is typically taught early to students.
However, despite its many argued benefits, boundary value analysis for a given
specification or piece of software is typically described in abstract terms
which allow for variation in how testers apply it.
Here we propose an automated, black-box boundary value detection method to
support software testers in systematic boundary value analysis with consistent
results. The method builds on a metric to quantify the level of boundariness of
test inputs: the program derivative. By coupling it with search algorithms we
find and rank pairs of inputs as good boundary candidates, i.e. inputs close
together but with outputs far apart. We implement our AutoBVA approach and
evaluate it on a curated dataset of example programs. Our results indicate that
even with a simple and generic program derivative variant in combination with
broad sampling over the input space, interesting boundary candidates can be
identified
Recommended from our members
A conceptual system design and managerial complexity competency model
This thesis was submitted for the degree of Doctor of Philosophy and awarded by Brunel University.Complex adaptive systems are usually difficult to design and control. There are several particular methods for coping with complexity, but there is no general approach to build complex adaptive systems. The challenges of designing complex adaptive systems in a highly dynamic world drive the need for anticipatory capacity within engineering organizations, with a goal of enabling the design of systems that can cope with an unpredictable environment. This thesis explores this question of enhancing anticipatory capacity through the study of a complex adaptive system design methodology and complexity management competencies. A general introduction to challenges and issues in complex adaptive systems design is given, since a good understanding of the industrial context is considered necessary in order to avoid oversimplification of the problem, neglecting certain important factors and being unaware of important influences and relationships. In addition, a general introduction to complex thinking is given, since designing complex adaptive systems requires a non-classical thought, while practical notions of complexity theory and design are put forward. Building on these, the research proposes a Complex Systems Life-Cycle Understanding and Design (CXLUD) methodology to aid system architects and engineers in the design and control of complex adaptive systems. Starting from a creative anticipation construct - a loosening mechanism to allow for more options to be considered, the methodology proposes a conceptual framework and a series of stages to follow to find proper mechanisms that will promote elements to desired solutions by actively interacting among themselves. To illustrate the methodology, a financial systemic risks infrastructure systems architecture development case study is presented. The final part of this thesis develops a conceptual model to analyse managerial complexity competency model from a qualitative phenomenological study perspective. The model developed in this research is called Understanding-Perception-Action (UPA) managerial complexity competency model. The results of this competency model can be used to help ease project manager’s transition into complex adaptive projects, as well as serve as a foundation to launch qualitative and quantitative research into this area of project complexity management
- …