Software Testing through Genetics

Genetics is a fantastic science, studies the properties of living beings and hereditary characters, connects these characters to generations with certain inheritance laws, and investigates genetic structures and tasks. Genetics (comes from genno which means giving birth in Greek), examines how all the features of the living thing is passed from old to new generations. Also known as heredity science. Mendel who is considered to be the father of this popular science of these days, has done intensive studies in hereditary features of plants.

Starting from 1856, Mendel began collecting seeds from variety of peas (Pisum sativum) and growing them in the monastery garden, examining the differences between them.

Even though Mendel’s studies didn’t draw much attention at first, after Darwin published a book called “The origin of species” in 1859 the subject aroused interest and found worthy to investigate and learn more about. I am aware that I can bore you with history and biology, which are the top ones of not very liked lessons, but I will link the subject to information technology.

In 1975, John Holland’s work on machine learning was influenced by the above information, transferring this process of genetic evolution to the computer environment and imagining that the entire mechanistic structure could be obtained by genetic processes such as “mating, multiplying, changing …” has brought a different dimension. After publishing the results, Holland developed a method later known as “Genetic Algorithms”

“Crossover” and “Mutation” are 2 main procedures that play a role in gene change. Selection between these changed genes with mutation and crossover, is the method used in genetic algorithms and to achieve success.

Today genetic algorithms are used in many different areas such as machine learning, finance, routing, system security, marketing, scientific computing, facility layout and scheduling problems in order to find optimum solutions. However, the most interesting thing for me is that my friend Mr. Bulut Undar uses this algorithm to prioritize the test scenarios that have been gathered by the test team and to enable serious resource decrease with improvement of 28,5%.

So, message to my friend Mr. Undar as a testing specialist.. Dear Bulut,  genetic, algorithm, regression etc. these are good things but if you keep on working on this, we may not be able to find a job to work on. I hope not one day you look at my empty desk and question the harms of technology 🙂

I will continue to analyze and write about this topic in my later posts…

Best Regards

Fırat Ay

Software and Test Specialist