Subdomain testing of units and systems with state

This paper extends basic software-testing theory to software components and adds explicit state to the theory. The resulting theory is simple enough to abstractly model the construction of systems from their parts ('units'). It provides an unconventional insight into the relationship between testing units and testing systems. Experiments exploring the theory support the following conclusions: Units should be independent, more like what are called "components" than subroutines or object-oriented classes. Units' persistent state should be local. Units should be extensively tested..A new kind of system testing is proposed: Unit-test results are combined to approximate the system behavior. Testing the approximation is cheaper and easier than testing the actual system and more likely to expose system problems.

[1]  William E. Howden,et al.  Reliability of the Path Analysis Testing Strategy , 1976, IEEE Transactions on Software Engineering.

[2]  Corrado Böhm,et al.  Flow diagrams, turing machines and languages with only two formation rules , 1966, CACM.

[3]  Harlan D. Mills,et al.  Principles of computer programming : a mathematical approach , 1987 .

[4]  John D. Musa,et al.  Operational profiles in software-reliability engineering , 1993, IEEE Software.

[5]  Kern W. Dickman Principles of computer programming , 1964 .

[6]  Karl Meinke,et al.  Automated black-box testing of functional correctness using function approximation , 2004, ISSTA '04.

[7]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[8]  S. C. Kleene,et al.  Introduction to Metamathematics , 1952 .

[9]  R. Taylor,et al.  Partition testing does not inspire confidence , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[10]  Dick Hamlet Experiments with Composing Component Properties , 2003 .

[11]  Jr. Hartley Rogers Theory of Recursive Functions and Effective Computability , 1969 .

[12]  Richard G. Hamlet,et al.  Theory of software reliability based on components , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[13]  Clemens Szyperski,et al.  Component software , 1997 .

[14]  Harlan D. Mills,et al.  Princples of Computer Programming , 1987 .

[15]  John B. Goodenough,et al.  Toward a theory of test data selection , 1975 .

[16]  William Addis,et al.  Structural engineering : the nature of theory and design , 1990 .

[17]  G. B. Finelli,et al.  The Infeasibility of Quantifying the Reliability of Life-Critical Real-Time Software , 1993, IEEE Trans. Software Eng..

[18]  Ricky W. Butler,et al.  The infeasibility of experimental quantification of life-critical software reliability , 1991 .