Rigorous software testing gets Curiosity off to a good start


Rigorous software testing gets Curiosity off to a good start

Cliff Saran

NASA’s Jet Propulsion Lab (JPL) used static code analysis from Coverity to maximise the quality of the code running on the Curiosity rover.

Curiosity successfully landed on Mars earlier this month. The developers at JPL used a suite of sophisticated software tools and programming techniques, including Coverity, to improve the quality of the software that controls the flight and onboard functions of Curiosity. With more than two million lines of code, the software team needed to ensure that every software defect was found and fixed before launch.

(4)curiosity - artist imp.jpg

A defect could mean the difference between success and failure for the $2.5bn NASA mission and impair its ability to assess its findings, so the software development process had to be rigorous and the code thoroughly vetted. JPL used automated code checking tools to test the software for bugs and overly complex coding.

According to Andy Chou, co-founder and chief technology officer at Coverity, static code analysis offers developers one of the earliest ways to detect problems. “Defects can be found when developers still have the code in their head. At NASA JPL, the code analysis tools were also conducted at later stages [in the project] to check again that no flaws had been introduced,” he said.

Static code analysis can also produce "false positives", Chou said – where the tool identifies legitimate code as incorrect. However, he said: “The developers at JPL fixed everything – even when there was a false positive. They understood that if the tool got confused about a piece of code, the code may be too complicated."

Image: NASA/JPL-Caltech

Email Alerts

Register now to receive ComputerWeekly.com IT-related news, guides and more, delivered to your inbox.
By submitting your personal information, you agree to receive emails regarding relevant products and special offers from TechTarget and its partners. You also agree that your personal information may be transferred and processed in the United States, and that you have read and agree to the Terms of Use and the Privacy Policy.

COMMENTS powered by Disqus  //  Commenting policy