Testing 有哪些工具可用于管理大型测试程序套件?

Testing 有哪些工具可用于管理大型测试程序套件?,testing,Testing,如果以前有人回答过这个问题,我很抱歉,但是我很难找到一个适合我需要的工具 我有几十个测试程序,但每一个都可以使用大量参数运行。我需要能够在所有或部分测试程序中自动运行许多参数的扫描。我有自己的一套用于运行单个测试的工具,我无法真正更改这些工具,但我正在寻找一种能够管理整个套件的工具 到目前为止,我已经为此使用了一个本地脚本。我遇到的主要问题是,一个单独的测试程序可能需要5-10个参数,每个参数都有几个值。尽管编写只执行嵌套for循环并扫描每个参数组合的内容很容易,但困难在于并非每个参数组合都有意

如果以前有人回答过这个问题,我很抱歉,但是我很难找到一个适合我需要的工具

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

到目前为止,我已经为此使用了一个本地脚本。我遇到的主要问题是,一个单独的测试程序可能需要5-10个参数,每个参数都有几个值。尽管编写只执行嵌套for循环并扫描每个参数组合的内容很容易,但困难在于并非每个参数组合都有意义,也并非每个参数对每个测试程序都有意义。没有通用的方法(即,对所有参数都有效)来编码什么是有意义的,什么是没有意义的,所以我以前尝试过的解决方案涉及枚举每个合理的情况。尽管枚举是用脚本完成的,但它仍然会导致测试用例的巨大交叉积,这很难维护。我们也不想每次都运行案例的巨大叉积,所以我有其他机制来选择它的子集,这会变得更加麻烦

我肯定我不是第一个遇到这种问题的人。有没有什么工具可以帮你解决这类问题?甚至是写一本的想法

谢谢

添加澄清---


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

我们自己开发,我们有一个完整的测试基础设施。它管理测试,具有许多内置功能,允许测试记录结果,日志由测试基础设施管理,进入可搜索数据库,用于生成各种报告

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

我们的测试要么通过,要么失败。通过/失败标准由单个测试的作者确定,但基础结构希望看到通过或失败。您需要定义可能的结果,如通过/失败,或者您可能希望添加通过并继续,通过但停止测试,失败但继续,以及失败并停止测试。停止测试意味着如果计划了20个测试,并且测试5失败,那么你就停止测试,而不是继续测试6

您需要一种按字母顺序排列测试的机制,但它可能受益于优先级方案(必须在执行要求通电的测试之前执行通电测试)。它还可以从随机排序中受益。由于愚蠢的运气,一些测试可能会通过,因为在他们之前的测试使某些东西起作用,删除之前的测试,此测试就会失败。或者反过来说,这个测试通过了,直到它被一个特定的测试所取代,而这两个测试并没有按照那个顺序进行


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

您能试着更具体地说明您在寻找什么吗?因为“没有通用的方法来编码”您的需求,所以它归结为维护一个有意义的参数元组列表。这是源代码(在版本控制下)还是电子表格(便于编辑)取决于您的偏好/生态系统/需求。正如@ojdo所提示的,如果不了解您正在使用的特定工具,就无法回答这一问题。在那之前,您需要完全按照您正在做的事情来执行—循环各种参数组合并调用脚本。可能在你的壳里。谢谢!我们有一个工具来运行一个单独的测试,它有我们的日志记录并检测通过/失败的条件,所以我们在这方面没有问题。主要问题是试图找出要运行哪些测试。如果你把所有可能的情况都累加起来,我们将有成千上万的测试(如果我们没有某种方法来限制交叉积,我们将有数百万个测试),但我们可能只想运行几百个