Frage

Ich arbeite an einem kleinen Spaß Projekte, die einen Roboter baut. Wir als die Programmierer arbeiten parallel zu den Menschen, den Roboter zu bauen. So ist es sehr oft der Fall, dass wir geändert Software versuchen, auszuführen und die Erbauer haben die Hardware geändert. Wenn die Software-Tests laufen nicht immer eine harte Sache, um herauszufinden, ob die Software oder die Hardware ausfällt oder noch schlimmer, wenn die Integration versagt. Es gibt einige harte Teile mit einer automatischen Prüfung für diese Fragen.

Wir haben einige Möglichkeiten, Dinge zu brechen herausgefunden, so dass wir rc der Roboter lassen durch einige Bewegungen ohne Software geht Kontrolle sichergestellt wird, dass er nach wie vor funktioniert. Dann haben wir einige Software-Tests starten, die die Roboter gehen einige definierte Zahlen zu zeigen, dass die Software auf die gleiche Weise verhält sich wie zuvor. Aber das kommt immer auf eine sehr zeitaufwendige Aufgabe, weil Sie es nicht automatisieren kann und jemand hat den Test zu starten, beobachten Sie den Test und versuchen, herauszufinden, ob der Roboter tat, was er tun sollte.

Ein weiteres Problem besteht darin, dass ständige Prüfung mit unserer realen Hardware trägt aus Teilen unserer Hardware, Gelenk-, Motoren, Zahnräder und so weiter.

Aber nicht Tests haben so viel Mühe verursachen bewiesen und verbrauchen so viel Zeit, dass Ich mag würde wissen, welche Art von Techniken, die in anderen Projekten verwendet werden, die mit Hardware-Software-Interaktion zu tun, und wenn es Tools gibt, die kann sein gebraucht.

War es hilfreich?

Lösung

Die Schnittstelle zwischen dem Roboter und der Software muss zunächst definiert werden; nicht unbedingt erschöpfend, könnte dies schrittweise erfolgen. Fangen Sie klein an, zum Beispiel mit grundlegenden Bewegungen (vorwärts, rückwärts), dann, sobald sie vollständig getestet wurden, sowohl einzeln als auch integriert, fügen Sie einige Verhalten (zum Beispiel nach links abbiegen, rechts abbiegen), wiederholen Sie den Test. Auf diese Weise kann das gesamte Team nutzen, was es auf dem Projekt gelernt, die Schnittstelle zu erweitern, möglicherweise minimiert Schnittstelle Nacharbeiten.

Die Fortschritt vor Hardware Artikel ein solches Verfahren in mehr Einzelheiten beschrieben, wobei der Schwerpunkt auf der Testgetriebene Entwicklung (TDD) Aspekt.

Siehe auch Antworten auf den Wie mit Hardware-TDD zu tun Frage .

Andere Tipps

Ich denke, es ist eine sehr interessante Situation.

Ich glaube, es gibt kein Problem mit dem Testprozess. Wenn Sie Ihren Roboters und Test gegen dieses modell, es ist alles gut.
Wenn der Hardware-Roboter anders als verspottete Roboter wirkt, gibt es ein weiteres großes Problem. Die Kommunikation

Die Schnittstelle zwischen der Software und der Hardware ist das „Protokoll“ -Spezifikation. Meiner Meinung nach darf es nicht ohne Diskussion geändert werden. Die Hardware-Jungs können es nicht ändern und Sie Software Jungs nicht, auch! Sie können es nur gemeinsam ändern. In Ihrer Situation ändert sich jeder auf seine eigene.

In Ihrer Situation scheinen Ihre Teams gegeneinander zu arbeiten. Also versuchen Sie Ihre Bemühungen in Ihrer Schnittstelle zu konzentrieren und vor allem Ihrer Kommunikation, nicht in Ihrem Integrationstest, der sowieso nicht funktionieren.

Ein Vorschlag von mir wäre eine Software mock Roboter zu verwenden, wie den einen und einzigen Spezifikation. So können Sie auf Ihrem Mock verlassen und es gibt einen zentralen Punkt, der die Verbindung zwischen Hard- und Software definiert.
Wenn wollen, dass die Software-Jungs, es zu ändern, ok. Sie müssen es mit Ihnen besprechen und Sie erhalten die Software Mock ändern. Wenn die Hardware geändert wurde und das Mock nicht, haben Sie eine Entschuldigung, weil Sie gegen Ihre Spezifikation zu entwickeln.

Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top