The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.04 - July/August (2009 vol.35)
pp: 551-565
Natalia Juristo , Universidad Politecnica de Madrid, Madrid
Sira Vegas , Universidad Politecnica de Madrid, Madrid
ABSTRACT
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.
INDEX TERMS
Classification, software engineering, software testing, test design techniques, testing techniques, unit testing techniques.
CITATION
Natalia Juristo, Sira Vegas, "Maturing Software Engineering Knowledge through Classifications: A Case Study on Unit Testing Techniques", IEEE Transactions on Software Engineering, vol.35, no. 4, pp. 551-565, July/August 2009, doi:10.1109/TSE.2009.13
REFERENCES
[1] V.R. Basili, F. Shull, and F. Lanubile, “Using Experiments to Build a Body of Knowledge,” Proc. Third Int'l Performance Studies Int'l Conf., pp. 265-282, July 1999.
[2] L. Bass, P. Clements, R. Kazman, and K. Bass, Software Architecture in Practice. Addison-Wesley, 1998.
[3] M.J. Baxter, Exploratory Multivariate Analysis in Archaeology. Edinburgh Univ. Press, 1994.
[4] A. Bertolino, SWEBOK: Guide to the Software Engineering Body of Knowledge, Guide to the Knowledge Area of Software Testing, 2004 version, chapter 5. IEEE CS, 2004.
[5] R. Chillarege, “Orthogonal Defect Classification,” Handbook of Software Reliability Eng., chapter 9, Mc Graw-Hill, 1996.
[6] B.S. Everitt, S. Landau, and M. Leese, Cluster Analysis, fourth ed. Ar nold, 2001.
[7] R.L. Glass, Building Quality Software. Prentice Hall, 1992.
[8] R.L. Glass, “Questioning the Software Engineering Unquestionables,” IEEE Software, pp. 119-120, May/June 2003.
[9] R.L. Glass, V. Ramesh, and I. Vessey, “An Analysis of Research in Computing Disciplines,” Comm. ACM, vol. 47, no. 6, pp. 89-94, 2004.
[10] R.L. Glass, I. Vessey, and V. Ramesh, “Research in Software Engineering: An Analysis of the Literature,” Information and Software Technology, vol. 44, no. 8, pp. 491-506, 2002.
[11] F. Hayes, “True Engineering,” Computerworld, Aug. 2001.
[12] SWEBOK: Guide to the Software Engineering Body of Knowledge, 2004 version, IEEE CS, 2004.
[13] M. Knight, “Ideas in Chemistry,” A History of the Science, Athlone Press, 1992.
[14] P.S. Levy and S. Lemeshow, Sampling of Populations: Methods and Applications, third ed. 1999.
[15] T.S.E. Maibaum, “Mathematical Foundations of Software Engineering: A Roadmap,” Proc. Conf. Future of Software Eng., pp. 161-172, May 2000.
[16] N.A.M. Maiden and G. Rugg, “ACRE: Selecting Methods for Requirements Acquisition,” Software Eng. J., vol. 11, no. 3, pp. 183-192, 1996.
[17] R.M. Needham, “Computer Methods for Classification and Grouping,” The Use of Computers in Anthropology, I. Hymes, ed., pp. 345-356, Mouton, 1965.
[18] J.D. Novak, Learning, Creating and Using Knowledge: Concept Maps as Facilitative Tools in Schools and Corporations. Lawrence Erlbaum Assoc., 1998.
[19] D.E. Perry, A.A. Porter, and L.G. Votta, “Empirical Studies of Software Engineering: A Roadmap,” Proc. Conf. Future of Software Eng., pp. 345-355, May 2000.
[20] V. Ramesh, R.L. Glass, and I. Vessey, “Research in Computer Science: An Empirical Study,” J. Systems and Software, vol. 70, nos.1/2, pp. 165-176, 2004.
[21] P.N Robillard, “The Role of Knowledge in Software Development,” Comm. ACM, vol. 42, no. 1, pp. 87-92, Jan. 1998.
[22] A. Rosenberg, The Philosophy of Science: A Contemporary Introduction. Routledge, 2000.
[23] R.N. Shepard, “Representation of Structure in Similarity Data: Problems and Prospects,” Psychometrika, vol. 39, pp. 373-421, 1974.
[24] C. Tudge, The Variety of Life. Oxford Univ. Press, 2000.
[25] S. Vegas, “A Characterisation Schema for Selecting Software Testing Techniques.” PhD thesis, Facultad de Informática, Universidad Politécnica de Madrid, http://grise.ls.fi.upm.es/docsSira_Vegas_PhD_Dissertation.zip , Feb. 2002.
[26] S. Vegas and V.R. Basili, “A Characterization Schema for Software Testing Techniques,” Empirical Software Eng., vol. 10, pp. 437-466, 2005.
[27] S. Vegas, N. Juristo, and V.R. Basili, “A Process for Identifying Relevant Information for a Repository: A Case Study for Testing Techniques,” Managing Software Engineering Knowledge, chapter 10, pp. 199-230, Springer-Verlag, 2003.
[28] I. Vessey, V. Ramesh, and R.L. Glass, “A Unified Classification System for Research in the Computing Disciplines,” Information and Software Technology, vol. 47, no. 4, pp. 245-255, 2005.
[29] W.G. Vincenti, What Engineers Know and How They Know It. The Johns Hopkins Univ. Press, 1990.
[30] C.R. Woese, “Bacterial Evolution,” Microbiological Rev., vol. 51, pp.221-271, 1987.
[31] H. Zhu, P.A.V. Hall, and J.H.R. May, “Software Unit Test Coverage and Adequacy,” ACM Computing Surveys, vol. 29, no. 4, pp. 366-427, Dec. 1997.
19 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool