Facebook’s open-source home-grown software for mobile testing is a static code analyzer and which plays a very crucial part in spotting bugs in mobile programs. Named Infer, the tool helps to find null point dereferences along with resource and memory leaks in codes before sending them for mass production.
The credit for this amazing tool goes to the trio of O’Hearn, Calacagno and Distefano. They became a part of the social giants in 2013 as a result the breakthrough achieved in their London based start-up Monoidics. The core development methodologies, separation logic and bi-abduction were integrated into Facebook, by giving it the necessary tweaks and improvements. Written in OCamlm, Infer currently scans Objective-C code for iOS apps and Java code in Android apps. It is also capable of scanning C code and non-Android Java code.
Facebook says it hopes that the open source community will be able to help extend the company’s capabilities and develop more uses for it. As if now the tool is working just swell, says the engineers, as it has helped in bug fixes of about 80% so far.
Static code testing tools are available in plenty, but the unique scale of the codes used in Facebook requires something that is very powerful. This is where Infer helps fill the gap. It handles checking a million lines of source code along with the task of verifying all the various possibilities. Above all the codes used by Facebook is not a fixed one, which means that the continuously evolving codes needs mastering by the tool in use. It must also be capable of sending a report in the region of 10 minutes to fit with the developer’s workflow. The use of advanced mathematical techniques such as separation logic and bi-abduction helps to achieve all this with relative ease.
The trio is also look forward to making further advances in the testing methodologies, which they refer to as program verification.
"In program verification, certainly, a tremendous amount remains to be done," they said. "But, with continued progress, we believe there is also much more value that can be unlocked for programmers. We look forward to a future in which, with your help, program verification technology can prove more and more useful in helping programmers develop reliable code, fast."