CSE565 Fall 2010 | Week 06:
Software Feature Interaction Testing


CSE565: Software Validation, Verification and Testing
Department of Computer Science and Engineering Ira A. Fulton School of Engineering
Arizona State University

 

 
Abstract

This document describes the feature interaction problem providing some examples, and describes approaches for testing feature interactions and tool support that can aid in feature interaction testing.

1. The Problem of Feature Interaction in the Software Development Area

Lets describe the concept step by step:

  • Feature means a unit of functionality. It is not the same as a unit of code. Commonly a set or a package of units of code are involved in accomplish a unit of functionality. • The term Feature Interaction refers that a feature does something that modifies the “behavior” (execution flow) of another feature [1].
  • Testing Feature Interaction is related to discover harmful interactions that would occur if a newly proposed feature were added to an existing set of features. The problems associated with feature interaction involve, by example: problems with the communication channel and problems related to distributed computing like conflict over a shared resource (race-condition).

1.1. Examples from Phone Industry

Phone industry provides a good scenario for easy examples of feature interaction [1][2].
Lets see some examples in this context:

  1. Features: “call forwarding capability” and “ring back when free”. It’s supposed that the phone user can subscribes (pay) for contract these two services, what happened if a user pay for both. In any case the behavior of one of these features will be modified (compromised) for the other.
  2. Features: “call forwarding capability” and “originating call screening”. The first service allows to incoming call be redirected to another directory number, while the second blocks attempts to connect to certain directory numbers. What happens if the user redirects incoming calls to a number that is also in the directory as a blocked number? [4].

1.2.Examples from Multimedia Industry

From the multimedia industry we have some similar examples:

  1. New “multimedia telephone” allows communication by voice, video, text, and images simultaneously. Think about the interaction between “making a call” and “send a text message” [3].
  2. In computers, “listening music” and “receive a Skype call”. Which audio will be played, the music, the voice of the person calling, or both?
  3. And how about “take a picture with the webcam” while user is “doing a video-call”. What should happen? Interrupting the call to take the requested picture by other application, or denied the access to the camera that is being used right now?

2. Approaches for Testing Feature Interactions (FI)

Testing FI suffers the problem of a combinatorial state explosion since all features must be tested interacting with other features in all possible states. An approach for testing FI is Combinatorial Testing [5][8] where test cases are constructed combining features based on some effective combinatorial strategy. Examples of this are:

  • All-pair or Pair-wise Testing searches for bugs into the interaction of pairs of features, simulating usage of shared data areas and inter-process communication if needed. This testing assumes that bugs involving interactions between three or more parameters are progressively less common and at the same time being progressively more expensive to find [5].
  • Statistical Usage Testing establishes that the most probable combinations of features should receive the most attention, whereas the combinations whose occurrence probabilities are extremely low may not be considered [7].

3. Tool Support that Can Aid in Support Feature Interaction Testing (FI)

To support FI testing means to identify those interactions that are “relevant”, that is unhide dangerous cases and avoid wasting time testing secure interactions. Common formal tools that aid in the process are:

  • Multiple Linear Regression (MLR). The testing process consists on conducting regression analysis over the model of the system and the usage of their features. MLR analysis can be visualized as path diagrams to visually depict conceptual and statistical relationships between variables.
  • Finite State Machine. The use of a finite state machine to model functional-aspects is well- known from the telecom and distributed systems communities. A finite state machine can model each feature and also interactions between them. This tool is useful for synchronous scenarios where states of the machine are stable, i.e., a machine cannot continue without a stimulus from its environment [10].
  • Formal Specification Languages. It is used for describing features, and as a method of automatically detecting conflicts amongst features at the specification stage. Features are specified using temporal logic; two features conflict essentially if their specifications are mutually inconsistent under axioms about the underlying system behavior [7][8][9].

Examples of specific tools that implement the formal paradigms above are:

  • jenny. It is a tool for generating regression tests. It is useful to handle the combinatorial explosion of features interactions to be tested. It will cover most of the interactions with far fewer test cases. It can guarantee pair-wise testing of all features that can be used together [11].
  • ATGT. It is a tool for automatically generating test sequences from ASM
    specifications [12]. ATGT was originally developed to support structural and fault based testing of Abstract State Machines (ASMs), and it has been extended to support also combinatorial testing [8].
  • LOTOS. It is a formal specification language used for the specification of telephonic systems and its features. Subsequently, it has been used to specify many other types of reactive and distributed systems and their protocols with satisfactory results [13].

References

[1] FAQ Sheet on Feature Interaction, by Pamela Zave; Copyright AT&T, 1999, 2004. Retrieved September 22, 2010, from http://www2.research.att.com/~pamela/faq.html.

[2] Feature Interaction: A critical review and considered forecast by Muffy Calder et al. Department of Computer Science, University of Glasgow, Glasgow, UK. Retrieved September 22, 2010, from http://www.dcs.gla.ac.uk/~muffy/papers/calder-kolberg-magill- reiff.pdf.

[3] New Features Interaction in Mobile and Multimedia Telecommunication services by Pamela Zave; Copyright AT&T, 2000. Retrieved September 23, 2010, from http://mcs.open.ac.uk/mj665/NewFIMM0.pdf

[4] Cameron, E.J., N.D. Griffeth, Y.-J. Lin, M.E. Nilson, W.K. Schnure, and H. Velthuijsen,; (March 1993). “A feature interaction benchmark for IN and beyond”. IEEE Communications Magazine 31 (3): 64–69. doi:10.1109/35.199613.

[5] Black, Rex (2007). Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional. New York: Wiley. p. 240. ISBN 978-0-470-12790-2.

[7] K. Kimbler and C. Wohlin, “A Statistical Approach to Feature Interaction”, Proceedings Telecommunications Information Networking Architecture (TINA ́95), pp. 219-230, Melbourne, Australia, 1995. And retrieved September 23, 2010, from http://www.wohlin.eu/Articles/TINA95.pdf.

[8] Calvagna, A. and Gargantini, A. 2008. A logic-based approach to combinatorial testing with constraints. In Proceedings of the 2nd international Conference on Tests and Proofs (Prato, Italy, April 09 – 11, 2008). B. Beckert and R. Hähnle, Eds. Lecture Notes In Computer Science. Springer-Verlag, Berlin, Heidelberg, 66-83. And retrieved September 22, 2010 from http://cs.unibg.it/gargantini/research/papers/tap08.pdf.

[9] Felty, A. P. and Namjoshi, K. S. 2003. Feature specification and automated conflict detection. ACM Trans. Softw. Eng. Methodol. 12, 1 (Jan. 2003), 3-27. DOI= http://doi.acm.org/10.1145/839268.839270

[10] Shahbaz, M., Parreaux, B., & Klay, F. (2007). Model inference approach for detecting feature interactions in integrated systems. In L. du Bousquet, J. L. Richier, L.duBousquet, & J.L. Richier (Eds.) ICFI , (pp. 161-171). IOS Press. Retrieved September 22, 2010 from http://membres-liglab.imag.fr/muzammil/documents/papers/shahbaz_parreaux_klay-ICFI07.pdf

[11] Jenny. Retrieved September 22, 2010 from http://burtleburtle.net/bob/math/jenny.html.

[12] ATGT: ASM Tests Generation. Retrieved September 22, 2010, from http://cs.unibg.it/gargantini/software/atgt/.

[13] Fu, Q. Feature interaction detection: a LOTOS-based approach. Computer networks (Amsterdam, Netherlands : 1999). ISSN:1389-1286. 2000. Volume: 32. Issue:4. Page: 433.