После трансляции успешного запуска SpaceX Crew Dragon мне стало интересно узнать подробности тестирования ПО для ракет SpaceX. Вот, что я нашёл:
Инженеры SpaceX тестируют ПО для ракет с помощью симуляции (via):
The triple redundancy gives the system radiation tolerance without the need for expensive rad hardened components. SpaceX tests all flight software on what can be called a table rocket. They lay out all the computers and flight controllers on the Falcon 9 on a table and connect them like they would be on the actual rocket. They then run a complete simulated flight on the components, monitoring performance and potential failures.
SpaceX engineers perform what they call "Cutting the strings" where they randomly shut off a flight computer mid simulation, to see how it responds.
ПО для критически важной инфраструктуры требует прохождения сертификации, то есть вы, например, не можете запустить случайную программу на бортовых компьютерах самолета. Одной из таких сертификаций является DO-178B (Software Considerations in Airborne Systems and Equipment Certification). Выполнение требований для прохождения сертификации и обеспечения корректности ПО обеспечивается с помощью инструментов верификации программного обеспечения и одним из них является Astrée. Это статический анализатор кода, который проверяет ошибки времени выполнения и ошибки, связанные с параллелизмом в проектах, написанных на Си. (via)