如何测试特殊多项式的正确实现?

时间:2016-03-15 08:52:58

标签: java unit-testing math testing

我需要在Java中实现一些特殊多项式的计算(这种语言并不重要)。这些计算为具有固定系数的多个基本多项式的加权和。

每个基本多项式有2到10个系数,通常考虑10个基本多项式,总共给出20-50个系数。

基本上计算没什么大不了但我担心错别字。我只有一个打印文档作为模板。所以我想为计算实施单元测试。问题是:我如何获得可靠的测试数据。我确实有另一个软件应该计算这些函数,但过程很复杂,也容易出错 - 我必须缩放输入值,通过软件中的一些菜单选择来产生输出,然后将其粘贴到我的测试代码。

我想使用外部软件无法生成一些测试数据,但是您可能有一些 建议,可以使这种类型的测试过程更安全或最小化所需的测试用例数< / EM>

我也担心提供合适的输入值:根据自变量的值,某些术语对输出的贡献很小,而对于其他值,它们可能占主导地位。

我期望(并且需要避免)的错误类型是:

  • 系数中的错别字
  • 系数适用于错误的力量(即a_7*x^6而不是a_7*x^7 - 仅用于示范,我不是以这种方式计算,而是使用Horner的方案)
  • 一个错误(即缺少零级或最高级别的条款)

1 个答案:

答案 0 :(得分:0)

由于你有一个10阶的多项式,在11个不同点进行测试应该给出确定性。

然而,已经在一个随机点上进行测试,x=1.23004给出一个想法(远离像2 / 3,4 / 5这样的小分数),如果有一个很有可能会显示出差异错误,因为错误和真正的多项式之间的差异不太可能在这个地方有一个根。