我在哪里获得“垃圾”数据以帮助测试我的代码?

时间:2010-10-12 22:33:55

标签: language-agnostic

对于我的C类,我编写了一个简单的统计程序 - 它计算最大值,最小值,平均值等。无论如何,我已经成功编译了程序,所以我现在需要做的就是测试它;唯一的问题是我没有任何东西可以用来测试

就我而言,我需要一份双打名单 - 我的程序需要接受2到1,000,000;是否有一些在线资源可以产生无意义的数据列表?我知道Lorem Ipsum被用于排版,我想知道各种类型的数值数据是否有类似的东西。

或者我运气不好,我必须创建自己的垃圾数据?

6 个答案:

答案 0 :(得分:3)

测试软件的问题不是数据的来源,而是测试集。我的意思是,你可以通过输入随机数来测试int sum(int a, int b)方法吗?不,你需要知道会发生什么。这是一个测试集:输入和预期输出。

当你发现548888876 + 99814465 = 643503341时,你怎么说?你怎么能说出这是真实的结果?

不仅要找到随机数来提供你的程序,你必须提前知道计算结果,以便进行比较。

有几种方法可以做到这一点:我建议您选择一个随机数生成器(amphetamachine +1)并在代码和两者数据>你已经知道的程序是好的,即。 Matlab为您的目的。使用两者计算统计数据后,比较结果并查看编码是否良好或需要进行一些调试。

顺便说一下,我故意改变了上述总和的结果......

答案 1 :(得分:2)

如何生成随机双倍?

Random r = new Random();
for (int i = 0; i < 100000; i++)
{ 
    double number = r.NextDouble();
    //do something with the value
}

答案 2 :(得分:1)

由于您需要的数据取决于程序,因此我不知道通用数据的来源。

如果你能编写该程序,你应该能够编写一个脚本来为自己生成虚拟数据。

只需使用循环打印出程序可以接受的范围内的随机数。

答案 3 :(得分:1)

生成一个包含随机字节的文件:

$ dd \
    of=random-bytes \
    if=/dev/urandom \
    bs=1024 \
    count=1024

答案 4 :(得分:1)

http://www.generatedata.com/#generator

我之前使用过那个数据生成器取得了一些成功。公平地说,它通常涉及将它生成的数据复制/粘贴到您能够阅读的其他格式中。

您可以很容易地为这个特定情况生成自己的数据。循环随机次数,终止条件为1,000,000。在您期望的范围内生成随机双打。你去的地方就可以了。

在这种情况下生成自己的测试数据可能是最好的选择。

答案 5 :(得分:0)

你可以拿first million digits of pi并将它们切成你想要的多个双打。

例如,前几个可能是3.14159,2.65358,9.79323,8.46264,3.38327,9.50288,4.19716和9.39937。