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


Um dos problemas encontrados no teste de programas orientados a objetos é a ordem em que classes são integradas e testadas. Esse problema também pode ser observado em programas orientados a aspectos. A estratégia incremental, que sugere que classes sejam testadas primeiramente e, então, integradas aos aspectos, é frequentemente sugerida como a estratégia mais adequada para integrar classes e aspectos. Este trabalho apresenta um estudo sobre ordenação de classes e aspectos em programas orientados a aspectos para miniminar o número de módulos pseudo-controlados implementados durante a integração. Um estudo de caracterização em que um sistema de telecomunicação é integrado utilizando quatro ordens diferentes é apresentado. As estratégias de ordenação analisadas foram a combinada, que é uma extensão da estratégia OO otimizada; a incremental+, que é a ordem incremental melhorada; a reversa, que é a ordem inversa da combinada; e a randômica, que foi definida aleatoriamente.


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.

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.
RÉ, Reginaldo; MASIERO, Paulo Cesar. Integration testing of aspect-oriented programs: a characterization study to evaluate how to minimize the number of stubs. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 21. , 2007, João Pessoa. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2007 . p. 411-426. DOI: