TY - JOUR T1 - Maturing Software Engineering Knowledge through Classifications: A Case Study on Unit Testing Techniques JF - Software Engineering, IEEE Transactions on Y1 - 2009 A1 - Vegas,S. A1 - Juristo,N. A1 - Basili, Victor R. KW - characteristic;project KW - characteristic;software KW - classification;matching KW - engineering KW - engineering; KW - knowledge;software KW - technique KW - techniques;program KW - Testing KW - testing;software KW - testing;unit AB - Classification makes a significant contribution to advancing knowledge in both science and engineering. It is a way of investigating the relationships between the objects to be classified and identifies gaps in knowledge. Classification in engineering also has a practical application; it supports object selection. They can help mature software engineering knowledge, as classifications constitute an organized structure of knowledge items. Till date, there have been few attempts at classifying in software engineering. In this research, we examine how useful classifications in software engineering are for advancing knowledge by trying to classify testing techniques. The paper presents a preliminary classification of a set of unit testing techniques. To obtain this classification, we enacted a generic process for developing useful software engineering classifications. The proposed classification has been proven useful for maturing knowledge about testing techniques, and therefore, SE, as it helps to: 1) provide a systematic description of the techniques, 2) understand testing techniques by studying the relationships among techniques (measured in terms of differences and similarities), 3) identify potentially useful techniques that do not yet exist by analyzing gaps in the classification, and 4) support practitioners in testing technique selection by matching technique characteristics to project characteristics. VL - 35 SN - 0098-5589 CP - 4 M3 - 10.1109/TSE.2009.13 ER -