Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 如何集成/单元测试软硬件接口_Unit Testing_Continuous Integration_Hardware Interface - Fatal编程技术网

Unit testing 如何集成/单元测试软硬件接口

Unit testing 如何集成/单元测试软硬件接口,unit-testing,continuous-integration,hardware-interface,Unit Testing,Continuous Integration,Hardware Interface,我正在做一个有趣的小项目,它可以制造一个机器人。 作为程序员,我们正在与建造机器人的人并行工作。因此,我们经常试图运行改变了的软件,而建设者改变了硬件。如果软件测试没有运行,那么很难确定软件或硬件是否出现故障,或者如果集成失败,则更糟糕。 对于这个问题,有一些带有自动测试的硬部件 我们已经找到了一些解决问题的方法,所以我们有rc控制,让机器人通过一些动作,而无需软件确保它仍然工作。 然后,我们开始一些软件测试,让机器人运行一些定义的图形,以显示软件的行为方式与以前相同。但这总是归结为一项非常耗时

我正在做一个有趣的小项目,它可以制造一个机器人。 作为程序员,我们正在与建造机器人的人并行工作。因此,我们经常试图运行改变了的软件,而建设者改变了硬件。如果软件测试没有运行,那么很难确定软件或硬件是否出现故障,或者如果集成失败,则更糟糕。 对于这个问题,有一些带有自动测试的硬部件

我们已经找到了一些解决问题的方法,所以我们有rc控制,让机器人通过一些动作,而无需软件确保它仍然工作。 然后,我们开始一些软件测试,让机器人运行一些定义的图形,以显示软件的行为方式与以前相同。但这总是归结为一项非常耗时的任务,因为你无法自动化它,必须有人开始测试,观察测试,并试图找出机器人是否做了它应该做的事情

另一个问题是,不断使用我们的真实硬件进行测试会磨损硬件、接头、电机、齿轮等部件


但是不测试已经被证明会带来很多麻烦,耗费很多时间,因此我想知道在处理软硬件交互的其他项目中使用了哪些技术,以及是否有可以使用的工具。

我认为这是一个非常有趣的情况

我相信你的测试过程没有问题。如果你模仿你的机器人并用这个模仿进行测试,一切都很好。
如果硬件机器人的行为与模拟机器人不同,那么还有另一个大问题:通信

软件和硬件之间的接口是“协议”规范。在我看来,不经讨论就不能改变。硬件的家伙可能不会改变它,软件的家伙也不会!你只能一起改变它。在你的情况下,每个人都会自己改变

在您的情况下,您的团队似乎相互对抗。所以,试着把精力集中在界面上,尤其是交流上,而不是集中在无论如何都不会起作用的集成测试上

我的建议是使用机器人的软件模拟作为唯一的规范。因此,您可以依赖您的模拟,其中有一个中心点定义了硬件和软件之间的连接。
当软件人员想要改变它时,好的。他们必须与您讨论,您将更改软件模拟。如果硬件发生了变化,而模拟没有发生变化,您必须道歉,因为您的开发违反了您的规范


祝你好运

首先必须定义机器人和软件之间的接口;这不一定是彻底的,可以逐步完成。从小处开始,例如使用基本动作(向前、向后),然后,在完全测试后,在隔离和集成的情况下,添加一些行为(例如左转、右转),重新测试。这样,整个团队就可以利用在整个项目中学到的知识来扩展接口,尽可能减少接口返工

本文更详细地描述了这样一个过程,重点是测试驱动开发(TDD)方面

另请参见问题的答案