|
1.12.5 品質管理
Mathematicaの品質管理の一環として,いずれのバージョンにおいても,各機能について長期にわたり厳重な検査が行われる.検査作業のほとんどはMathematica言語で書かれた自動検査システムを使い実施される.
自動検査システムにより,数百万に及ぶ入力がMathematicaに与えられ,また,返ってくる出力が正確なものかどうか自動的に検査される.ただし,計算させる式や処理する命令によっては微妙な問題を含むため,自動判定が不可能なことがあり,そのようなときは検査結果を見直す必要がでてくる.例えば,擬似乱数発生アルゴリズムは毎回違う結果を当然出してくる.また,機械精度で演算をするとき,コンピュータの機種が変わると結果が微妙にずれることもある.このため,判定作業は,このような違いをどう吸収するかという難しい問題を含んでいる.
自動システムにおいて,検査に使われる入力は次の種類のものがある.
Mathematicaの各組込み関数を参照する式で,普通の使い方と特殊な使い方を代表する入力.
内部コードの特徴を練習する入力.
本書の例題と,Mathematicaの他の参考書にある例題.
標準的な数値表から光学スキャナーで取り込まれた検査用の入力データ.
標準的な数学の公式集にある式.
教科書の演習問題.
関数を対(IntegrateとD,FactorとExpand等)で検査するためにランダムに生成された式.
検査過程において,計算の答のみならず補助的な情報である出力メッセージや使ったメモリ量や計算スピードも自動システムでチェックされる.
さらに,特別仕様のMathematicaバージョンが作られ,プログラム内部で処理的に矛盾がないか入念に検査がなされる.この特別バージョンは製品バージョンに比べ数割の処理スピードでしか動かないが,その代わり,計算処理のひとつひとつのステップにおいてメモリ状態に矛盾がないかや,割り込みが可能かどうか計算状態の詳細なチェックをしてくれる.
特別バージョンでは,さらに,コードのどの部分がアクセスされたか逐一記録されるので,内部関数の検査漏れがないかも確認できる仕組みになっている.
コンピュータシステムへの依存がないように,Mathematicaの各バージョンは,それが支援されるすべてのコンピュータシステムでルーチン的な検査を受ける.システムのスピードにもよるが,この作業は,通常,数日か長くて数週間のコンピュータ時間がかかる.
さらに長期にわたる検査項目もいくつかのシステムにおいて実施される.入力にはランダムに生成されたものが使われ,年単位のコンピュータ時間が費やされる.
大掛かりな検査を繰り返しても,Mathematica自体の複雑さも手伝い,完全にエラーを根絶することは至難である.
Mathematicaの正確さは非常に高く,その正確性は,よく知られる数学問題の証明より数段上をいくものである.それでも,一般に,非常に長い証明問題で何年も間違いが見つけられないことがあるように,Mathematicaのような非常に複雑なソフトウェアでは,誤りがあったとしても,なかなか発見されない場合もある.
誤りが残ったとしても,十分な検査をこなしているので,ユーザがMathematicaを使っていて,実際にそれを見つける確率は非常に小さい.
計算をしていて予期しないエラーが発生したり,期待していなかった答が返されてきたときは,Mathematicaシステム自体の内部コードを問題にする前に,入力間違いやMathematicaの機能の解釈間違いがないかどうかを確認してほしい.
確認後も,誤動作が続くようなら,今後のバージョンで誤作動が解決されるようにWolfram Researchのテクニカルサポート部まで連絡して頂きたい.
|