A measurement framework for object-oriented software testability

  • Authors:
  • Samar Mouchawrab;Lionel C. Briand;Yvan Labiche

  • Affiliations:
  • Software Quality Engineering Laboratory, Carleton University, 1125 Colonel by drive, Ottawa, Canada K1S5B6;Software Quality Engineering Laboratory, Carleton University, 1125 Colonel by drive, Ottawa, Canada K1S5B6;Software Quality Engineering Laboratory, Carleton University, 1125 Colonel by drive, Ottawa, Canada K1S5B6

  • Venue:
  • Information and Software Technology
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Testing is an expensive activity in the development process of any software system. Measuring and assessing the testability of software would help in planning testing activities and allocating required resources. More importantly, measuring software testability early in the development process, during analysis or design stages, can yield the highest payoff as design refactoring can be used to improve testability before the implementation starts. This paper presents a generic and extensible measurement framework for object-oriented software testability, which is based on a theory expressed as a set of operational hypotheses. We identify design attributes that have an impact on testability directly or indirectly, by having an impact on testing activities and sub-activities. We also describe the cause-effect relationships between these attributes and software testability based on thorough review of the literature and our own testing experience. Following the scientific method, we express them as operational hypotheses to be further tested. For each attribute, we provide a set of possible measures whose applicability largely depends on the level of details of the design documents and the testing techniques to be applied. The goal of this framework is twofold: (1) to provide structured guidance for practitioners trying to measure design testability, (2) to provide a theoretical framework for facilitating empirical research on testability.