关于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)

    推荐阅读

      linux输入命令星号?

      linux输入命令星号?,密码,网络,系统,通讯,概念,情况,数据,术语,网关,表示,如

      linux标准输出命令?

      linux标准输出命令?,标准,工作,系统,信息,地址,命令,环境,基础,设备,数字,lin

      linux命令行输入取消?

      linux命令行输入取消?,系统,档案,命令,情况,管理,状态,信息,环境,百度,目录,L

      linux命令行输入汉字?

      linux命令行输入汉字?,系统,软件,发行,管理,终端,命令,模式,编辑,文件,文本,L

      linux命令下载工具?

      linux命令下载工具?,工具,网络,代理,代码,简介,位置,系统,第一,下载工具,文

      linux常用输出命令?

      linux常用输出命令?,工作,系统,地址,管理,信息,标准,命令,目录,数据,位置,lin

      linux声音输出命令?

      linux声音输出命令?,电脑,系统,设备,服务,软件,数据,工具,情况,手机,命令,lin

      linux好用的命令工具?

      linux好用的命令工具?,系统,管理,工具,基础,服务,信息,工作,发行,公司,代码,L

      linux常用命令行工具?

      linux常用命令行工具?,系统,工作,工具,地址,管理,信息,命令,软件,目录,基础,l

      linux命令行专业工具?

      linux命令行专业工具?,工具,系统,工作,信息,服务,环境,基础,命令,管理,发行,l

      linux命令输入格式化?

      linux命令输入格式化?,电脑,设备,系统,管理,位置,环境,名称,数据,磁盘,命令,l

      linux输入上条命令?

      linux输入上条命令?,系统,命令,工作,电脑,数字,时间,管理,工具,第一,网上,lin

      linux输入过的命令?

      linux输入过的命令?,系统,地址,数字,命令,工具,工作,环境,界面,历史,指令,lin

      linux输入命令的地方?

      linux输入命令的地方?,系统,管理,单位,地址,地方,密码,命令,位置,发行,权威,l

      linux命令行执行工具?

      linux命令行执行工具?,工具,系统,网络,分析,工作,服务,状态,信息,电脑,发行,s

      linux输入过的命令?

      linux输入过的命令?,系统,地址,数字,命令,工具,工作,环境,界面,历史,指令,lin

      用linux命令输出id?

      用linux命令输出id?,系统,设备,工作,信息,地址,命令,工具,基础,目录,进程,lin

      linux输入上条命令?

      linux输入上条命令?,系统,命令,工作,电脑,数字,时间,管理,工具,第一,网上,lin

      linux输入命令的地方?

      linux输入命令的地方?,系统,管理,单位,地址,地方,密码,命令,位置,发行,权威,l