此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.1)

1.12.5 检验和证明

Mathematica 的每个版本在发行以前都进行了大量的测试.其中大多数测试 通过以 Mathematica 写成的自动系统来进行. 自动系统给 Mathematica 提供数百 万个输入,并检查从中得到的输出的正确性.在做这样的测试时,常常有一些 精妙之处:人们必须说明随机算法的不同行为的原因和不同计算机的机器 精度的差别等问题.
自动系统使用的测试输入用几种方法获得:

• 对于每个 Mathematica 函数,输入被设计用于普通的和极端情形;
• 输入被设计用于内部代码的每个特征;
• 本书中的所有例子和其它有关 Mathematica 的书的例子被使用;
• 标准的数值表被光学扫描作为测试输入;
• 来自所有的标准数学表中的公式被输入;
• 教科书中的练习被输入;
• 对于函数对,例如 IntegrateDFactorExpand, 生成随机表达式进行测试.

当测试运行时,自动测试系统不仅检查结果,还检查辅助的事项. 诸如:信息、内存使用和速度等.
还有一个特殊的装有仪器的 Mathematica 版本.它被建立用于执行内部一致 性检验.这个版本以真实的 Mathematica 的速度的一小半的速度运行, 每一步都检查内部的内存一致性,中断能力等等. 该版本还记录 Mathematica 源代码的哪一部分接受,允许人们认可 Mathematica 中的所有函数已经被给定的检验测试过.
所有标准的 Mathematica 测试被例行地在 Mathematica 每个版本.在不同的计算机上 运行.根据计算机系统的速度,这些测试花费计算机几天到几周的时间. 此外,对随机输入的巨量测试在不同的计算系统上运行了相当于许多年的计算机 时间. 但是,即使有这多检验,在 Mathematica 这样复杂的系统中仍不可避免 地存在着错误.
Mathematica 的正确性标准肯定比典型的数学证明高的多. 但正如一个很长 的证明不可避免的包含错误并且多年来没有被检查出来一样,像 Mathematica 这样的复杂软件系统也将包含错误,甚至数百万人使用了它还检查不出来.
不管怎样,毕竟已经做了这么多测试,用户在自己的工作过程中发现 Mathematica 的错误的概率是极低的.
很可能有许多次 Mathematica 做了用户不期望的事情.但应该认识到,这样 的事情发生,大多数是因为用户的输入或某种理解出了错误,而不是 Mathematica 系统的内部代码本身的问题.