Software checker finds bugs

NASA scientists are developing a software ‘checker program’ to find ‘bugs’ in spacecraft computer code more quickly and accurately to improve space mission safety.

Ever since a moth crawled into an early electro-mechanical computer in 1945 and caused a problem, or ‘bug,’ that halted the machine, programmers have been plagued by glitches in new software.

Making software work properly costs developers about half their budgets and delays software release. Because some bugs could cause spacecraft to fail or malfunction, NASA scientists developed ‘C’ Global Surveyor (CGS) software to check flight software for errors swiftly and automatically.

‘Eliminating bugs is important for NASA, because even simple software bugs can lead to the loss of a mission,’ said Guillaume Brat, a researcher at NASA’s Ames Research Center, located in California’s Silicon Valley. ‘With CGS, we detect what can interrupt the program, what can cause the program to crash,’ Brat added.

Computer software that drives space missions contains many thousands of lines of computer code. Programmers have had to check this code manually, a time-consuming and expensive task.

Preliminary tests of the CGS software checker included evaluation of code from previous space missions, including Deep Space 1 that flew in 1999, the Mars Pathfinder mission and parts of the Mars Exploration Rover (MER) code, which were written in ‘C’ computer language.

During the tests, CGS software took only 25 minutes to check hundreds of thousands of lines of spacecraft computer code. CGS checks all flight software commands, and then reports back, listing code that is bug-free, code that has bugs and code that needs more checking by other means, according to Arnaud Venet, a computer scientist at NASA Ames who also is working on the CGS project.

Computer scientists at NASA Ames hope that a later version of CGS will help programmers automatically check software to be written for the 2009 Mars Science Laboratory Mission. That code will be written in ‘C++’ computer language. A preliminary version of C++ CGS is slated to be ready for testing by September 2005, according to Venet.

A major purpose of CGS software checker is to enable NASA to produce spacecraft software much faster, according to Venet. ‘You make the computer work for you instead of spending hours doing it. Saving a substantial amount of money will be a bonus,’ Venet stated.