Mutation Testing Study in SML functional programs - Yano, Thaise (2004)
Functional programming languages, such as SML (Standard Meta Language), Haskell and Lisp, focus on rules and matching of patterns, in contrast to procedural languages in which programs are written as a sequence of instructions. Programs in functional languages may have errors due to the misunderstanding of their properties. Testing is one of the essential activities to identify these errors and to guarantee the quality of the product under development. However, there are few initiatives and tools to support the testing of functional programs. Moreover, an important issue that is often not taken into consideration in this context is to provide a means to quantify the test activity. In this work, we establish mechanisms to investigate the aplicability of Mutation Testing for testing functional programs, written in SML. Mutation Testing is a test criterion that allows to evaluate the quality of a test set and to guide the generation of test sets. The existence of a tool to support this criterion is essential due to the large amount of information related to its application. The web tool PROTEUM/SML, developed with the aim of applying the Mutation Testing to SML, implements the mutation operators defined in this work. An example is provided to illustrate the concepts and PROTEUM/SML tool.