The development of defect tests is still a very labour intensive process that demands a high-level of domain knowledge, concentration and problem awareness from software engineers. Any technology that can reduce the manual effort involved in this process therefore has the potential to significantly reduce software development costs and time consumption. An idea for achieving this is to reuse the knowledge bound up in already existing test cases, either directly or indirectly, to assist in the development of tests for new software components and systems. Although general software reuse has received a lot of attention in the past - both in academia and industry - previous research has focussed on the reuse and recommendation of existing software artifacts in the creation of new product code rather than on the recommendation of tests. In this paper we focus on the latter, and present a novel automated test recommendation approach that leverages lessons learned from traditional software reuse to proactively make test case suggestions while an engineer is developing tests. In contrast, most existing testing-assistance tools provide ex post assistance to test developers in the form of coverage assessments and test quality evaluations. Our goal is to create an automated, non-intrusive recommendation system for efficient software test development. In this paper we set out the basic strategy by which this can be achieved and present a prototypical implementation of our test recommender system for Eclipse.
展开▼