This award is funded under the American Recovery and Reinvestment Act of 2009 (Public Law 111-5).
Developer testing has been widely recognized as an important and valuable means of improving software reliability, partly due to its capabilities of exposing faults early in the software development life cycle. However, manual developer testing is often tedious and insufficient. Testing tools can be used to enable economical use of resources by reducing manual effort. To maximize the value of developer testing, effective and efficient support for cooperation between developers and tools is greatly needed and yet lacking in state-of-the-art research and practice.
This research aims to create a systematic framework for cooperative developer testing that provides practical techniques and tools, with an integrated research and education plan. In particular, the research addresses fundamental research questions around specification of test intentions by developers to communicate their testing goals or guidance to tools, satisfaction of test intentions by tools, and explanation of intention satisfaction by tools. Test-intention satisfaction and its explanation assist developers in accomplishing not only their testing tasks but also debugging tasks. The framework also helps infer likely test intentions to reduce manual effort in specification of test intentions. Among the broader impacts of the project includes improvement of software reliability and collaboration with industry to transfer technology.