What kind of software quality assurance techniques are employed in the development of space systems? How are they different from other techniques in aviation, nuclear or other high stake systems?

  • $\begingroup$ I can't tell you much, except to say that the Falcon 9 used by SpaceX runs on a custom Linux distro. $\endgroup$ – Kaz Dec 22 '15 at 13:53
  • 3
    $\begingroup$ Your question is very broad. Some aspects of it are discussed here: space.stackexchange.com/questions/12336/… $\endgroup$ – Organic Marble Dec 22 '15 at 14:10
  • 1
    $\begingroup$ See also space.stackexchange.com/questions/9260/… $\endgroup$ – Hobbes Dec 22 '15 at 14:11
  • $\begingroup$ @zak interesting, you don't happen to know exactly what distro they use, do you? I would have assumed they use something like integrity... $\endgroup$ – mike Dec 22 '15 at 14:49

The normal stuff - code reviews, unit tests, black box tests, load tests etc, etc. The biggest difference is the vigour.

You have to go through detailed design review, a code review, there is often a requirement that certain percentage (often 80% or 90%) of your code be covered by automated tests, there are usually performance requirements you have to meet, you have to run static and dynamic code analysis the results of which are also peer reviewed.

All of that is the factory testing, once the software is delivered, you go through a round of system level tests which are sometimes designed by a third party with third party data.

My experience is all in ground software, for flight software, they have an additional step where they load the software to the actual flight hardware, hook it up to hardware simulators and test it.


Some of the information contained in this post requires additional references. Please edit to add citations to reliable sources that support the assertions made here. Unsourced material may be disputed or deleted.

  • $\begingroup$ Thank you for your answer! How are change requests handled? Is SW for space systems written in C++? Are you using ALM Software? Do you use formal verification methods? How are bugs handled, that make it through? Are there standards guiding this, or is that 'secret sauce'? $\endgroup$ – mike Dec 22 '15 at 16:39
  • $\begingroup$ No, no secret sauce. ALM software is used, but the specific process and the tools used is up to the developing organization. I've seen Jira and IBM Rational used. The government requires the contractors to be CMMI certified - that means that their process (how they track/verify requirements, bugs etc) has to meet some requirements, but the specifics are up to them. C++, Java & Fortran are pretty standard in terms of languages for ground software, from the little flight software I've seen it tends to be C++. $\endgroup$ – ventsyv Dec 22 '15 at 16:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.