Doktorant Uniwersytetu Hawajskiego problem w skrypcie Python, używanym do obliczeń , które określa chemiczną strukturę badanej substancji przy analizy sygnałów spektroskopowych metodą . Podczas weryfikacji wyników badań jednego ze swoich profesorów doktorant zauważył, że przy wykonywaniu skryptu w różnych systemach operacyjnych na tym samym zestawie danych, wyniki były różne.
Na przykład, uruchamiając go w macOS 10.14 i Ubuntu 16.04 dla przetestowanego zestawu danych, skrypt niewłaściwą wartość 172.4 zamiast 173.2. Skrypt zawiera około 1000 linii kodu i jest używany przez chemików od 2014 roku. Analiza kodu wykazała, że zwracanie nieprawidłowej wartości różnicami w sortowaniu plików w różnych systemach operacyjnych. Autorzy skryptu zakładali, że funkcja „zawsze zwraca pliki posortowane po nazwie, podczas gdy w dokumentacji glob podano, że kolejność wyjściowa nie jest gwarantowana. Poprawka polegała na dodaniu list_of_files.sort() po wywołaniu glob().
Zidentyfikowany problem podważył poprawność ponad 100 publikacji naukowych w dziedzinie chemii, których wnioski opierały się na obliczonym przy użyciu skryptu przesunięciu chemicznym. Dokładna liczba badań, w których użyto skryptu, jest nieznana, ale publikacja zawierająca jego kod została zacytowana w 158 pracach. Autorzy tych prac zostali zachęceni do oceny poprawności działania skryptu na zastosowanych do obliczeń systemach operacyjnych oraz do przeprowadzenia ponownego obliczenia, aby upewnić się o poprawności uzyskanych wartości. Incydent jest doskonałym przykładem, że nie tylko jakość przeprowadzonych eksperymentów, ale i poprawność przetwarzania uzyskanych danych w programach, które wcześniej
były powszechnie używane, może wpłynąć na końcowy wynik.
Źródło: opennet.ru
