Search-based software engineering
Search-based software engineering (SBSE) is an approach to apply metaheuristic search techniques like genetic algorithms, simulated annealing and tabu search to software engineering problems. It is inspired by the observation that many activities in software engineering can be formulated as optimization problems. Due to the computational complexity of these problems, exact optimization techniques of operations research like linear programming or dynamic programming are mostly impractical for large scale software engineering problems. Because of this, researchers and practitioners have used metaheuristic search techniques to find near optimal or good-enough solutions.
Brief history 
One of the earliest attempts in applying optimization to a software engineering problem was reported by Webb Miller and David Spooner in 1976 in the area of software testing. Xanthakis et al. apply for the first time a search technique to a software engineering problem in 1992. The term SBSE was first used in 2001 by Harman and Jones.
Application areas 
Software testing has been one of the major applications of search techniques in software engineering. However, search techniques have been applied to other software engineering activities, for instance:requirements analysis, software design, software development, and software maintenance. In his FoSE paper, Harman identifies the current state of SBSE and highlights future trends in this approach to software engineering.
- W. Miller and D. L. Spooner, Automatic Generation of Floating-Point Test Data, IEEE Transactions on Software Engineering, Vol. 2, No. 3, pp. 223–226 (1976)
- S. Xanthakis, C. Ellis, C. Skourlas, A. Le Gall, S. Katsikas and K. Karapoulios, Application of genetic algorithms to software testing, InProceedings of the 5th International Conference on Software Engineering and its Applications, pp. 625–636 (1992)
- M. Harman and B. F. Jones, Search-based software engineering, Information & Software Technology, Vol. 43, No. 14, pp. 833–839 (2001)
- P. McMinn, Search-based software test data generation: a survey, Software Testing, Verification and Reliability, Vol. 14, No. 2, pp. 105–156 (2004)
- D. Greer and G. Ruhe, Software release planning: an evolutionary and iterative approach,Information & Software Technology, Vol. 46, No. 4, pp. 243–253 (2004)
- F. Colares et al., A New Approach to the Software Release Planning, In Proceedings of XXIII Brazilian Symposium on Software Engineering (SBES '09), pp.207–215, 5–9 Oct, Brazil (2009)
- J. A. Clark and J. L. Jacob, Protocols are programs too: the meta-heuristic search for security protocols, Information & Software Technology, Vol. 43, No. 14, pp. 891–904 (2001)
- E. Alba and F. Chicano, Software Project Management with GAs, Information Sciences, Vol. 177, pp. 2380–2401 (2007)
- G. Antoniol, M. Di Penta and M. Harman, Search-Based Techniques Applied to Optimization of Project Planning for a Massive Maintenance Project, In Proceedings of IEEE International Conference on Software Maintenance, pp. 240–249 (2005)
- M. Harman, The Current State and Future of Search Based Software Engineering, In Proceedings of the 29th International Conference on Software Engineering (ICSE 2007), 20–26 May, Minneapolis, USA (2007)