当前位置: 首页 > 面试题库 >

用于在Python中测试嵌入式系统的测试框架

顾昊穹
2023-03-14
问题内容

我想测试嵌入式设备的功能。为简化起见,我可以说这是一个人形机器人,由PC通过C / C ++ API进行远程控制。

我非常有兴趣使用它,nosetests因为它没有样板方法。但是,我的情况要复杂一些。实际测试在C#程序上运行,大约需要24小时才能完成。通过切换到Python,我可能会节省大量开发新测试的时间。但是,在这样做之前,我正在寻找一些答案。

古老的测试套件的第一个问题是,所有测试都以预定的顺序执行,并且如果发生任何错误,整个测试将停止。我想构建不依赖于其他测试结果的独立测试套件。例如,与机器人手臂相关的测试与腿部之一无关。但是,步行测试都必须成功。

晚上,所有测试套件都被执行。如果一个失败,则执行下一个,依此类推。这样做的好处是,比起离开后10分钟的星期五晚上整个测试已经失败,在星期一早上恢复工作时,您可以获得更有用的结果。

所以我在寻找一种测试框架,该框架允许:

  • 在测试套件中拆分测试。
  • 尝试每个测试套件,无论先前的套件是否失败。
  • 提供有关某些测试的依赖性的信息。

我看了一下Proboscis,它允许依赖项固定,但是该项目看起来已经死了。

我想知道自定义鼻子以获取这些功能将花费多少工作。也许还值得尝试另一个测试框架。我不知道,我需要一些线索…

因此,为了使事情尽可能简单,以下是我如何看待我的测试:

#!/usr/bin/python

def testArms():
   ...
   pass

def testLegs():
   ...
   pass

@depend(testArms, testLegs)
def testWalk():
   ...
   pass

test_suite1 = [testLegs, testArms, testWalk]

...

问题答案:

自问这个问题很久以来。

嵌入式系统为实现验收测试自动化提供了特殊的特性(最重要的特征之一是,“被测设备”很可能与执行测试用例的设备不同;因此,需要相同类型的交互接口)
。在对网页或PC应用程序进行自动化测试时,甚至在对嵌入式软件(也可以在设备外部执行)进行单元测试时,都不是“例外”情况。基于这个假设,我认为为进行单元测试而开发的框架并不是开发用于执行验收测试的嵌入式系统测试平台的最佳工具。

目前,我们正面临类似的情况,试图选择开发环境来实现嵌入式设备的自动化测试。我们正在调查:

  • Robot Framework,这是一个基于关键字驱动的测试方法的通用验收测试自动化框架。

  • FitNesse(http://www.fitnesse.org)

  • 窥视

还有其他一些不使用Python的工具。例如,此线程中描述的那些(MxVDev)



 类似资料:
  • 主要内容:测试级别的层次结构,系统测试的类型系统测试包括测试完全集成的软件系统。通常,计算机系统是通过软件集成制成的。换句话说,一组软件的计算机系统执行各种任务,但只有软件才能执行任务; 软件必须与兼容的硬件接口。系统测试是一系列不同类型的有目的的测试行使和审查针对需求的集成软件的计算机系统的全部工作。 软件测试分为四个级别:单元测试,集成测试,系统测试和验收测试,所有这些都用于测试目的。单元测试用于测试单个软件; 集成测试用于测试整个系统

  • TestKit 实例 (Scala) 对于任何软件开发,自动化测试都是开发过程中一个重要组成部分。actor 模型对于代码单元如何划分,它们之间如何交互提供了一种新的视角,这对如何编写测试也造成了影响。 Akka 有一个专门的模块——akka-testkit来支持不同层次上的测试,测试很明显有两个类别: 测试独立的、不包括actor模型的代码,即没有多线程的内容;这意味着给事件发生的次序给定,有完

  • 我们正在用我们的Servicetest和嵌入式Kafka观察一个奇怪的行为。 该测试是一个Spock测试,我们使用JUnit规则KafkaEmbedded并传播brokersAsString如下: 现在让我们困惑的是,如果我们等待两个分区连接,等待就会超时。只有当我们等待一个分区连接时,过一段时间一切都会成功运行。 我们是否理解错了代码,在嵌入式Kafka中每个主题有两个分区?只给我们的听众分配一

  • 系统测试和验收测试的区别如下表所示: 编号 系统测试 验收测试 1 执行系统测试以测试软件的端到端功能。 执行验收测试以测试软件是否符合规定的要求和用户要求。 2 只有开发人员和测试人员才能执行系统测试。 它可以由测试人员,利益相关者和客户执行。 3 它可以是非功能性和功能性测试。 它只能是功能测试。 4 在系统测试中,可测试整个系统的性能。 在验收测试中,测试系统是否符合要求。 5 系统测试使用

  • 本文向大家介绍软件测试和嵌入式测试之间的区别,包括了软件测试和嵌入式测试之间的区别的使用技巧和注意事项,需要的朋友参考一下 软件测试 软件测试是指验证和验证所开发软件的行为。它可以确保软件按预期运行,而不会出现任何缺陷。它还有助于记录软件是否满足要求并可以使用。软件测试还检查异常和错误处理过程。 嵌入式测试 嵌入式测试是指使用该软件验证和验证软件和硬件的行为。它确保嵌入式系统作为一个整体正常运行,

  • 我正在为Mule ESB应用程序编写集成测试,该应用程序通过HTTPS连接到外部API。我想模拟外部API并在Maven构建期间运行端到端联调。我的问题是关于设置嵌入式HTTPS服务器。我尝试过使用泽西,但它只提供HTTP。我正在看这个例子 https://github.com/jersey/jersey/tree/master/examples/https-clientserver-grizzl