-1

如果之前已经回答过这个问题,我深表歉意,但我无法找到适合我需要的工具。

我有几十个测试程序,但每一个都可以使用大量参数运行。我需要能够在所有或部分测试程序中自动运行许多参数的扫描。我有自己的一套工具来运行一个单独的测试,我无法真正改变,但我正在寻找一个可以管理整个套件的工具。

到目前为止,我为此使用了一个自制的脚本。我遇到的主要问题是一个单独的测试程序可能需要 5-10 个参数,每个参数都有几个值。尽管编写一个只执行嵌套 for 循环并扫描每个参数组合的东西很容易,但困难在于并非每个参数组合都有意义,也不是每个参数对每个测试程序都有意义。没有通用的方法(即适用于所有参数)来编码什么是有意义的,什么没有,所以我之前尝试过的解决方案涉及列举每个合理的案例。虽然枚举是通过脚本完成的,但它仍然会导致测试用例的巨大交叉产品,维护起来很麻烦。我们也不想每次都运行案例的巨大交叉产品,

我敢肯定我不是第一个遇到这种问题的人。有什么工具可以帮助解决这种事情吗?甚至是写一个的想法?

谢谢。

补充说明——

例如,如果我有参数 A、B 和 C,每个参数代表从 1 到 10 的值范围,我可能会有一个限制,例如:如果 A=3,那么只有 B 的奇数值是相关的,C 必须是 7 . 这些限制通常可以编纂,但我还没有找到可以指定类似内容的工具。至于一个本土工具,我要么必须枚举参数的元组(这就是我正在做的),要么放置或实现一些非常复杂的东西,以便能够指定和理解这样的约束。

4

1 回答 1

0

我们推出了自己的产品,我们拥有完整的测试基础设施。它管理测试,具有许多允许测试记录结果的内置功能,日志由测试基础设施管理,以进入可搜索的数据库以生成各种报告。

每个测试都有一个类/结构,其中包含有关测试、测试名称、作者和各种其他标签的信息。运行测试套件时,您可以运行所有内容或使用特定标签运行所有内容。因此,如果您只想测试 SRAM,您可以轻松地仅运行标记为 sram 的测试。

我们的测试都被认为是通过或失败。通过/失败标准由单个测试的作者确定,但基础设施希望看到通过或失败。您需要定义可能的结果是什么,就像通过/失败一样简单,或者您可能想要添加通过并继续进行、通过但停止测试、失败但继续进行以及失败并停止测试。停止测试意味着如果安排了 20 次测试并且测试 5 失败,那么您停止测试,您不会继续进行 6。

您需要一种机制来对可以按字母顺序排列的测试进行排序,但它可能会受益于优先级方案(必须在执行需要通电的测试之前执行通电测试)。它也可能受益于随机排序,一些测试可能由于运气不佳而通过,因为在它们之前的测试使某些东西起作用,删除之前的测试并且该测试失败。反之亦然,该测试通过,直到它之前有一个特定的测试,并且这两个不按该顺序相处。

为了缩短我的答案,我不知道现有的基础设施,但我已经建立了自己的基础设施,并使用了为我们的业务/实验室/流程量身定制的家庭构建的基础设施。你不会第一次打出本垒打,不要指望。但是尝试为单个测试预测一组可管理的规则,它可以返回多少种类型的通过/失败返回值。您要放置的过滤器类型。您可能希望执行的日志记录类型以及您希望存储该数据的位置。然后为每个测试创建基础设施和强制性外壳/框架,然后各个测试人员必须在该外壳内工作。我们当前的基础设施是python,它很好地适应了这一点,我们不仅限于基于python的测试,我们可以使用C或python,并且目标可以运行它可以运行的任何语言/程序。抽象层很好,我们使用简单的地址读/写来访问被测单元,并且当硬件到达时,我们可以针对目标的模拟或真实硬件进行测试。我们可以通过串行调试器、jtag 或 pcie 访问硬件,大多数测试不知道也不关心,因为它们位于抽象的另一端。

于 2013-09-11T14:38:51.257 回答