Year

2024

Season

Fall

Paper Type

Master's Thesis

College

College of Computing, Engineering & Construction

Degree Name

Master of Science in Computer and Information Sciences (MS)

Department

Computing

NACO controlled Corporate Body

University of North Florida. School of Computing

Committee Chairperson

Dr. Upulee Kanewala

Second Advisor

Dr. Karthikeyan Umapathy

Rights Statement

http://rightsstatements.org/vocab/InC/1.0/

Third Advisor

Dr. Anirban Ghosh

College Dean

Dr. Chip Klostermeyer

Abstract

Scientific software can be broadly defined as software written to aid in conducting scientific research activities. As this software is often written by the scientists themselves, who often learned programming to build that software, some important aspects of software development may get less attention than they would have gotten on enterprise software developed by programmers. One area of development that often gets overlooked in this regard is testing. Thus, in this study, we seek to better understand the testing processes and propose methods to improve the effectiveness of those tests. We begin with examining the software's Continuous Integration/Delivery practices. This is primarily done through GitHub Actions, which can be used to automate testing. Based on this, we examined the GitHub Actions of several scientific software practices of various sizes and scientific domains. Results of our study show that, even among the variety in the software, many aspects of their GitHub Actions Workflows are shared. We then conducted a study to evaluate the fault detection effectiveness of the tests in scientific software. Our results show that there do exist common deficiencies in testing among this scientific software, such as low if-statement branch coverage or low edge case sensitivity and lack of thorough testing of mathematical calculations. These shortcomings can potentially be improved through known testing methods. Finally, Based on our findings, we propose and explore a testing method called metamorphic testing, which makes use of necessary properties of a function that identify relationships between a that function's input and its output. We added metamorphic tests to the software's test suites, and found as much as a 10\% improvement on mutation testing results among some types of mutations. The results imply that the improvements made by metamorphic testing can be even further improved when written by someone with domain knowledge.

Share

COinS
 

Accessibility Statement

This item was created or digitized before April 24, 2027, or is a reproduction of legacy material created before that date. It is preserved in its original, unmodified state specifically for research, reference, or historical recordkeeping. In accordance with the ADA Title II Final Rule, the Library provides accessible versions of archival materials by request. If you are experiencing difficulty accessing the information on the site due to a disability, please submit a request through the following form for assistance.