I was talking to a friend yesterday about some possible contents of a software engineering course. An idea flashed into my mind about writing something about search based software engineer. While traditional software engineering engages a subject (a software engineer so to say) in the process of software engineering, search based software engineering leverages to a large extent from machine learning algorithms and meta-heuristic techniques.
I remember I read a research paper a few years ago in which the authors had employed a genetic algorithm for identifying bugs in a piece of software. The algorithm works by generating a large population of individuals. Each one of them is a valid input to the program. By valid I mean something that the program can accept as input. So the search space is the set of all the valid inputs to the program at hand.
The algorithm evaluates all the individuals by seeing how the program works as they are input to it. On the inputs on which the program crashes, the algorithm uses them to evolve further generations. This is how the algorithm narrows down on the search space and moves to the regions which generate inputs that crash the program. On further inspection of the inputs, the user may learn about the patches of the code of the program that may have caused crashes. The bugs can then be fixed easily.
The talking I am talking about was quite old. I guess it was written in the late 90s’ by a few researchers in the Norway’s Trondheim University of Technology.
The scheme was elegant nonetheless. It reduces a lot of labor on part of the software engineer as the process of bug testing is automated.
Search based software engineering is a matured field now. Every now and then I get an email about a call for papers from a conference, symposium or a workshop being held on evolutionary computation and there is almost always a track for search based software engineering.
Here I am posting a few links that might be of interest to anyone who is willing to work in this area.
Here is a link on GECCO’s website about its track on search based software engineering.
This is a link about an independent symposium that is held about this topic.
http://ssbse.org/2016/
Evostar conferences are leading European conferences about various topics in theory and applications of machine learning. Here is a link to their conference of software engineering.
http://www.evostar.org/2017/cfp_evoset.php
I shall keep on finding and posting more valuable stuff on this topic here.
If you found an error, highlight it and press Shift + Enter or click here to inform us.
Search Based Software Engineering by Psyops Prime is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.