Maturing Software Engineering Knowledge through Classifications: A Case Study on Unit Testing Techniques

  title={Maturing Software Engineering Knowledge through Classifications: A Case Study on Unit Testing Techniques},
  author={Sira Vegas and Natalia Juristo Juzgado and Victor R. Basili},
  journal={IEEE Transactions on Software Engineering},
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… 

Figures and Tables from this paper

Knowledge Classification for Supporting Effort Estimation in Global Software Engineering Projects

The results show that the specialized taxonomy proposed in this thesis is comprehensive enough to classify GSE projects focusing on effort estimation, and it is possible to design an instrument based on the specialized GSE effort estimation taxonomy that helps practitioners to perform the effort estimation process in a way tailored for the specific needs of the GSE context.

A taxonomy for requirements engineering and software test alignment

A definition of requirements engineering and software test (REST) alignment, a taxonomy that characterizes the methods linking the respective areas, and a process to assess alignment are proposed to support researchers to identify new opportunities for investigation and practitioners to compare alignment methods and evaluate alignment, or lack thereof.

A Specialized Global Software Engineering Taxonomy for Effort Estimation

A specialized GSE taxonomy for effort estimation was proposed, which was built on the recently proposed general GSETaxonomy (including the extension) and was also based on the findings from two empirical studies and expert knowledge.

An extended global software engineering taxonomy

The extended taxonomy can help both researchers and practitioners by providing dimensions that can enable the description of different GSE contexts in a more comprehensive way; this can facilitate the understanding, comparison and aggregation of GSE-related findings.

A Taxonomy for Design Decisions in Software Architecture Documentation

This paper proposes a taxonomy for design decisions in software architecture documentation to primarily support consistency checking and applies machine learning techniques, such as Logistic Regression, Decision Trees, Random Forests, and BERT to the 17 software architecture documentations.

Defect Prediction in Software Entities Classified in Terms of Level Dependencies

The main objectives of this paper are unbiased and comprehensive comparison between competing prediction systems, and mainly focuses on two learning algorithms OneR, Naive Bayes, which can predict defects based on error rates.

A Taxonomy of Assets for the Development of Software-Intensive Products and Services

The taxonomy serves as a foundation for identifying assets that are relevant for an organisation and enables the study of asset management and asset degradation concepts.



Characterisation schema for selecting software testing techniques

The original contribution of this research is a conceptual tool that can be used by developers to systematically and objectively select the testing techniques to be used in a software project.

The role of knowledge in software development

The goal here is to bridge the gaps between the viewpoints of cognitive scientists and software scientists and practitioners regarding knowledge and outline the characteristics of the related concepts in software methodologies and approaches.

Using Experiments to Build a Body of Knowledge

This paper argues for the necessity of a framework for organizing sets of related studies, and presents guidelines for lab packages that encapsulate materials, methods, and experiences concerning software engineering experiments.

A unified classification system for research in the computing disciplines

Mathematical foundations of software engineering: a roadmap

Using his categorisation of engineering knowledge and a ramework based on the science developed by the logical empiricists, the author was able to outline some useful theoretical and methodological issues, which would contribute to developing a mature SE praxis.

Orthogonal defect classification

Building Quality Software

This book gets at the essence of software quality based on the premise that quality is at heart a technical problem, and that management's job is to create a facilitating environment. It fully

Software architecture in practice

This second edition of this book reflects the new developments in the field and new understanding of the important underpinnings of software architecture with new case studies and the new understanding both through new chapters and through additions to and elaboration of the existing chapters.

Empirical studies of software engineering: a roadmap

The strengths and weaknesses of empirical research in software engineering are summarized and a roadmap for improving the current situation is presented, which includes a general structure for software empirical studies and concrete steps for achieving these goals.