How to reduce the cost of passive testing
Résumé
This paper presents an extension of the methodology to perform passive testing based on invariants for systems that present temporal restrictions. Invariants represent the most relevant expected properties of the implementation under test. Intuitively, an invariant expresses the fact that each time the implementation under test performs a given sequence of actions, then it must exhibit a behavior in a lapse of time reflected in the invariant. When a trace is checked against an invariant, for each input/output action that appears in the trace then the complete set of invariants is checked. That is, it is assumed that invariants must hold at any point of the trace, and the cost of checking this process depends on the length of the trace and the number of invariants. In this paper a novel approach that allows us to "activate" and "deactivate" some invariants during the testing task is presented. Within this approach automatically the number of invariants that must be checked can be decreased at runtime, which causes a reduction in the cost of the testing task without loosing any power of error detection.