【问题标题】:Test framework for black box regression testing黑盒回归测试的测试框架
【发布时间】:2008-09-16 21:54:04
【问题描述】:

我正在寻找一种工具,用于对我们正在制造的一套设备进行回归测试。

当前的概念是您为工具创建一个输入文件 (text/csv),指定对被测系统的输入。然后,该工具从系统捕获输出并将输入和输出记录到输出文件中。

输出与原始输入文件的格式相同,可用作工具后续运行的输入,测量的输出与上一次运行的值匹配。

两次运行的结果不会完全匹配,存在一些时间差异,这取决于电池的状态,或者取决于设备的其他内部状态。

我们必须编写自己的接口来将命令从工具传递到设备并捕获设备的输出。

这是一项相对简单的任务,但我正在寻找现有的工具/包/库以避免重新发明轮子/从中吸取教训。

【问题讨论】:

    标签: testing embedded regression-testing


    【解决方案1】:

    我最近在 git (http://git.or.cz/) 之上构建了一个这样的系统。基本上,编写一个程序来获取所有输入文件,将它们发送到服务器,读回输出,并将其写入一组输出文件。第一次运行后,将输出文件提交到 git。

    对于以后的运行,你的成功取决于运行完成后 git 存储库是否干净:

    test 0 == $(git diff data/output/ | wc -l)
    

    作为奖励,您可以使用所有 git 工具来比较差异,并在发现差异是改进时提交它们,这样以后的运行就会通过。它在分支之间合并时也很有效。

    【讨论】:

    • 这是一种创造性的方式。
    【解决方案2】:

    我不确定是否会有一个完全适合您需求的软件包。您需要考虑以下几点:

    1. 如何将数据传递给设备以及如何将其收集回来。这是非常特定于应用程序的,但一个通常不错的选择是旧的'n'good 串行端口 (RS232),任何编程语言都存在一个简单的接口。
    2. 如何运行测试。单元测试框架绝对可以在这里为您提供帮助。现有框架实现了许多基本功能——选择要运行的测试,选择报告的详细级别(对于最初的详细调试和稍后的生产阶段通过/失败分析非常重要)。我在测试嵌入式设备时使用 Perl 和 Python 的测试框架有很好的经验。
    3. 您还必须决定如何进行比较。正如您正确指出的那样,结果将不相等。这是您的领域知识的来源。通常,它只是使用适用于您的领域的误差范围来实现。当然,您将无法使用基本的diff 工具,而必须编写智能脚本。

    【讨论】:

      【解决方案3】:

      您可以使用任何测试框架。困难的部分是编写工具以从测试系统发送/检索数据,而不是实际的字符串比较。

      您的测试将如下所示:

      x = read_input_file(ifilename);
      y1 = read_expected_data(ofilename);
      send_input_file_to_server();
      y2 = read_output_from_server();
      checkequal(y1, y2)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多