Pythonスクリプトのバグは、学術研究の数百に影響を与える可能性があります

広く絶賛強力かつ多彩なプログラミング言語としてPythonは、それはとてもに関する科学コンピューティング・エコシステム、データ解析、インタラクティブな可視化とに適した非常に明確な文法的な特徴を持っています。

少し前までは、ハワイ大学の化学の研究者は、ことがわかった Pythonスクリプトエラーのセットを計算するための化学分析データのために、このスクリプトを実行するには、別のコンピュータのオペレーティングシステムは、異なる結果を生成します。結果シアノバクテリア実験を計算するには、別のオペレーティングシステムに応じて、Pythonスクリプトの結果を実行して、見つけた研究者フィリップ・ウィリアムズ、。これは、研究者が結果を発表し、150本の以上の化学研究論文のために疑われていた導きました。

「ウィロビー-Hoye」と呼ばれるスクリプト、2014以降に開始1000行程度のスクリプトは、NMR化学シフト値マップを計算するために使用されます。研究者は結果MacOSのマーベリックスとWindows 10(173.2)同じことを実行しているが、研究者がなく、MacOSのモハーベで、期待されているとUbuntuが(それぞれ172.4と172.7、)、いくつかの結果ルックスと同じではないことがわかりましたほとんどが、科学研究の分野では、高精度のために、開始と終了の番号に一見近いが大きく異なります。

では、なぜこのような結果が起こりますか?

スクリプトのバグが現れ、私たちの印象は非常に異なるバグ、バグが通常だけではなく、特定の環境では、どこでも同じ間違った結果を持っています。検査後、途中のデータ検索にロックの問題は、各実行のためのデータは、ファイル名のペアでファイルを取得する、2つのファイルに格納され、ペアで処理されます。ポイントは、順序は、オペレーティングシステムため、ファイルを取得することです。限り一致するファイルとして、あなたは正しい結果を得ることができます。そうでない場合、それは二度異なる実行からのデータを処理します。

以前は、多くの報道は、犯人は、Pythonの標準ライブラリモジュールのglobモジュールであると考え、このスクリプトは、特定のフォーマットに合わせてファイルのパス名を検索するために、Pythonのグロブモジュールを使用しています - グロブの結果に基づいて生成されたファイルのリストを読み取るために。しかし、今度のglob結果は、オペレーティングシステムのファイル戻り値に依存します。だから、結果は、スクリプトファイルの処理の順序によって影響を受けることができます。Pythonではグロブモジュールについて、マニュアルに記載され、以下のとおりです。

Unixシェル、最終結果が使用する規則に従って一致するすべてのグロブ・モジュール・ファイルのパス名指定されたパターンを見つける任意の順序でリターン。

結果はのグロブであるので、これはバグではありません、任意の順序返され、それが指定された順序で結果を返しません。この障害は、Pythonではなく、このPythonスクリプトを書く人。スクリプトの作成者は、一貫性を確保するために、コード内の所望のソート動作を定義すべきです。あなたが優秀なプログラマーであれば、詳細な読書文書の後、彼らはそれのためのコードを書くときに考慮に入れるためには、(例えばグロブは、結果は任意で返す)という文書に記載することができます。この問題はまた、必ずしもクリーンスイープし、良いプログラミングのスキルは、厳密な科学的コンピューティング研究のこの種に適用される場合には特に、ミスのように良いですが、非常に重要であることを教えてくれる。

問題を発見したウィリアムズ、後に、そのコードのために必要なソートのコードを追加します。彼は、科学者たちはどのように多く、彼はまた、困難な結論を引き出すために、他の研究論文の結果に影響を与えるスクリプトの問題として、実験の一部を計算するためにもっと注意を払うことを期待しました。

一般的には、コードが最も注目の学術ポイントではありません。だから、コンピュータや学界の他の学術分野では、コードの品質にあまりにも深く掘り下げて調査しない傾向があります。これはまた、学術研究者や産業界は、「学術プロトタイプコード」と「産業レベルのコード」の間には大きな違いがあることができますかどうか、つながった感じ。

しかし、業界のコードに比べて、コードのバグは結局学術論文を、影響を与え、限られました。

参考:

http://www.51testing.com/html/06/n-4462906.html

おすすめ

転載: www.oschina.net/news/110830/python-script-bug-affect-hundreds-research