Software testing is a process in which a software system's dynamic behaviours are observed and analysed so that the system's properties can be inferred from the information revealed by test executions. While the existing software testing theories might be adequate in describing the testing of sequential systems, they are not capable to describe the testing of concurrent systems that can exhibit different behaviours on the same test case due to non-determinism and concurrency. This paper presents a theory of behaviour observation in software testing. We first introduce and formally define the notion of observation scheme that characterises systematic and consistent methods of behaviour observations and recordings. We propose a set of desirable properties for observation schemes and study the relationships among the properties. We provide several constructions of observation schemes that have direct implications in current software testing practice. We then explore the relationships between different observation schemes and examine these observation schemes with regard to the desirable properties. Finally, we apply the theory to a concrete computation model for concurrent systems, high-level Petri nets, and demonstrate how to use observation scheme to define test adequacy criteria.
|
954
|
Petri nets: Properties, analysis and applications
– Murata
- 1989
|
|
390
|
The Art of Software Testing
– Myers
- 1979
|
|
211
|
Selecting software test data using data flow information
– Rapps, Weyuker
- 1985
|
|
168
|
A powerdomain construction
– Plotkin
- 1976
|
|
149
|
Software unit test coverage and adequacy
– Zhu, Hall, et al.
- 1997
|
|
148
|
Toward a Theory of Test Data Selection
– Goodenough, Gerhart
- 1975
|
|
147
|
An applicable family of data flow testing criteria
– Frankl, Weyuker
- 1988
|
|
133
|
System Modelling with High-Level Petri Nets
– Genrich, Lautenbach
- 1981
|
|
127
|
Semantic domains
– Gunter, Scott
- 1990
|
|
104
|
Petri Nets
– Reisig
- 1985
|
|
96
|
A data flow oriented program testing strategy
– Laski, Korel
- 1983
|
|
90
|
Software testing based on formal specifications: a theory and a tool,Software Engineering
– Bernot, Gaudel, et al.
- 1991
|
|
81
|
A Fortran language system for mutation-based software testing
– King, Offutt
- 1991
|
|
77
|
Reliability of the path analysis testing strategy
– Howden
- 1976
|
|
74
|
Weak mutation testing and completeness of test sets
– Howden
- 1982
|
|
70
|
A Framework for Specification-Based Testing
– Stocks, Carrington
- 1996
|
|
67
|
A formal evaluation of data flow path selection criteria
– Clarke, Podgurski, et al.
- 1989
|
|
67
|
Power domains
– Smyth
- 1978
|
|
61
|
On Required Element Testing
– Ntafos
- 1984
|
|
56
|
A Comparison of Some Structural Testing Strategies
– Ntafos
- 1988
|
|
54
|
A formal analysis of the fault-detecting ability of testing methods
– Frankl, Weyuker
- 1993
|
|
53
|
Axiomatizing Software Test Data Adequacy
– Weyuker
- 1986
|
|
43
|
The evaluation of program-based software test data adequacy criteria
– Weyuker
- 1988
|
|
40
|
Two notions of correctness and their relation to testing
– Budd, Angluin
- 1982
|
|
36
|
Testing formal specifications to detect design errors
– Kemmerer
- 1985
|
|
34
|
Software Testing Techniques. 2nd edition
– Beizer
- 1990
|
|
34
|
A mathematical framework for the investigation of testing
– Gourlay
- 1983
|
|
29
|
Mutation analysis: ideas, examples, problems and prospects
– Budd
- 1981
|
|
27
|
Partition Analysis: A Method Combining Testing and Verification
– Richardson, Clarke
- 1985
|
|
18
|
Using high-level petri nets for testing concurrent and real-time systems
– Morasca, Pezze
- 1990
|
|
17
|
A formal definition of hierarchical predicate transition nets
– He
- 1996
|
|
17
|
A formal analysis of the subsume relation between software test adequacy criteria
– Zhu
- 1996
|
|
12
|
Test data adequacy measurement
– Zhu, Hall
- 1993
|
|
12
|
Hints on test data selection: help for the practising programmer
– DeMillo, Lipton, et al.
- 1978
|
|
11
|
Analysis and refinement of software test data adequacy properties
– Parrish, Zweben
- 1991
|
|
8
|
A recursion theoretic approach to program testing
– Cherniavsky, Smith
- 1987
|
|
7
|
The Scott-Strachey Approach to Programming Language Theory
– Stoy
- 1977
|
|
6
|
Clarifying Some fundamental Concepts in Software Testing
– Parrish, Zweben
- 1993
|
|
5
|
Axiomatic assessment of control flow based software test adequacy criteria
– Zhu
- 1995
|
|
5
|
A formal interpretation of software testing as inductive inference
– Zhu
- 1996
|
|
3
|
Metric space-based test-data adequacy criteria
– Davis
- 1988
|
|
3
|
Understanding software test adequacy -- An axiomatic and measurement approach, Mathematics of Dependable Systems, Edited by
– Zhu, Hall, et al.
- 1995
|
|
2
|
Software Testing from Formal Specification
– Hierons
- 1992
|