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.

On the Evaluation of Software Maintainability Using Automatic Test Case Generation

The aim is to complement the state-of-the art by proposing a new approach for understanding and characterizing the maintainability of OO systems, which makes use of test data and of the information gathered from the tests' execution.

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.



A Process for Identifying Relevant Information for a Repository: A Case Study for Testing Techniques

This chapter proposes an empirical and iterative process to identify the information that should be used to characterize a software engineering artifact, using theoretical knowledge, practical experience, and expert opinion to generate a schema.

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.

A Characterisation Schema for Software Testing Techniques

This paper presents the results of developing and evaluating an artefact (specifically, a characterisation schema) to assist with testing technique selection and provides developers with a catalogue containing enough information for them to select the best suited techniques for a given 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

Software unit test coverage and adequacy

The notion of adequacy criteria is examined together with its role in software dynamic testing and the methods for comparison and assessment of criteria are reviewed.