11.07.2015 Views

A Successful Strategy for Satellite Development and Testing - Inpe

A Successful Strategy for Satellite Development and Testing - Inpe

A Successful Strategy for Satellite Development and Testing - Inpe

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Software <strong>Testing</strong>in Space ProgramsAs space-system software grows in size <strong>and</strong> complexity, adequate testingbecomes more difficult—<strong>and</strong> more critical.Myron Hecht <strong>and</strong> Douglas BuettnerPhoto courtesy of European Space Agency; Ada code from http://www-aix.gsi.de/~giese/swr/ariane5.html...declarevertical_veloc_sensor: float;horizontal_veloc_sensor: float;vertical_veloc_bias: integer;horizontal_veloc_bias: integer;...begindeclarepragma suppress(numeric_error, horizontal_veloc_bias);beginsensor_get(vertical_veloc_sensor);sensor_get(horizontal_veloc_sensor);vertical_veloc_bias := integer(vertical_veloc_sensor);horizontal_veloc_bias := integer(horizontal_veloc_sensor);...exceptionwhen numeric_error => calculate_vertical_veloc();when others => use_irs1();end;end irs2;The Ariane 5 launch vehicle failed on its maiden flight in June1996. About 40 seconds after liftoff, a software bug in theflight controller made the rocket veer off course, leading to itsdestruction via ground comm<strong>and</strong>. Ariane 5 reused softwarefrom Ariane 4 without proper testing. Contributing to themishap, run-time range checking had been turned off becauseof processor limitations. Also, the backup channel had failedmilliseconds earlier because of the same coding defect.Failures attributed to software defects are becoming increasinglyvisible in space systems. Recent newsworthy examples include thefailure of the Mars rover Spirit to execute any task that requestedmemory from the flight computer; the unanticipated descent of the MarsClimate Orbiter into the Martian atmosphere, ultimately traced to a unitconversion defect in a navigation system; <strong>and</strong> the crash of the Mars PolarL<strong>and</strong>er onto the Martian surface after a premature shutdown of its descentengines. In 1996, the first launch of the Ariane 5 booster ended with aspectacular crash off the coast of French Guiana. The cause was traced toa variable overflow that affected software running in both channels of itsdual redundant inertial reference system. Earlier this year, the EuropeanSpace Agency’s Huygens probe successfully beamed back only half ofits image data. The other half was lost because of a single missing line ofcode.In the period from 1998 to 2000, nearly half of all observed spacecraftanomalies were related to software. Anomalies, less severe than failures,have been occurring with increasing frequency on U.S. national securityspace vehicles. One reason is that space-system software has been growingmore complex to meet greater functional dem<strong>and</strong>s. Another reason isthat software quality is inherently difficult to determine. The challenge indeveloping the next generation of national security space vehicles will beto ensure reliability despite increasing software size <strong>and</strong> complexity. Softwaretesting is an important factor in meeting this challenge.Types of Software <strong>Testing</strong>Software testing methods generally fall into two categories: “black box”<strong>and</strong> “white box” (while some authors also identify a third category, the“ticking box,” which involves not doing any testing).Black-box methods disregard the software’s internal structure <strong>and</strong>implementation. The test data, completion criteria, <strong>and</strong> procedures aredeveloped solely to test whether the system meets requirements, withoutconsideration of how the software is coded. Black-box testing is used at alllevels of testing <strong>and</strong> is particularly applicable at higher levels of integration,where the underlying components are no longer visible.White-box testing, on the other h<strong>and</strong>, does account <strong>for</strong> the internalsoftware structure in the <strong>for</strong>mulation of test cases <strong>and</strong> completion criteria.The most common types of white-box testing include branch testing,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!