Integration testing of aspect-oriented programs: a characterization study to evaluate how to minimize the number of stubs

  • Reginaldo Ré UTFPR
  • Paulo Cesar Masiero USP

Abstract


A problem related to the integration test of object-oriented programs is the order that classes are integrated and tested. This problem also appears in aspect-oriented programs. The incremental integration strategy, which suggests that classes are tested first and then integrated to the aspects, is often proposed as the more adequate strategy to integrate classes and aspects. This work presents a study about ordering classes and aspects in aspect-oriented programming to minimize the number of stubs in integration testing. A characterization study in which a Telecom system is integrated in four different orders is reported. The ordering strategies analyzed were the combined, which is an extension of an optmized OO strategy; incremental+, which is the incremental order improved; reverse, which is the combined reverse order; and, random, which was aleatorily defined.

References

Abdurazik, A. and Offutt, J. (2006). Coupling-based class integration and test order. In AST ’06: Proceedings of the 2006 international workshop on Automation of software test, pages 50–56, New York, NY, USA. ACM Press.

Aldawud, O; Elrad, T. and Bader, A. (2003). A UML profile for aspect-oriented software development. In 3rd Int. Workshop on Aspect-Oriented Modeling. Aldawud, O.; Kandé, M.; Booch, G.; Harrison, B. and Stein, D.

Alexander, R. T. and Bieman, J. M. (2004). Towards the systematic testing of aspectoriented programs. Technical Report CS-4-105, Colorado State University, Fort Collins, Colorado.

Baniassad, E. L. A. and Clarke, S. (2004). Theme: An approach for aspect-oriented analysis and design. In 26th International Conference on Software Engineering (ICSE 2004), 23–28 May 2004, Edinburgh, United Kingdom, pages 158–167. IEEE Computer Society.

Briand, L. C., Labiche, Y., and Wang, Y. (2003). An investigation of graph-based class integration test order strategies. IEEE Transactions on Software Engineering, 29(7):594– 607.

Camargo, V. V. and Masiero, P. C. (2005). Object-oriented frameworks. In XIX SBES Brazilian Symposium on Software Engineering, pages 200–216, Uberlândia – Brazil. in Portuguese.

Ceccato, M., Tonella, P., and Ricca, F. (2005). Is AOP code easier or harder to test than OOP code? In First Workshop on Testing Aspect-Oriented Programs (WTAOP 2005), Chicago, Illinois – USA.

Cibrán, M., D’Hondt, M., and Jonckers, V. (2003). Aspect-oriented programming for connecting business rules. In 6th International Conference on Business Information Systems.

JUnit (2002). Junit. JUnit.org.

Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C. V., Loingtier, J.-M., and Irwin, J. (1997). Aspect-oriented programming. In Aksit, M. and Matsuoka, S., editors, ECOOP’97 Object-Oriented Programming, 11th European Conference, Jyväskylä, Finland, June 9-13, 1997, Proceedings, volume 1241 of Lecture Notes in Computer Science, pages 220–242. Springer.

Kienzle, J., Yu, Y., and Xiong, J. (2003). On composition and reuse of aspects. In Leavens, G. T. and Clifton, C., editors, FOAL: Foundations of Aspect-Oriented Languages at the AOSD 2003.

Krechetov, I., Tekinerdogan, B., Garcia, A., Chavez, C., and Kulesza, U. (2006). Towards an integrated aspect-oriented modeling approach for software architecture design. In 8th Workshop on Aspect-oriented Modeling (AOM’06) at the Fifth International Conference on Aspect-Oriented Software Development (AOSD’06), Bonn, Germany.

Krinke, J. and Störzer, M. (2003). Interference analysis for AspectJ. In Workshop on Foundations of Aspect-Oriented Languages at the Proceedings of the 2nd international conference on Aspect-oriented software development (AOSD ’2003), Boston – USA.

Kung, D. C., Gao, J., Hsia, P., Lin, J., and Toyoshima, Y. (1995). Class firewal, test order and regression testing of object-oriented programs. Journal of Object-Oriented Program, 8(2):51–65.

Labiche, Y., Thévenod-Fosse, P., Waeselynck, H., and Durand, M.-H. (2000). Testing levels for object-oriented software. In ICSE ’00: Proceedings of the 22nd international conference on Software engineering, pages 136–145, New York, NY, USA. ACM Press.

Le Traon, Y., Jéron, T., Jézéquel, J., and Morel, P. (2000). Efficient OO integration and regression testing. IEEE Transactions on Reliability, 49(1):12–25.

Loughran, N. and Rashid, A. (2004). Framed aspects: Supporting variability and configurability for aop. In Software Reuse: Methods, Techniques and Tools: 8th International Conference on Software Reuse, ICSR 2004, Madrid, Spain, July 5-9., volume 3107 of Lecture Notes in Computer Science, pages 127–140. Springer.

Milanova, A., Rountev, A., and Ryder, B. (2002). Constructing precise object relation diagrams. In ICSM ’02: Proceedings of the International Conference on Software Maintenance (ICSM’02), page 586, Washington, DC, USA. IEEE Computer Society.

Myers, G. J. (1979). Art of Software Testing. John Wiley & Sons, Inc., New York, NY, USA.

Ré, R., Lemos, O. A. L., and Masiero, P. C. (2007). Minimizing stub creation during integration test of aspect-oriented programs. In WTAOP ’07: Proceedings of the 3rd workshop on Testing aspect-oriented programs, pages 1–6, New York, NY, USA. ACM Press.

Ré, R. and Masiero, P. C. (2005). Avaliação da abordagem incremental no teste de integração de programas orientados aspectos. In XIX SBES Brazilian Symposium on Software Engineering, volume 19, pages 168–183, Uberlândia – Brazil. in Portuguese.

Soares, S., Laureano, E., and Borba, P. (2002). Implementing distribution and persistence aspects with AspectJ. In Proc. of the 17th ACM Conference on Object-Oriented Programming, Systems, Languages and Applications, pages 174–90. ACM Press.

Tai, K.-C. and Daniels, F. J. (1999). Interclass test order for object-oriented software. Journal of Object-Oriented Programming, 12(4):18–25,35.

Tarjan, R. E. (1972). Depth-first search and linear graph algorithms. SIAM J. Comput., 1(2):146–160.

The AspectJ Team (2002). The AspectJ programming guide. Xerox Croporation.

Zhao, J. (2003). Data-flow-based unit testing of aspect-oriented programs. In COMPSAC ’03: Proceedings of the 27th Annual International Conference on Computer Software and Applications, page 188, Washington, DC, USA. IEEE Computer Society.

Zhou, Y., Richardson, D., and Ziv, H. (2004). Towards a practical approach to test aspectoriented software. In Beydeda, S., Gruhn, V., Mayer, J., Reussner, R., and Schweiggert, F., editors, Testing of Component-Based Systems and Software Quality, TECOS 2004 (Workshop Testing Component-Based Systems), pages 1–16, Erfurt – Germany.
Published
2007-10-15
RÉ, Reginaldo; MASIERO, Paulo Cesar. Integration testing of aspect-oriented programs: a characterization study to evaluate how to minimize the number of stubs. In: BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING (SBES), 21. , 2007, João Pessoa. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2007 . p. 411-426. ISSN 2833-0633. DOI: https://doi.org/10.5753/sbes.2007.21319.