有哪些工具可用于管理大量测试程序?

时间:2013-09-11 14:09:14

标签: testing

如果之前已经回答过,我很抱歉,但我找不到符合我需求的工具。

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

到目前为止,我已经使用了一个自制的脚本。我遇到的主要问题是单个测试程序可能需要5-10个参数,每个参数都有几个值。虽然编写一些只会执行嵌套for循环并扫描每个参数组合的东西很容易,但难点在于并非每个参数组合都有意义,并且并非每个参数对每个测试程序都有意义。没有通用的方法(即,适用于所有参数)来编纂有意义的内容和不适用的内容,因此我之前尝试的解决方案涉及枚举每个明智的案例。虽然枚举是通过脚本完成的,但它仍然会导致测试用例的巨大交叉产品,维护起来很麻烦。我们也不想每次都运行案例的巨大交叉产品,因此我有其他机制来选择它的子集,这使得处理起来更加麻烦。

我确信我不是第一个遇到这样问题的人。那里有什么工具可以帮助解决这类问题吗?甚至是写一个想法?

感谢。

添加澄清---

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

1 个答案:

答案 0 :(得分:0)

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

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

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

您需要一种机制来对可能按字母顺序排列的测试进行排序,但它可能会从优先级方案中受益(必须在执行需要打开电源的测试之前执行开机测试)。它也可能受益于随机排序,一些测试可能因为运气不好而通过,因为他们之前的测试使某些工作成功,删除了先前的测试并且此测试失败了。反之亦然,这个测试通过,直到它进行特定的测试,并且这两个不按顺序相处。

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