Asked in Technology
Whatn is feature interaction testing?
September 23, 2008 7:01PM
A software system may be configured with multiple features or to say the same thing services. Each of these will act to provide some function to a user or subscriber. For example in telephone systems, users may subscribe to any number of features. Examples of these are Call Waiting (CW). and Call Forward on Busy (CFB). In the Call Waiting case, a user will receive an indication (audible and/or visible) of an incoming call when he/she is active on another call. The new incoming call will be held listening to ringing until the user signals that he/she wishes to take the call. In Call Forward on Busy, a user may indicate that when he/she is active on his/her device (busy), the call should be forwarded to another number. Feature interaction will occur when two or more features are active on the same call. This may be harmful or beneficial but the harmful case is the one that is subject to feature interaction testing. Now consider the case in which a user has both CW and CFB active at the same time. For CW the system should alert the user and retain the call on the same device. Clearly both of these feature have properties that indicate they have been executed correctly. Just as clearly both sets of correctness properties cannot be maintained if both features are enabled on the same call. This is a harmful feature interaction. CFB and CW cannot be active at the same time. Feature interaction testing is the attempt to discover any and all harmful interactions that would occur if a newly proposed feature were added to an existing set of features. A model of the feature set may be created and interactions discovered by use of model checking and/or theorem proving. Feature interaction testing suffers from the problem of a combinatorial state explosion since all features must be tested in combination with other features (usually pair-wise) in all possible states. It has been subject to a significant amount of research in the telecom and software engineering communities.