Abstract
Software product lines are families of products defined by feature commonality and variability, with a well-managed asset base. Recent work in testing of software product lines has exploited similarities across development phases to reuse shared assets and reduce test effort. The use of feature dependence graphs has also been employed to reduce testing effort, but little work has focused on code level analysis of dataflow between features. In this paper we present a compositional symbolic execution technique that works in concert with a feature dependence graph to extract the set of possible interaction trees in a product family. It composes these to incrementally and symbolically analyze feature interactions. We experiment with two product lines and determine that our technique can reduce the overall number of interactions that must be considered during testing, and requires less time to run than a traditional symbolic execution technique.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Bertolino, A., Gnesi, S.: PLUTO: A Test Methodology for Product Families. In: van der Linden, F.J. (ed.) PFE 2003. LNCS, vol. 3014, pp. 181–197. Springer, Heidelberg (2004)
Cohen, M.B., Colbourn, C.J., Gibbons, P.B., Mugridge, W.B.: Constructing test suites for interaction testing. In: Proc. of the Intl. Conf. on Soft. Eng., pp. 38–48 (May 2003)
Cohen, M.B., Dwyer, M.B., Shi, J.: Coverage and adequacy in software product line testing. In: Proc. of the Workshop on the Role of Arch. for Test. and Anal., pp. 53–63 (July 2006)
Communication Research Center Canada, http://www.crc.gc.ca/en/html/crc/home/research/satcom/rars/sdr/products/scari_open/scari_open
de Moura, L., Bjørner, N.S.: Z3: An Efficient SMT Solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)
Geppert, B., Li, J., Rößler, F., Weiss, D.M.: Towards Generating Acceptance Tests for Product Lines. In: Dannenberg, R.B., Krueger, C. (eds.) ICSR 2004. LNCS, vol. 3107, pp. 35–48. Springer, Heidelberg (2004)
GNU Radio, http://gnuradio.org/redmine/wiki/gnuradio
Godefroid, P.: Compositional dynamic test generation. In: Proc. of the ACM Symposium on Principles of Programming Languages, pp. 47–54 (2007)
Halpert, R.L.: Static lock allocation. Master’s thesis, McGill University(April 2008)
Jaring, M., Bosch, J.: Expressing product diversification – categorizing and classifying variability in software product family engineering. Intl. Journal of Soft. Eng. and Knowledge Eng. 14(5), 449–470 (2004)
Kim, C.H.P., Batory, D., Khurshid, S.: Reducing combinatorics in testing product lines. In: Asp. Orient. Soft. Dev., AOSD (2011)
King, J.C.: Symbolic execution and program testing. Commun. ACM 19(7), 385–394 (1976)
Kuhn, D., Wallace, D.R., Gallo, A.M.: Software fault interactions and implications for software testing. IEEE Trans. on Soft. Eng. 30(6), 418–421 (2004)
Lopez-Herrejon, R.E., Batory, D.: A Standard Problem for Evaluating Product-Line Methodologies. In: Dannenberg, R.B. (ed.) GCSE 2001. LNCS, vol. 2186, pp. 10–24. Springer, Heidelberg (2001)
NASA Ames. Java Pathfinder (2011), http://babelfish.arc.nasa.gov/trac/jpf
Ottenstein, K.J., Ottenstein, L.M.: The program dependence graph in a software development environment. In: Proc. of the Soft. Eng. Symp. on Practical Soft. Develop. Envs., pp. 177–184 (1984)
Person, S., Dwyer, M.B., Elbaum, S., Pǎsǎreanu, C.S.: Differential symbolic execution. In: Intl. Symp. on Foun. of Soft. Eng., pp. 226–237 (2008)
Pohl, K., Böckle, G., van der Linden, F.J.: Software Product Line Engineering: Foundations, Principles and Techniques. Springer, Heidelberg (2005)
Reis, S., Metzger, A., Pohl, K.: Integration Testing in Software Product Line Engineering: A Model-Based Technique. In: Dwyer, M.B., Lopes, A. (eds.) FASE 2007. LNCS, vol. 4422, pp. 321–335. Springer, Heidelberg (2007)
Reisner, E., Song, C., Ma, K.-K., Foster, J.S., Porter, A.: Using symbolic evaluation to understand behavior in configurable software systems. In: Intl. Conf. on Soft. Eng., pp. 445–454 (May 2010)
Reps, T., Rosay, G.: Precise interprocedural chopping. In: Proc. of the ACM Symposium on Foundations of Soft. Eng., pp. 41–52 (1995)
Sox. Sound Exchange (2011), http://sox.sourceforge.net/
Stricker, V., Metzger, A., Pohl, K.: Avoiding Redundant Testing in Application Engineering. In: Bosch, J., Lee, J. (eds.) SPLC 2010. LNCS, vol. 6287, pp. 226–240. Springer, Heidelberg (2010)
Uzuncaova, E., Garcia, D., Khurshid, S., Batory, D.: Testing software product lines using incremental test generation. In: Intl. Symp. on Soft. Reliab. Eng, pp. 249–258 (2008)
Vallée-Rai, R., Gagnon, E.M., Hendren, L., Lam, P., Pominville, P., Sundaresan, V.: Optimizing Java Bytecode Using the Soot Framework: Is It Feasible? In: Watt, D.A. (ed.) CC 2000. LNCS, vol. 1781, pp. 18–34. Springer, Heidelberg (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Shi, J., Cohen, M.B., Dwyer, M.B. (2012). Integration Testing of Software Product Lines Using Compositional Symbolic Execution. In: de Lara, J., Zisman, A. (eds) Fundamental Approaches to Software Engineering. FASE 2012. Lecture Notes in Computer Science, vol 7212. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-28872-2_19
Download citation
DOI: https://doi.org/10.1007/978-3-642-28872-2_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-28871-5
Online ISBN: 978-3-642-28872-2
eBook Packages: Computer ScienceComputer Science (R0)