关于Embedded:黑盒回归测试的测试框架

关于Embedded:黑盒回归测试的测试框架

Test framework for black box regression testing

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

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

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

两次运行的结果将不完全匹配,某些时序差异取决于电池的状态,或者取决于设备的其他内部状态。

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

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


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

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

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

作为奖励,您可以使用所有git工具来比较差异,并在发现差异有所改善时提交它们,以便将来运行。在分支之间合并时,它也很好用。


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

  • 如何将数据传递到设备以及如何将其收集回来。这是非常特定于应用程序的,但是通常很好的选择是旧的'n'good串行端口(RS232),对于该端口,任何编程语言都可以轻松实现。
  • 如何运行测试。单元测试框架绝对可以在这里为您提供帮助。现有框架具有许多实现的基本功能-选择要运行的测试,选择报告的详细级别(对于首先进行详细调试和随后的生产阶段PASS / FAIL分析非常重要)。我在使用Perl和Python的测试框架进行嵌入式设备测试方面拥有丰富的经验。
  • 您还必须决定如何进行比较。如您正确指出的,结果将不相等。这就是您的领域知识的发源地。通常,可以使用您领域中适用的误差范围来简单地实现它。当然,您将无法使用基本的diff工具,而必须编写智能脚本。

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

    您的测试将全部如下所示:

    1
    2
    3
    4
    5
    x = read_input_file(ifilename);
    y1 = read_expected_data(ofilename);
    send_input_file_to_server();
    y2 = read_output_from_server();
    checkequal(y1, y2)

    推荐阅读