SHF: Small: Foundations of Software Testing Representations of Natural Processes
Iowa State University, Ames IA
Investigators
Abstract
Over the past 20 years, scientific computing has become a staple for exploration and reasoning about natural processes. For instance, researchers in bioinformatics routinely use computational tools to understand the relationship between a genetic sequence and the behavior of an organism with that sequence. Research questions concerning natural processes range from decoding biological pathways to determining if a mutation can lead to cancer. During this same time, novel computation techniques have been investigated, such as programming DNA via chemical reaction networks (CRNs). Many new programming environments, simulation platforms, and tools have been developed to support these new research directions and are now widely used. Since these programs are being employed to advance scientific discovery and to perform critical tasks, there is a need to ensure they behave correctly. This project develops foundations for software testing of these natural computing systems using natural representations. It focuses on developing quality test suites, handling error rates in test outcomes and validating behavior in the absence of known answers. Research topics from this project will be incorporated into courses on software testing and molecular programming. Undergraduate students will participate in this research and encouraged to compete in the International Genetically Engineered Machine competition. Bioinformatics tools, and programming via chemical reaction networks (CRNs), result in simulations of a natural process such as an organism's growth, the interactions between molecules as reactions execute over time, DNA alignment, etc. CRNs themselves are representations of a naturally occurring process (a set of chemical reactions in solution), that can be provably manipulated to perform computations. While these types of abstractions form a powerful and growing computational paradigm, these are encoded as software programs, which simulate the natural processes, and hence they are prone to faults. Thus, they need to be tested to ensure they behave as expected. There are several characteristics that make these representations challenging to validate. First, the inputs and outputs may not be clearly defined as in traditional software systems, and the connection between inputs and execution of paths in the software is often unclear. Second, the use case may determine the expected results, and the expected results may be sets of information, rather than a single property or value. Third, they may compute a result stochastically, which is correct most of the time, yet incorrect within an allowed error. Fourth, these systems are often simulated using complex sets of options that when modified can change both the non-functional behavior as well as the functional answers returned. This project develops foundations for software testing of natural representations. More specifically, it develops techniques for test generation with measurable code and model coverage. It creates testing methods that infer oracles and utilize metamorphic relations. Finally, it designs configuration-aware testing and optimization techniques to guide end-users who depend upon the results of these systems. This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
View original record on NSF Award Search →