Integration Testing in Software Product Line Engineering: A Model-Based Technique

  • Sacha Reis
  • Andreas Metzger
  • Klaus Pohl
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4422)


The development process in software product line engineering is divided into domain engineering and application engineering. As a consequence of this division, tests should be performed in both processes. However, existing testing techniques for single systems cannot be applied during domain engineering, because of the variability in the domain artifacts. Existing software product line test techniques only cover unit and system tests. Our contribution is a model-based, automated integration test technique that can be applied during domain engineering. For generating integration test case scenarios, the technique abstracts from variability and assumes that placeholders are created for variability. The generated scenarios cover all interactions between the integrated components, which are specified in a test model. Additionally, the technique reduces the effort for creating placeholders by minimizing the number of placeholders needed to execute the integration test case scenarios. We have experimentally measured the performance of the technique and the potential reduction of placeholders.


Test Model Variation Point Software Product Line Variable Part Domain Engineering 
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.


  1. 1.
    Balas, E., Toth, P.: Branch and Bound Methods. In: Lawler, E.L., Lenstra, J.K., Rinnooy Kan, A.H.G., Shmoys, D.B. (eds.) The Traveling Salesman Problem, pp. 361–401. Wiley, New York (1985)Google Scholar
  2. 2.
    Basanieri, F., Bertolino, A.: A Practical approach to UML-based derivation of integration tests. In: Proc. of the Quality Week Europe, paper 3T (2000)Google Scholar
  3. 3.
    Beizer, B.: Software Testing Techniques. Van Nostrand Reinhold, New York (1990)Google Scholar
  4. 4.
    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)Google Scholar
  5. 5.
    Bertolino, A., Marré, M.: Automatic Generation of Path Covers Based on the Control Flow Analysis of Computer Programs. IEEE Transactions on Software Engineering 20(12), 885–899 (1994)CrossRefGoogle Scholar
  6. 6.
    Binder, R.V.: Testing Object-Oriented Systems. Addison-Wesley, Reading (2000)Google Scholar
  7. 7.
    Boehm, B., Basili, V.R.: Software Defect Reduction Top 10 List. IEEE Computer 34(1), 135–137 (2001)Google Scholar
  8. 8.
    Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Reading (2002)Google Scholar
  9. 9.
    Cohen, M.B., Dwyer, M.B., Shi, J.: Coverage and Adequacy in Software Product Line Testing. In: Proc. of the ISSTA 2006 Workshop on Role of Software Architecture for Testing and Analysis, pp. 53–63. ACM, New York (2006)CrossRefGoogle Scholar
  10. 10.
    Geppert, B., Li, J., Rößler, F., Weiss, D.M.: Towards Generating Acceptance Tests for Product Lines. In: Bosch, J., Krueger, C. (eds.) ICOIN 2004 and ICSR 2004. LNCS, vol. 3107, pp. 35–48. Springer, Heidelberg (2004)Google Scholar
  11. 11.
    GLPK (Gnu Linear Progrmming Kit), Gnu Project,
  12. 12.
    Hartmann, J., Imoberdorf, C., Meisinger, M.: UML-Based Integration Testing. In: Harrold, M.J. (ed.) Proc. of the Intl. Symposium on Software Testing and Analysis, pp. 60–70. ACM, New York (2000)CrossRefGoogle Scholar
  13. 13.
    Hedley, D., Hennell, M.A.: The Causes and Effects of Infeasible Path in Computer Programs. In: Proc. of the 8th Intl. Conf. on Software Engineering, pp. 259–267. IEEE Computer Society Press, Los Alamitos (1985)Google Scholar
  14. 14.
    Jorgensen, P.C., Erickson, C.: Object-Oriented Integration Testing. Communications of the ACM 37(9), 30–38 (1994)CrossRefGoogle Scholar
  15. 15.
    Käkölä, T., Duenas, J.C. (eds.): Software Product Lines – Research Issues in Engineering and Management. Springer, Heidelberg (2006)Google Scholar
  16. 16.
    Kim, Y., Carlson, C.R.: Scenario Based Integration Testing for Object-Oriented Software Development. In: Proc. of the 8th Asian Test Symposium, pp. 283–288. IEEE Computer Society Press, Los Alamitos (1999)Google Scholar
  17. 17.
    McGregor, J.D.: Testing a Software Product Line. Technical Report CMU/SEI-2001-TR-022, Carnegie Mellon University, SEI (2001)Google Scholar
  18. 18.
    McGregor, J.D., Sodhani, P., Madhavapeddi, S.: Testing Variability in a Software Product Line. In: Proc. of the Intl. Workshop on Software Product Line Testing, Avaya Labs, ALR-2004-031, 45–50 (2004)Google Scholar
  19. 19.
    Muccini, H., van der Hoek, A.: Towards Testing Product Line Architectures. Electronic Notes in Theoretical Computer Science (Proc. of the Intl. Workshop on Test and Analysis of Component-Based Systems) 82(6) (2003)Google Scholar
  20. 20.
    Nebut, C., Fleurey, F., Le Traon, Y., Jézéquel, J.-M.: A Requirement-based Approach to Test Product Families. In: van der Linden, F.J. (ed.) PFE 2003. LNCS, vol. 3014, pp. 198–210. Springer, Heidelberg (2004)Google Scholar
  21. 21.
    Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering – Foundations, Principles, and Techniques. Springer, Heidelberg (2005)zbMATHGoogle Scholar
  22. 22.
    Prather, R.E., Myers, J.P.: The Path Prefix Testing Strategy. IEEE Transactions on Software Engineering 13(7), 761–766 (1987)CrossRefzbMATHGoogle Scholar
  23. 23.
    Reis, S., Metzger, A., Pohl, K.: A Reuse technique for Performance Testing of Software Product Lines. In: Proc. of the Intl. Workshop on Software Product Line Testing, Mannheim University of Applied Sciences, Report No. 003.06, 5-10 (2006)Google Scholar
  24. 24.
    Reuys, A., Kamsties, E., Pohl, K., Reis, S.: Model-based System Testing of Software Product Families. In: Pastor, Ó., Falcão e Cunha, J. (eds.) CAiSE 2005. LNCS, vol. 3520, pp. 519–534. Springer, Heidelberg (2005)Google Scholar
  25. 25.
    Tevanlinna, A., Taina, J., Kauppinen, R.: Product Family Testing – a Survey. ACM SIGSOFT Software Engineering Notes 29(2) (2004)Google Scholar
  26. 26.
    Tsai, W.T., Bai, X., Paul, R., Shao, W., Agarwal, V.: End-To-End Integration Testing Design. In: Proc. of the 25th Annual Intl. Computer Software and Applications Conf., pp. 166–171. IEEE, Los Alamitos (2001)Google Scholar
  27. 27.
    Wang, H.S., Hsu, S.R., Lin, J.C.: A Generalized Optimal Path-Selection Model for Structural Program Testing. The Journal of Systems and Software 10, 55–63 (1989)CrossRefGoogle Scholar
  28. 28.
    Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslen, A.: Experimentation in Software Engineering – An Introduction. Kluwer Academic Publishers, Dordrecht (2000)zbMATHGoogle Scholar
  29. 29.
    Wu, Y., Chen, M.-H., Offutt, J.: UML-Based Integration Testing for Component-Based Software. In: Erdogmus, H., Weng, T. (eds.) ICCBSS 2003. LNCS, vol. 2580, pp. 251–260. Springer, Heidelberg (2003)CrossRefGoogle Scholar

Copyright information

© Springer Berlin Heidelberg 2007

Authors and Affiliations

  • Sacha Reis
    • 1
  • Andreas Metzger
    • 1
  • Klaus Pohl
    • 1
    • 2
  1. 1.Software Systems Engineering, University of Duisburg-Essen, Schützenbahn 70, 45117 EssenGermany
  2. 2.Lero (The Irish Software Engineering Research Centre), University of LimerickIreland

Personalised recommendations