

These gaps are presented and discussed at the end of this paper.Įrlang's powerful communication model allows us to build high-level concurrent systems. Indeed, the results show gaps in the area of testing of functional programs, even for Erlang, the most considered language by the studies. The main testing technique found in the papers is the structural one however, it does not properly consider the software testing methodology already established for the imperative programming. The results indicate that there are few researchers working on testing of functional programs and that few studies are concentrated almost exclusively in the Erlang language. In these studies, fourteen considered test models, three used data flow testing, twelve used/proposed testing tools and five considered concurrent/parallel aspects of such programs. The mapping was able to identify only twenty-two relevant studies. The paper describes the three stages used during the systematic mapping: planning, execution and presentation of results.

This paper presents a systematic mapping concerning the testing of functional programs, considering also their parallel/concurrent aspects. In this context, validation, verification and testing activities are necessary and contribute to improving the quality of functional programs. In general, these programs are used in critical systems such as telephone switching networks and must provide high quality, reliability and efficiency. Functional languages, like Erlang, Haskell and Scala allow the development of real-time and fault-tolerant parallel programs.
