We’ve all had the infuriating experience of using apps that freeze or malfunction. For Facebook, keeping this experience to a minimum for its 1.5 billion daily users is a business imperative.
Facebook’s source control, which is the central repository that controls all of the ways in which developers makes changes to the software has roughly one million commands sent to it every single day. This translates into over 100,000 changes made to software each week. At this scale, errors are bound to slip through.
To minimise the chance of this as far as possible, the company scans software code continuously at many different stages, including pre-testing, internal testing and the software that actually reach end users. Techworld heard from Mark Harman, Facebook’s Engineering Manager, and part time professor of Software Engineering at University College London, about developing a tool focused at the very early stages of code generation.
Named Sapienz, this tool automatically scans code for certain classes of bugs and is increasingly beginning to intelligently suggest fixes too.
Bug fixes at this internal stage (there’s a whole other department which deals with spotting bugs that have made it into the end product) can take minutes up to hours to solve, with the worst potentially eating into weeks of a developer’s time.
The Sapienz tool relies on something called search based software engineering. This is the combination of search based optimisation and software engineering. “We mean search in the sense that we’re searching the search space of tests to find tests which are good at revealing faults,” says Harman. This is an area which has received ample interest and research in academic circles, says Harman, and which is currently gaining more traction in the industry.
}); Source : techworld