应对移动机器人软件自动化测试所面临的挑战
来源:51CTO.COM
时间:2023-08-28 17:51:19 402浏览 收藏
偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《应对移动机器人软件自动化测试所面临的挑战》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!
我们将探索自动化移动家庭机器人的复杂性,并重点关注设置过程中的独特挑战,以克服各种限制,以确保用户能够顺利地开始使用
在之前的文章中,我解释了如何利用April Tag技术来实现家庭机器人的自动化。在家庭机器人或其他机器人的自动化过程中,存在一个巨大的挑战,那就是设备的设置。在设备、手机和移动应用程序的世界中,设备通常通过USB连接到主机设备,并且设备始终连接到电源。然而,对于测试机器人来说,出现了一个独特的挑战,即当机器人在移动时如何进行测试。因为它无法通过物理有线连接与主机设备相连。那么,我们应该如何验证开箱体验呢?不要担心,我将在本文中解释这个问题
复杂性和挑战
在我向您简要介绍了机器人自动化测试中设置阶段的各种挑战之后,让我进一步深入研究更多的挑战
机器人正在移动,无法通过物理有线连接到主机设备。对于一些组件级别的测试可能是可行的,但对于端到端(E2E)测试来说是不可能的
开箱体验是指设备未连接到WiFi。当设备全新时,主机设备如何与设备交互?这是日常机器人测试中非常常见的情况
当机器人发生任何错误或异常时,需要进行恢复操作。自动化测试的主要目标是发现机器人潜在的软件和硬件问题。如果遇到问题,我们应该如何报告并恢复设备呢?
机器人的电池即将用尽,我们需要一个可靠的电源来为机器人充电
将相同的设置扩展到多个实验室和家庭环境是非常重要的。这是因为我们不能仅仅在一个环境中对机器人进行签署或测试
让我们按照时间顺序来解决这些问题。可以改写为:让我们依照时间的先后顺序来解决这些问题
使用树莓派预设机器人
重要的是解决这个问题。考虑一个位于测试自动化实验室的机器人的情况。有一台主机设备连接到公司内部网络,用于发送和接收命令,访问各种源代码、内部工具和基础设施。我们将在设备上连接一个树莓派,并在树莓派上运行一个REST服务,以便与主机设备和设备进行通信。下面是一个图示,展示了这个设置
使用树莓派预设机器人
解决开箱体验用例
现在,我们来看一下如何通过树莓派来预先设置测试环境。接下来,我们将探讨如何解决设备在开箱时无法连接到Wifi的问题
树莓派上的RESTful服务的作用是什么?RESTful服务应该包含哪些端点?
- 刷写设备
- 完成OOBE
- 设置wifi等
- 获取DUT IP地址
现在,对于我们来说,通过无线连接设备变得非常容易,设备已经为我们的测试做好了充分的准备
在发生任何错误或异常时恢复机器人
这是一个非常常见的情况。不要被这类问题所压倒或沮丧。这时候,我们必须使用设备的低级组件将设备驱动回到其原始位置。例如,正如我在之前的文章中提到的各种软件堆栈,我们需要访问平台或移动性层来将机器人驱动回到其原始位置。这是最棘手和最具挑战性的事情,因此使用其他技术,如April Tag或其他外部系统来将设备驱动回来。这使我想到了下一个问题,即将设备放回充电座为下一次测试运行做准备
扩展到多个测试环境
将设备放回充电座时,使用低级命令可以提高可靠性。相较于使用顶层的移动或导航命令以及平台或移动性层驱动,故障率更低而效率更高
多个测试环境的扩展设置提示:
- 保持设置简单。不要过于复杂或过度工程化解决方案。
- 具有可部署的树莓派映像,以便可以轻松加载任何新的树莓派。
- 将测试代码放在远程存储库中。将它们移到本地无法扩展。
机器人自动化并非简单之事,最终需经过大量设计工作,并考虑市场上其他选项。没有一种解决方案适用于所有情况。在采用最终方案前,我建议进行概念验证
备选方案
鉴于我们所面临的问题的性质和复杂性,一个常见的问题是是否存在其他替代方案。简而言之,答案是肯定的。我们可以通过使用模拟器/仿真器来进行有效的测试,以覆盖我们所描述的大部分用例,但是真实设备测试是无法替代的
以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于科技周边的相关知识,也可关注golang学习网公众号。
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
463 收藏
-
145 收藏
-
323 收藏
-
352 收藏
-
382 收藏
-
394 收藏
-
378 收藏
-
376 收藏
-
381 收藏
-
275 收藏
-
486 收藏
-
236 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习