Por trás da SpaceX: linguagens de programação e software de teste

As naves espaciais SpaceX são operadas por código escrito por engenheiros e desenvolvedores. Mas quem está por trás deles? A equipe de Engenharia de entrega de software é responsável por coordenar todo o desenvolvimento de software e práticas de teste no SpaceX. Isso garante que todos os que precisam escrever o código da espaçonave usem métodos de controle apropriados e que haja testes automatizados e humanos gerenciados em um sistema de integração contínua (CI).

testar software e linguagens de programação no SpaceX
Por trás da SpaceX: teste de software e linguagens de programação

SpaceX, controle e revisão: os principais fatores

Dentro do projeto SpaceX , além da equipe de Engenharia de Entrega de Software, está a equipe de SRE (Software Reliability Engineering), composta por 15 engenheiros. As duas equipes estão envolvidas nas fases de desenvolvimento, teste e DevOps. Os engenheiros têm à disposição um serviço web que desempenha diversas funções : adquire dados de telemetria de testes de software e hardware, cria gráficos e produz um relatório de desempenho do software. O controle de qualidade do software da espaçonave contém requisitos muito mais rígidos do que aqueles em aplicativos de consumo normais e contém padrões de qualidade altamente específicos e rigorosos.

“Há muitas coisas extras que você precisa fazer durante o processo de desenvolvimento antes de entrar. Temos muitas verificações e verificações duplas. Temos condições de revisão de solicitação pull que precisam ser atendidas, incluindo testes pós-mesclagem para garantir que as alterações feitas enquanto uma solicitação pull estava em andamento não interfiram com a alteração que acabamos de mesclar. "

Ishimoticha, um engenheiro do grupo Choctaw Nation of Oklahoma Software Delivery Engineering

centro de controle e software de teste no SpaceX
Centro de controle e software de teste no SpaceX

SpaceX e software de teste: a metodologia utilizada

O processo de desenvolvimento em SpaceX envolve a chamada metodologia ágil, na qual vários engenheiros trabalham de forma incremental no código. A filosofia subjacente vê a presença de um "engenheiro responsável". Ele aborda os problemas escolhendo um do backlog , tenta entendê-lo e analisá-lo em todos os aspectos e, posteriormente, projeta sua funcionalidade e possível correção. Depois que a solução é implementada, ela garante a cobertura do teste e cuida dos testes funcionais em um ambiente isolado. Na fase seguinte, há a revisão e na fase final o engenheiro deve garantir que o próximo teste realizado no mestre vá para o CI. O CI é baseado no HT Condor, um sistema de gerenciamento de carga de trabalho de computação intensiva criado pelo High Throughput Computing Group da University of Wisconsin Madison.

A ideia básica é que você só pode realmente dominar o que está fazendo se a pessoa que é capaz de criar a mudança for a mesma que entende o que precisa ser mudado . Desta forma, o engenheiro é estimulado a entender o que precisa ser feito e, portanto, encontrar uma solução adequada para o problema.

É um processo muito eficiente, semelhante a como você pode pensar que uma startup foi construída. Nós realmente nos concentramos em colocar nossos engenheiros o mais próximo possível do sistema real no qual eles estão influenciando

Sepanloo, gerente, engenharia de software

SpaceX: linguagens de programação

SpaceX usa linguagens de programação como C e C ++ para desenvolver o software para seus veículos. As bibliotecas usadas na linguagem de programação são de código aberto e desenvolvidas internamente. No entanto, a escolha de utilização dessas bibliotecas é muito limitada àquelas consideradas de excelente qualidade pela equipe de desenvolvimento. No detalhe, a linguagem C ++ é usada para programar sistemas de controle, Python é reservado para a criação de ferramentas de desenvolvimento, teste e automação. O Docker é usado para garantir que cada construção seja executada em um ambiente limpo. O sistema operacional utilizado pela SpaceX é o Linux com o patch PREEMPT_RT para obter melhor performance em tempo real.

O artigo Behind SpaceX: Linguagens de programação e software de teste vem de Tech CuE | Engenharia de Close-up .