Several proposals exist to support the test of concurrent programs. In general, the proposals concern static or dynamic analysis, message-passing and shared-memory paradigm, programming language and the use of patterns. These works deal with different testing approaches such as fault injection, formal verification, test-driven development, controlled execution, mutation testing, model-based testing, structural testing, symbolic analysis, search-based testing, concurrency probabilistic testing, reachability testing and test case generation. Although there are several contributions, there is still not a consolidated body of evidence enabling developers of distributed applications in industry and academia to select which techniques or tools present the best cost / benefit relationship, when they are incorporated into the organization testing activity. This project will investigate the main alternatives for the testing activity that have been proposed in context of concurrent programs in order to develop a framework to support the systematic evaluation of these testing alternatives. The objective is facilitate further studies and especially assisting professionals from academia and industry to select the best technique / testing tool according their necessities, considering quality factors such as satisfaction, cost, effectiveness and efficiency.
News published in Agência FAPESP Newsletter about the scholarship: