Um catálogo de stubs para apoiar o teste de integração de programas orientados a aspectos
Resumo
Um dos problemas encontrados no teste de programas orientados a objetos é a ordem em que classes são integradas e testadas na presença de ciclos de dependência. Esse problema, também observado em programas orientados a aspectos, provoca aumento do esforço da atividade de teste pela necessidade de implementação de stubs para quebrar os ciclos de dependência. Este trabalho apresenta um conjunto de stubs e drivers coletados durante a condução de um estudo com quatro diferentes estratégias de teste de integração aplicadas a dois diferentes sistemas implementados com aspectos. Também são mostradas decisões de implementação tomadas em relação ao contexto em que os stubs e drivers são usados, além de diretrizes a serem seguidas durante a implementação desses artefatos de software para apoiar o teste de programas orientados a aspectos.
Referências
Binder, R. V. (1999). Testing object-oriented systems: models, patterns, and tools. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
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.
Colyer, A., Rashid, A., and Blair, G. (2004). On the separation of concerns in program families. Technical Report COMP-001-2004, Lancaster University.
Douence, R., Fradet, P., and Südholt, M. (2004). Composition, reuse and interaction analysis of stateful aspects. In Murphy, G. C. and Lieberherr, K. J., editors, Fourth International Conference on Aspect-Oriented Software Development (AOSD’2005) – Workshop On Testing Aspect Oriented Programs, pages 141–150. ACM.
Filman, R. E. and Friedman, D. P. (2005). Aspect-oriented programming is quantification and obliviousness. In Filman, R. E., Elrad, T., Clarke, S., and Aksit, M., editors, AspectOriented Software Development, pages 21–35. Addison-Wesley, Boston.
Gradecki, J. D., Lesiecki, N., and Gradecki, J. (2003). Mastering AspectJ: AspectOriented Programming in Java. John Wiley & Sons, Inc.
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. and Guerraoui, R. (2002). AOP: Does it make sense? The case of concurrency and failures. In Magnusson, B., editor, ECOOP 2002, Malaga, Spain, June 10-14, 2002, Proceedings, volume 2374 of LNCS, pages 37–61. 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.
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.
McGregor, J. D. and Sykes, D. A. (2001). A practical guide to testing object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 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. (2007). Integration testing of aspect-oriented programs: a characterization study to evaluate how to minimize the number of stubs. In XXI SBES - Brazilian Symposium on Software Engineering, volume 21, pages 411–426, João Pessoa – Brazil.
The AspectJ Team (2002). The AspectJ programming guide. Xerox Croporation.
Zhou, Y., Richardson, D., and Ziv, H. (2004). Towards a practical approach to test aspect-oriented 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.