Search-based software engineering: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Alter: title, template type. Add: chapter-url, chapter. Removed or converted URL. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | #UCB_CommandLine
Citation bot (talk | contribs)
Altered doi-broken-date. | Use this bot. Report bugs. | #UCB_CommandLine
 
(9 intermediate revisions by 9 users not shown)
Line 1:
{{Short description|Application of metaheuristic search techniques to software engineering}}
{{Use dmy dates|date=December 2020}}
'''Search-based software engineering''' ('''SBSE''') applies [[metaheuristic]] search techniques such as [[genetic algorithms]], [[simulated annealing]] and [[tabu search]] to [[software engineering]] problems. Many activities in [[software engineering]] can be stated as [[Optimization (mathematics)|optimization]] problems. [[Optimization (mathematics)|Optimization]] techniques of [[operations research]] such as [[linear programming]] or [[dynamic programming]] are often impractical for large scale [[software engineering]] problems because of their [[Computational complexity theory|computational complexity]] or their assumptions on the problem structure. Researchers and practitioners use [[metaheuristic]] search techniques, which impose little assumptions on the problem structure, to find near-optimal or "good-enough" solutions.<ref>{{Cite journal |last1=Mohan |first1=M. |last2=Greer |first2=D. |date=2019-08-01 |title=Using a many-objective approach to investigate automated refactoring |url=https://www.sciencedirect.com/science/article/pii/S0950584919300916 |journal=Information and Software Technology |volume=112 |pages=83–101 |doi=10.1016/j.infsof.2019.04.009 |issn=0950-5849}}</ref>
 
'''Search-based software engineering''' ('''SBSE''') applies [[metaheuristic]] search techniques such as [[genetic algorithms]], [[simulated annealing]] and [[tabu search]] to [[software engineering]] problems. Many activities in [[software engineering]] can be stated as [[Optimization (mathematics)|optimization]] problems. [[Optimization (mathematics)|Optimization]] techniques of [[operations research]] such as [[linear programming]] or [[dynamic programming]] are often impractical for large scale [[software engineering]] problems because of their [[Computational complexity theory|computational complexity]] or their assumptions on the problem structure. Researchers and practitioners use [[metaheuristic]] search techniques, which impose little assumptions on the problem structure, to find near-optimal or "good-enough" solutions.
 
SBSE problems can be divided into two types:
Line 62 ⟶ 61:
| journal = [[IEE Proceedings - Software]]
| year = 2003
| doi-broken-date = 12 July 2025
| citeseerx = 10.1.1.144.3059
}}</ref>
Line 221:
| pages = 3–13
| last1 = Le Goues
| first1 = Claire | author1-link = Claire Le Goues
| last2 = Dewey-Vogt
| first2 = Michael
Line 244:
| book-title = IEEE Congress on Evolutionary Computation, 2008. CEC 2008. (IEEE World Congress on Computational Intelligence)
| year = 2008
| citeseerx = 10.1.1.159.7991
}}</ref>
 
===Testing===
Search-based software engineering has been applied to software testing, including the automatic generation of test cases (test data), test case minimization and test case prioritization.<ref>{{Cite book|last1=Harman|first1=Mark|last2=Jia|first2=Yue|last3=Zhang|first3=Yuanyuan|title=2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST) |chapter=Achievements, Open Problems and Challenges for Search Based Software Testing |date=April 2015|___location=Graz, Austria|publisher=IEEE|pages=1–12|doi=10.1109/ICST.2015.7102580|citeseerx=10.1.1.686.7418|isbn=978-1-4799-7125-1|s2cid=15272060}}</ref> [[Regression testing]] has also received some attention.
 
===Optimizing software===
Line 260 ⟶ 261:
| url = http://www0.cs.ucl.ac.uk/staff/w.langdon/ftp/papers/Langdon_2013_ieeeTEC.pdf
}}</ref>
A recent work by Basios et al. shows that by optimising the data structure, Google Guava found a 9% improvement onin execution time, 13% improvement onin memory consumption and 4% improvement onin CPU usage separately.<ref>{{cite book|last1=Basios|first1=Michail|last2=Li|first2=Lingbo|last3=Wu|first3=Fan|last4=Kanthan|first4=Leslie|last5=Barr|first5=Earl T.|title=Search Based Software Engineering |chapter=Optimising Darwinian Data Structures on Google Guava |volume=10452|date=9 September 2017|pages=161–167|doi=10.1007/978-3-319-66299-2_14|language=en|series=Lecture Notes in Computer Science|isbn=978-3-319-66298-5|url=http://discovery.ucl.ac.uk/10062895/1/ssbse_dariwnian_guava.pdf}}</ref>
 
===Project management===
Line 340 ⟶ 341:
| pages = 421–443
| last1 = Le Goues
| first1 = Claire | author1-link = Claire Le Goues
| last2 = Forrest
| first2 = Stephanie
Line 384 ⟶ 385:
*[https://scholar.google.co.uk/citations?view_op=search_authors&hl=en&mauthors=label:sbse Google Scholar page on Search-based software engineering]
 
{{Software engineering}}
[[Category:Computer-related introductions in 2001]]
[[Category:Software testing]]
[[Category:Search algorithms]]
[[Category:Optimization algorithms and methods]]
[[Category:Genetic algorithmsMetaheuristics]]
[[Category:Software quality]]
[[Category:Program analysis]]