SBSE
SBSE
www.elsevier.com/locate/cor
Editorial
Search-based software engineering
This focused issue of Computers and Operations Research contains seven excellent papers on the application of
optimization and meta-heuristic search techniques to problems in software engineering. The focused issue arises from
a call for papers, for which a total of 18 papers were received. After careful and detailed refereeing, a total of seven
papers were nally selected for inclusion in the focussed issue.
Optimization and search-based techniques have been applied to a wide range of software engineering problems, using
a large number of techniques associated with OR. This area of research has come to be known as search-based software
engineering (SBSE) [1,2]. The past ve years have witnessed a dramatic growth in conferences, workshop, tracks, and
special issues on SBSE. Previous work on SBSE spans the spectrum of software engineering problems from require-
ments engineering [3], project planning and cost estimation [46], through test data generation [7], to automated main-
tenance [812], service-oriented software engineering [13], compiler optimization [14,15] and quality assessment [16].
The seven papers in this issue cover a wide ranging and diverse set of software engineering activities, including
project planning, component selection, security and testing. This diversity shows the healthy state of search-based
software engineering research and practice. The papers also cover a wide range of optimization and search techniques,
including classical optimization approaches such as linear programming and branch and bound, but also adaptive search
techniques such as tabu search, evolution strategies and genetic algorithms (GA).
The article by Diaz et al. deals with the question how to achieve a sufcient degree of test coverage by an automatic
tool for structural testing. Several meta-heuristic approaches have already been applied in this context, in particular
meta-heuristics from the evolutionary algorithms family. However, little experience is available concerning the use
of tabu search for this purpose, although tabu search has been proven as one of the most successful meta-heuristic
techniques in other areas of application. In the present article, tabu search is shown to be effective and efcient also for
the generation of white-box test cases, reaching 100% branch coverage by a moderate number of test cases for some
example programs with rather difcult control ow graphs and branching conditions.
Barreto et al. devote their article to a hard problemin software project management, that of stafng a software project.
Explicit reference is made to different characteristics (e.g., skills, capabilities, experiences or roles) of developers. The
goal is to allocate available personnel to the activities arising in different phases of the software development process,
respecting different types of constraints. Barreto et al. formulate the allocation problem as a constraint satisfaction
problem and solve it by backtracking-type techniques and by branch-and-bound. Several possible objective functions
are discussed. A nal experimental investigation compares the solutions obtained in this way to those provided by
participants in an experiment.
The decision whether to build or to buy software components has already been addressed by other authors, but the
article by Cortellessa et al. raises the quantitative treatment of this problem to a new level of generality and realism.
Several relevant factors such as cost, delivery time or product reliability are integrated within a unied framework.
Contrary to prior approaches, the authors take into account the possibility of in-house development; an additional degree
of freedom can be exploited by a decision on the amount of testing to be invested. The resulting optimization model
formulations are non-linear and mixed-integer. To make larger problem instances solvable, linear approximations for
quality and reliability functions are derived.
In the work by Ahmed and Hernadi, a standard GA approach to the automatic test data generation for achieving path
coverage is extended by the modication of targeting not at a single path per GA run, but simultaneously as a set of
0305-0548/$ - see front matter 2007 Elsevier Ltd. All rights reserved.
doi:10.1016/j.cor.2007.01.008
3050 Editorial / Computers & Operations Research 35 (2008) 30493051
paths. The idea behind this approach is that while trying to nd test data for the execution of a certain path, suitable data
for that of another still uncovered path can be detected as a by-product. Of course, the approach requires an appropriate
extension of the tness function denitions for the GA. The authors discuss and test several tness function concepts,
and they compare their method to two prior approaches by Lin and by Pei, respectively, in an experiment based on six
classical test programs.
The contribution by Del Grosso et al. addresses the question how to detect buffer overow problems by means of
testing. Buffer overowattacks can have serious consequences and they forma primary cause of software vulnerability.
This motivates the development of testing techniques aimed specically at this problem. The proposed method relies
on a GA based approach to generate test input data. To guide the search in an efcient way, a particular tness function
combining diverse weighted metrics is applied. The weights are optimized by solving a linear program. The authors
show by experiments on two sets of C applications that the presented approach outperforms a previously proposed
variant. The combination of a meta-heuristic technique with linear programming also imbues a special methodological
interest; this is a combination that is uncommon in previous SBSE work.
Buehler and Wegener start their article with an introduction into the application of the evolutionary testing paradigm
to one of the most important classes of testing: functional testing. They show by two specic examples from the
automotive industrythe testing of automated parking systems and that of brake assistance systemshow to use the
concept in practice. A crucial issue in evolutionary functional testing is the denition of suitable objective functions.
The complex properties of the applications considered make this a highly non-trivial task. An experimental evaluation
of the results for the brake assistance system is presented, including a comparison both with manually and randomly
generated test cases. The evaluation clearly demonstrates the advantages of the approach.
Alba and Chicano investigate the condition coverage achieved in automatic test data generation by two evolutionary
algorithms, namely evolutionary strategies (ES) and GA. For both variants, both a panmictic version (working on a
single, unstructured population) and a decentralized version (using a partition into sub-populations with migration in a
ring topology) are studied. The algorithms are applied to 12 test programs. It turns out that, contrary to the expectations
from results in other application elds, the decentralized versions have no statistically signicant advantages over their
panmictic counterparts. However, ES shows signicantly better performance than GA in both versions.
We would like to warmly thank the authors and the anonymous reviewers for the time and expertise in helping
to produce this focussed issue. We would also like to extend our sincere thanks to both the outgoing editor, Gilbert
Laporte, and the incoming editor, Stefan Nickel for their support for this focussed issue. Special thanks are also due to
Zheng Li, who provided valuable technical and administrative support, during the reviewing process.
References
[1] Clark J, Dolado JJ, Harman M, Hierons RM, Jones B, Lumkin M. et al. Reformulating software engineering as a search problem. IEE
ProceedingsSoftware 2003;150(3):16175.
[2] Harman M, Jones BF. Search based software engineering. Information and Software Technology 2001;43(14):8339.
[3] Bagnall A, Rayward-Smith V, Whittley I. The next release problem. Information and Software Technology 2001;43(14):88390.
[4] Antoniol G, Penta MD, Harman M. Search-based techniques applied to optimization of project planning for a massive maintenance project. In:
21st IEEE international conference on software maintenance. Los Alamitos, California, USA: IEEE Computer Society Press; 2005. p. 2409.
[5] Dolado JJ. A validation of the component-based method for software size estimation. IEEE Transactions on Software Engineering
2000;26(10):100621.
[6] Kirsopp C, Shepperd M, Hart J. Search heuristics, case-based reasoning and software project effort prediction. In: GECCO 2002: proceedings
of the genetic and evolutionary computation conference. San Francisco, CA 94104, USA: Morgan Kaufmann Publishers; 913 July 2002. p.
136774.
[7] McMinn P. Search-based software test data generation: a survey. Software Testing, Verication and Reliability 2004;14(2):10556.
[8] Bouktif S, Antoniol G, Merlo E, Neteler M. A novel approach to optimize clone refactoring activity. In: GECCO 2006: proceedings of the
eighth annual conference on genetic and evolutionary computation, vol. 2. Seattle, Washington, USA: ACM Press; 812 July 2006. p. 188592.
[9] Fatiregun D, Harman M, Hierons R. Search-based amorphous slicing. In: 12th international working conference on reverse engineering (WCRE
05). Pittsburgh, Pennsylvania, USA: Carnegie Mellon University; 2005. p. 312.
[10] Mitchell BS, Mancoridis S. On the automatic modularization of software systems using the bunch tool. IEEE Transactions on Software
Engineering 2006;32(3):193208.
[11] OKeeffe M, OCinneide M. Search-based software maintenance. In: Conference on software maintenance and reengineering (CSMR06).
March 2006. p. 24960.
[12] Seng O, Bauer M, Biehl M, Pache G. Search-based improvement of subsystem decompositions. In: Beyer H-G, OReilly U-M editors. Genetic
and evolutionary computation conference, GECCO 2005, proceedings, Washington DC, USA, June 2529, 2005, ACM; 2005. p. 104551.
Editorial / Computers & Operations Research 35 (2008) 30493051 3051
[13] Canfora G, Penta MD, Esposito R, Villani ML. An approach for qoS-aware service composition based on genetic algorithms. In: Beyer H-G,
OReilly U-M, editors. Genetic and evolutionary computation conference, GECCO 2005, proceedings, Washington DC, USA, June 2529,
2005, ACM; 2005. p. 106975.
[14] Cohen M, Kooi SB, Srisa-an W. Clustering the heap in multi-threaded applications for improved garbage collection. In: GECCO 2006:
Proceedings of the eighth annual conference on genetic and evolutionary computation, vol. 2. Seattle, Washington, USA: ACM Press; 812
July 2006. p. 190108.
[15] Cooper KD, Schielke PJ, Subramanian D. Optimizing for reduced code space using genetic algorithms. In: Proceedings of the ACM sigplan
1999 workshop on languages, compilers and tools for embedded systems (LCTES99). ACM Sigplan Notices, vol. 34.7. NY: ACM Press; May
5, 1999. p. 19.
[16] Khoshgoftaar TM, Yi L, Seliya N. A multiobjective module-order model for software quality enhancement. IEEE Transactions on Evolutionary
Computation 2004;8(6):593608.
Guest Editors
Walter J. Gutjahr
University of Vienna, Austria
E-mail address: [email protected]
Mark Harman
Kings College, London
E-mail address: [email protected]