Pergunta

Eu estou trabalhando em um pequeno projetos divertidos que constrói um robô. Nós, como os programadores estão trabalhando paralelamente às pessoas construindo o robô. Por isso é muito frequentemente o caso que estamos a tentar executar o software alterado e os construtores mudaram o hardware. Se os testes de software não estão em execução é sempre uma coisa difícil de descobrir se o software ou o hardware falhar ou ainda pior se a integração falhar. Há algumas partes duras com um teste automático para este problemas.

Nós já descobriu algumas maneiras de quebrar as coisas por isso temos controle rc para deixar o robô passar por alguns movimentos sem software assegurando que ele ainda funciona. Então começamos alguns testes de software que fazem o robô vai algumas figuras definidas para mostrar que se comporta de software da mesma forma como antes. Mas isso sempre se resume a uma tarefa muito demorada porque você não pode automatizá-lo e alguém tem que começar o teste, assistir à prova e tentar descobrir se o robô fez o que deveria fazer.

Outro problema é que o teste constante com o nosso hardware real está usando a partes do nosso hardware, conjunta, motores, rodas de engrenagem e assim por diante.

Mas não testar provou causar tantos problemas e consumir tanto tempo que eu gostaria de saber que tipo de técnicas são usadas em outros projetos que estão lidando com a interação software hardware e se existem ferramentas lá fora, que podem ser usado.

Foi útil?

Solução

A interface entre o robô eo software deve ser definida em primeiro lugar; não necessariamente exaustiva, isso poderia ser feito de forma incremental. Comece pequeno, por exemplo, com movimentos básicos (para a frente, para trás), então, uma vez que foi totalmente testado, tanto de forma isolada e integrada, adicione alguns comportamentos (por exemplo, virar à esquerda, vire à direita), reteste. Dessa forma, toda a equipe pode usar o que aprendeu ao longo de todo o projeto para estender a interface, possivelmente minimizando retrabalhos interface.

O Progress antes artigo Hardware descreve um tal processo em maiores detalhes, focando Teste-Driven-Development (TDD) aspecto.

Veja também respostas para a Como fazer TDD com a pergunta hardware .

Outras dicas

Eu acho que é uma situação muito interessante.

Eu acredito que não há nenhum problema com o seu processo de teste. Se você zombar de seu robô e teste contra esta falsa, é tudo de bom.
Se o robô hardware age diferente como seu robô escarnecido, há um outro grande problema:. A comunicação

A interface entre o software eo hardware é a especificação "protocolo". Na minha opinião, não deve ser alterado sem discussão. Os caras de hardware não podem mudar isso e você software não caras, também! Você só pode alterá-lo juntos. Em sua situação, todo mundo muda-lo por conta própria.

Na sua situação, suas equipes parecem trabalhar contra o outro. Portanto, tente concentrar seus esforços na sua interface e, especialmente, a sua comunicação, não em seu teste de integração que não vai funcionar de qualquer maneira.

A sugestão da mina seria a utilização de simulação de software de um robô como o único especificação. Então você pode confiar em seu simulada e há um ponto central que define a conexão entre hardware e software.
Quando os caras de software quer mudá-lo, ok. Eles têm que discutir isso com você e você vai mudar o mock software. Se o hardware foi alterado e o mock não, você tem um pedido de desculpas, porque você desenvolver contra a sua especificação.

Boa sorte!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top