Advertisement

Structural Testing of Component-Based Systems

  • Daniel Sundmark
  • Jan Carlson
  • Sasikumar Punnekkat
  • Andreas Ermedahl
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5282)

Abstract

Component based development of software systems needs to devise effective test management strategies in order fully achieve its perceived advantages of cost efficiency, flexibility, and quality in industrial contexts. In industrial systems with quality demands, while testing software, measures are employed to evaluate the thoroughness achieved by execution of a certain set of test cases. Typically, these measures are expressed in the form of coverage of different structural test criteria, e.g., statement coverage. However, such measures are traditionally applicable only on the lowest level of software integration (i.e., the component level). As components are assembled into subsystems and further into full systems, general measures of test thoroughness are no longer available. In this context, we formalize the added test effort and show to what extent the coverage of structural test criteria are maintained when components are integrated, in three representative component models. This enables focusing on testing the right aspects of the software at the right level of integration, and achieves cost reduction during testing — one of the most resource-consuming activities in software engineering.

Keywords

Test Item Structural Test Test Criterion Execution Path Concurrent Program 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Zhu, H., Hall, P.A.V., May, J.H.R.: Software unit test coverage and adequacy. ACM Computing Surveys (CSUR) 29(4), 366–427 (1997)CrossRefGoogle Scholar
  2. 2.
    Juristo, N., Moreno, A.M., Vegas, S.: Reviewing 25 Years of Testing Technique Experiments. Journal of Empirical Software Engineering 9(1-2), 7–44 (2004)CrossRefGoogle Scholar
  3. 3.
    Frankl, P.G., Weyuker, E.J.: An Applicable Family of Data Flow Testing Criteria. IEEE Transactions of Software Engineering 14(10), 1483–1498 (1988)MathSciNetCrossRefGoogle Scholar
  4. 4.
    Pavlopoulou, C., Young, M.: Residual test coverage monitoring. In: ICSE 1999: Proceedings of the 21st international conference on Software engineering, pp. 277–284. IEEE Computer Society Press, Los Alamitos (1999)Google Scholar
  5. 5.
    Craig, R.D., Jaskiel, S.P.: Systematic Software Testing. Artech House Publishers (2002)Google Scholar
  6. 6.
    van Veenendaal, E.: The Testing Practitioner. Uitgeverij Tutein Nolthenius (2002)Google Scholar
  7. 7.
    Copeland, L.: A Practitioner’s Guide to Software Test Design. STQE Publishing (2003)Google Scholar
  8. 8.
    Crnkovic, I., Larsson, M.: Building Reliable Component-Based Software Systems. Artech House Publishers (2002)Google Scholar
  9. 9.
    Lau, K.K., Wang, Z.: A Survey of Software Component Models, 2nd edn., May 2006. Pre-print CSPP-38, School of Computer Science, The University of Manchester (2006)Google Scholar
  10. 10.
    Shaw, M., Garland, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)Google Scholar
  11. 11.
    Sundmark, D., Pettersson, A., Sandberg, C., Ermedahl, A., Thane, H.: Finding DU-Paths for Testing of Multi-Tasking Real-Time Systems using WCET Analysis. In: Proceedings of the 7thInternational Workshop on Worst-Case Execution Time Analysis (WCET 2007) (July 2007)Google Scholar
  12. 12.
    Pretschner, A.: Compositional Generation of MC/DC Integration Test Suites. Electronic Notes in Theoretical Computer Science 82(6) (2003)Google Scholar
  13. 13.
    Goldberg, A., Wang, T.C., Zimmerman, D.: Applications of Feasible Path Analysis to Program Testing. In: ISSTA 1994: Proceedings of the 1994 ACM SIGSOFT international Symposium on Software Testing and Analysis, pp. 80–94. ACM Press, New York (1994)Google Scholar
  14. 14.
    Gustafsson, J., Ermedahl, A., Lisper, B.: Algorithms for Infeasible Path Calculation. In: Sixth International Workshop on Worst-Case Execution Time Analysis (WCET 2006), Dresden, Germany (July 2006)Google Scholar
  15. 15.
    Hayes, I., Fidge, C., Lermer, K.: Semantic Characterisation of Dead Control-Flow Paths. IEE Proceedings - Software 148(6), 175–186 (2001)CrossRefGoogle Scholar
  16. 16.
    Åkerholm, M., Carlson, J., Fredriksson, J., Hansson, H., Håkansson, J., Möller, A., Pettersson, P., Tivoli, M.: The SAVE approach to component-based development of vehicular systems. Journal of Systems and Software 80(5), 655–667 (2007)CrossRefGoogle Scholar
  17. 17.
    Nierstrasz, O., Arévalo, G., Ducasse, S., Wuyts, R., Black, A.P., Müller, P.O., Zeidler, C., Genssler, T., van den Born, R.: A component model for field devices. In: Proc. of the 1st Int. IFIP/ACM Working Conference on Component Deployment, pp. 200–209. Springer, Heidelberg (2002)Google Scholar
  18. 18.
    Sun Microsystems: JavaBeans Specification 1.01 (August 1997), http://java.sun.com/javase/technologies/desktop/javabeans/docs/spec.html
  19. 19.
    Box, D.: Essential COM. Addison-Wesley, Reading (1997)MATHGoogle Scholar
  20. 20.
    van Ommering, R., van der Linden, F., Kramer, J., Magee, J.: The Koala Component Model for Consumer Electronics Software. IEEE Computer 33(3), 78–85 (2000)CrossRefGoogle Scholar
  21. 21.
    Lundbäck, K.L., Lundbäck, J., Lindberg, M.: Component Based Development of Dependable Real-Time Applications. Technical report, Arcticus Systems, http://www.arcticus.se
  22. 22.
    Sandström, K., Fredriksson, J., Åkerholm, M.: Introducing a component technology for safety critical embedded realtime systems. In: Crnković, I., Stafford, J.A., Schmidt, H.W., Wallnau, K. (eds.) CBSE 2004. LNCS, vol. 3054, pp. 194–209. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  23. 23.
    Ke, X., Sierszecki, K., Angelov, C.: COMDES-II: A Component-Based Framework for Generative Development of Distributed Real-Time Control Systems. In: Proc. of the 13th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications, pp. 199–208. IEEE, Los Alamitos (2007)Google Scholar
  24. 24.
    Bureš, T., Carlson, J., Crnković, I., Sentilles, S., Vulgarakis, A.: ProCom - the Progress Component Model Reference Manual, version 1.0. Technical Report MDH-MRTC-230/2008-1-SE, Mälardalen University (June 2008)Google Scholar
  25. 25.
    RTCA: Software Considerations in Airborne Systems and Equipment Certification, RTCA/DO-178B. RTCA (December 1992)Google Scholar
  26. 26.
    Yang, C.S.D., Pollock, L.L.: All-uses Testing of Shared Memory Parallel Programs. Software Testing, Verification and Reliability 13(1), 3–24 (2003)CrossRefGoogle Scholar
  27. 27.
    Chilenski, J.J., Miller, S.P.: Applicability of Modified Condition/Decision Coverage to Software Testing. Software Engineering Journal, 193–200 (1994)Google Scholar
  28. 28.
    Groß, H.G., Mayer, N.: Evolutionary testing in component-based real-time system construction. In: GECCO 2002: Proceedings of the Genetic and Evolutionary Computation Conference, San Francisco, CA, USA, p. 1393. Morgan Kaufmann Publishers Inc., San Francisco (2002)Google Scholar
  29. 29.
    Mao, C., Lu, Y.: Regression testing for component-based software systems by enhancing change information. In: APSEC 2005: Proceedings of the 12th Asia- Pacific Software Engineering Conference, Washington, DC, USA, pp. 611–618. IEEE Computer Society, Los Alamitos (2005)Google Scholar
  30. 30.
    Pelliccione, P., Muccini, H., Bucchiarone, A., Facchini, F.: TeStor: Deriving Test Sequences from Model-based Specifications. In: Heineman, G.T., Crnković, I., Schmidt, H.W., Stafford, J.A., Szyperski, C.A., Wallnau, K. (eds.) CBSE 2005. LNCS, vol. 3489, pp. 267–282. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  31. 31.
    Weyuker, E.J.: Testing Component-Based Software: A Cautionary Tale. IEEE Softw. 15(5), 54–59 (1998)CrossRefGoogle Scholar
  32. 32.
    Katayama, T., Itoh, E., Ushijima, K., Furukawa, Z.: Test-Case Generation for Concurrent Programs with the Testing Criteria Using Interaction Sequences. In: Proceedings of sixth Asia-Pacific Software Engineering Conference (APSEC 1999), p. 590 (1999)Google Scholar
  33. 33.
    Taylor, R.N., Levine, D.L., Kelly, C.D.: Structural Testing of Concurrent Programs. IEEE Transactions on Software Engineering 18(3), 206–215 (1992)CrossRefGoogle Scholar
  34. 34.
    Wong, W.E., Lei, Y., Ma, X.: Effective Generation of Test Sequences for Structural Testing of Concurrent Programs. In: Proceedings of the 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS 2005), Washington, DC, USA, pp. 539–548. IEEE Computer Society, Los Alamitos (2005)Google Scholar
  35. 35.
    Yang, R.D., Chung, C.G.: Path Analysis Testing of Concurrent Program. Information and Software Technology 34(1), 43–56 (1992)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Daniel Sundmark
    • 1
  • Jan Carlson
    • 1
  • Sasikumar Punnekkat
    • 1
  • Andreas Ermedahl
    • 1
  1. 1.MRTC, Mälardalen UniversityVästeråsSweden

Personalised recommendations