Sammanhang: Vetenskaplig programvara spelar en viktig roll i kritiskt beslutsfattande, till exempel att göra väderprognoser baserade på klimatmodeller, och beräkning av bevis för forskningspublikationer. Nyligen har forskare varit tvungna att dra tillbaka publikationer på grund av fel orsakade av programvara fel. Systematiska tester kan identifiera sådana fel i koden. Mål: Denna studie syftar till att identifiera specifika utmaningar, föreslagna lösningar och olösta problem vid testning av vetenskaplig programvara. Metod: Vi genomförde en systematisk litteraturundersökning för att identifiera och analysera relevant litteratur. Vi identifierade 62 studier som gav relevant information om testning av vetenskaplig programvara. Resultat: Vi fann att utmaningar vid testning av vetenskaplig programvara faller inom två huvudkategorier: (1) testutmaningar som uppstår på grund av egenskaper hos vetenskaplig programvara såsom orakelproblem och (2) testutmaningar som uppstår på grund av kulturella skillnader mellan forskare och programvaruteknik samhället såsom att titta på koden och den modell som den genomför som oskiljaktiga enheter. Dessutom identifierade vi metoder för att kunna övervinna dessa utmaningar och deras begränsningar. Slutligen beskriver vi olösta utmaningar och hur forskare och praktiker inom programvaruteknik kan bidra till att övervinna dem. Slutsatser: Vetenskaplig programvara innebär särskilda utmaningar för testning. Särskilt kulturella skillnader mellan forskare utvecklare och mjukvaruingenjörer, tillsammans med egenskaperna hos den vetenskapliga programvaran gör testning svårare. Befintliga tekniker som identifiering av kodkloner kan bidra till att förbättra testprocessen. Programvaruingenjörer bör överväga särskilda utmaningar som vetenskaplig programvara, t.ex. orakelproblem, innebär när de utvecklar testmetoder.
Många olika tillvägagångssätt har föreslagits för att ta itu med oracle problemet för att testa vetenskaplig programvara såsom att testa programvaran med särskilda fall, experimentresultat, även olika implementationer, eller formell analys av den formella modellen av programvaran REF.
Testing Scientific Software: A Systematic Literature Review
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science', 'Medicine']}