Building testable software

  • Authors:
  • Lin Zucconi;Karl Reed

  • Affiliations:
  • Royal Melbourne Institute of Technology,Melbourne,Australia;La Trobe Univ.,Bundoora,Australia

  • Venue:
  • ACM SIGSOFT Software Engineering Notes
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper examines a connection between well known specification, design, implementation methodologies and test-design which appears not to have been previously well-formulated. We refer to the fact that the use of finite state machines (FSMs) in each development phase (specification, design, implementation and testing) is well known and documented. However, despite the fact that much of this work is more than twenty years old, there appears to be no detailed proposal for a consistent FSM-based approach be used across all development phases for other than very specific application types. We suggest that the adoption of a systematic FSM-based approach across all phases, including implementation, may allow a number of major problems in software development to be either eliminated or simplified. In this way, testable, highly dependable systems can be produced. In such systems, behaviour is explicitly defined, built, and tested using both functional and structural methods. Undesired behaviours can be found and eliminated, and abnormal or unexpected input explicitly handled. We discuss the issues we consider to be involved, and the benefits which we expect may be gained. We also identify those areas where further work appears to be required.