The Mars Curiosity Rover,a robot sent to Mars by NASA to investigate the possibility of extra-terrestrial life on the planet,had to undergo a rigorous software verification process to ensure that it could safely land on Mars.
Further reading
The technology powering the Mars Curiosity Rover Nasa goes boldly into the cloud
The robot,which had its first test drive on Wednesday,was built by NASA Jet Propulsion Laboratory(JPL).JPL opted to use development testing software provider Coverity to ensure that flight control and on-board function software were thoroughly tested.
In an interview with Computing,Andy Chou,chief technical officer and co-founder of Coverity,explained what the project entailed.
"The JPL developed several million lines of code–which if printed would be a 6ft stack of paper–and part of it was for the landing process,but also for other experiments.Before the software was fully testable,the JPL eliminated a large portion of the defects they found,"he said.
JPL then enforced a mandate to use static analysis tools,including Coverity,and fix everything that these tools found;both defects and"false positives",which are incorrect reports of the tools.
Full scans were completed every night on all of the code and this resulted in what Chou called a"near infinite detection"of the defects that were introduced onto the code base.
"This allowed JPL to remove defects and ensure quality as the code is being formed and written and as a result it got quality code upfront so that its later testing could be more rigorous and focused on more difficult issues,"he said.
Chou explained that it was very difficult to get anything of that size to be defect-free.
"JPL tried everything it could and got it right and it shows that we can get it right even for large software systems,"he said.
[Turn to next page]
1 2