2008-09-16 209 views
3

我正在寻找一种回归测试工具,用于我们正在构建的一套设备。黑盒回归测试的测试框架

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

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

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

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

这是一个相对简单的任务,但我正在寻找一个现有的工具/包/库,以避免重新发明轮/偷经验教训。

回答

0

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

你的测试将只是一切是这样的:

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

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

对于未来的运行,你的成功是由运行完成后git仓库是否干净确定:

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

作为奖励,你可以使用所有的Git工具比较差,如果提交它们事实证明这种差异是一种改进,所以未来的运行将会通过。在分支之间合并时它也很有用。

+0

这是一个创造性的方式来做到这一点。 – kizzx2 2010-06-10 08:14:34

1

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

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