Software quality assurance and testing is a hugely important task in the software development process. So far, it has been largely a manual 'brute force' process involving a lot man-hours.
Scientists and engineers have now devised a new way of testing different ways of organising code and searching for faults in millions of lines of code. They have done so by taking inspiration from evolution-tested hunting strategies in animals such as penguins.
The natural world may seem an odd place to look for solutions to a software problem - but the safety implications in complex, multi-component software-ridden systems such as connected cars, could be huge.
With a problem as critical as road safety, there seems to be no limit to how far researchers will go to look for solutions – even to the depths of a frigid ocean.
Penguins were another candidate, said Prof Papadopoulos, because millions of years of evolution has helped them develop very efficient hunting strategies. This was useful behaviour to copy, he said, because it showed that penguins had solved a tricky optimisation problem - how to ensure as many penguins as possible get enough to eat. "There must be something special about their hunting strategy," he said, adding that an inefficient strategy would mean many birds starved. Prof Papadopoulos said many problems in software engineering could be framed as a search among all hypothetical solutions for the one that produces the best results. Evolution, through penguins and many other creatures, has already searched through and discarded a lot of bad solutions.