News

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 you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
 

COMMENTS powered by Disqus  //  Commenting policy