Uma ferramenta baseada em aspectos para o teste funcional de programas Java

  • André Dantas Rocha USP
  • Adenilso da Silva Simão USP
  • José Carlos Maldonado USP
  • Paulo Cesar Masiero USP

Abstract


Availability of testing tools provides better quality and more productivity for the testing activities. In this paper, we present a tool for functional test of programs Java. The tool, denominated J-FuT, supports various functional testing criteria and offers coverage analysis based in those criteria. Aspect-oriented Programming is used in the phases of instrumentation and execution of the testing criteria. The use of this technique allows a clear separation between the testing code and the program code and is an effective and elegant solution for this type of tool. Furthermore, it makes easy adding and removing the aspects that implement the tests.

Keywords: Aspect Oriented Programming, Functional Testing, Test Coverage

References

AUTOMATEDQA CORP. TestComplete. 1999. Disponível em [link] (Acessado em 07/12/2004)

BARBOSA, D. L.; ANDRADE, W. L.; MACHADO, P. D. L.; FIGUEREDO, J. C. A. SPACES - Uma Ferramenta para Teste Funcional de Componentes. Anais da XI Sessão de Ferramentas - XVIII Simpósio Brasileiro de Engenharia de Software, p. 55-60, 2004.

BINDER, R. V. Testing Object-Oriented Systems: Models, Patterns, and Tools. 1 ed. Massachusetts: Addison Wesley, 1191 p., 1999.

BRUEL, J.-M.; ARAÚJO, J.; MOREIRA, A.; ROYER, A. Using Aspects to Develop Built-In Tests for Components. In: AKKAWI, F.; BOOCH, O. A. A. G.; CLARKE, S.; GRAY, J.; HARRISON, B.; KANDÉ, M.; STEIN, D.; TARR, P.; ZAKARIA, A., eds. Proceedings of the 4th AOSD Modeling With UML Workshop, San Francisco - CA, 2003.

CHAIM, M. L. Poke-tool: Uma Ferramenta para Suporte ao Teste Estrutural de Programas Baseados em Análise de Fluxo de Dados. Dissertação de Mestrado, DCA/FEE/UNICAMP, Campinas - SP, 1991.

DEBUSMANN, M.; GEIHS, K. Efficient and Transparent Instrumentation of Application Components using an Aspect-oriented Approach. In: 14th IFIP/IEEE Workshop on Distributed Systems: Operations and Management (DSOM 2003), Heidelberg - Germany: Springer, 2003, p. 209-220 (Lecture Notes in Computer Science (LNCS), v.2867).

DETERS, M.; CYTRON, R. K. Introduction of Program Instrumentation using Aspects. In: Proceedings of the OOPSLA 2001 Workshop on Advanced Separation of Concerns in Object-Oriented Systems, Tampa - FL: ACM, 2001.

DIOTALEVI, F. Contract enforcement with AOP: Apply Design by Contract to Java software development with AspectJ. 2004. Disponível em [link] (Acessado em 25/08/2004)

ELRAD, T.; AKSIT, M.; KICZALES, G.; LIEBERHERR, K.; OSSHER, H. Discussing Aspects of AOP. Communications of the ACM, v. 44, n. 10, p. 33-38, 2001.

GAMMA, E.; BECK, K. JUnit, Testing Resources for Extreme Programming. 2002. Disponível em http://www.junit.org/ (Acessado em 16/11/2004)

ISBERG, W. Get Test-Inoculated! Software Development Article, 2002. Disponível em http://www.sdmagazine.com/documents/s=7360/sdm0205b/ (Acessado em 26/10/2004)

KICZALES, G.; HILSDALE, E.; HUGUNIN, J.; KERSTEN, M.; PALM, J.; GRISWOLD, W. G. An Overview of AspectJ. Lecture Notes in Computer Science, v. 2072, p. 327- 355, 2001.

KICZALES, G.; LAMPING, J.; MENHDHEKAR, A.; MAEDA, C.; LOPES, C.; LOINGTIER, J.-M.; IRWIN, J. Aspect-Oriented Programming. In: AKSIT, M.; MATSUOKA, S., eds. Proceedings of the European Conference on Object-Oriented Programming, v. 1241, Berlin, Heidelberg, and New York: Springer-Verlag, p. 220-242, 1997.

LINKMAN, S.; VINCENZI, A. M. R.; MALDONADO, J. C. An Evaluation of Systematic Functional Testing Using Mutation Testing. In: Proceedings of 7th International Conference on Empirical Assessment in Software Engineering, Staffordshire - UK, 2003, p. 1-15.

MALDONADO, J. C.; BARBOSA, E. F.; VINCENZI, A. M. R.; DELAMARO, M. E.; SOUZA, S.; JINO, M. Teste de Software: Teoria e prática. In: Minicurso - XVII Simpósio Brasileiro de Engenharia de Software (SBES 2003), Manaus - AM, 2003.

MAO, X.; MAY, J. A Framework of Integration Testing Using AspectJ. International Workshop on Aspect-Oriented Software Development (WAOSD 2004), 2004.

MONK, S.; HALL, S. Virtual Mock Objects using AspectJ with JUnit. http://XProgramming.com, 2002. Disponível em [link] (Acessado em 20/11/2004)

MYERS, G. J. The Art of Software Testing. 1 ed. New York: Wiley, 177 p., 1979.

OSTRAND, T. J.; BALCER, M. J. The category-partition method for specifying and generating fuctional tests. Communications of the ACM, v. 31, n. 6, p. 676-686, 1988.

PARASOFT CORPORATION Jtest. 1997. Disponível em http://www.parasoft.com/jtest (Acessado em 05/11/2004)

PEARSON, C. A Framework for the Aspect-Oriented Dynamic Instrumentation of Java Programs. Relatório Técnico, Department of Computing Imperial College London, London - France, 2003.

PRESSMAN, R. S. Engenharia de Software. 5 ed. Rio de Janeiro: McGraw-Hill, 843 p., 2002.

RAJAN, H.; SULLIVAN, K. Generalizing AOP for Aspect-Oriented Testing. Relatório Técnico CS-2004-30, University of Virginia, Virginia - USA, 2004.

RATIONAL CORP. IBM Rational XDE Tester. 2002. Disponível em [link] (Acessado em 12/12/2004)

ROCHA, A. D. Uma ferramenta baseada em aspectos para apoio ao teste funcional de programas Java. Dissertação de Mestrado, Universidade de São Paulo - ICMC/USP, São Carlos - SP, 2005.

VINCENZI, A. M. R.; WONG, W. E.; DELAMARO, M. E.; MALDONADO, J. C. JaBUTi: A Coverage Analysis Tool for Java Programs. In: Anais da Sessão de Ferramentas do XVII Simpósio Brasileiro de Engenharia de Software, Manaus - AM, 2003.
Published
2005-10-03
ROCHA, André Dantas; SIMÃO, Adenilso da Silva; MALDONADO, José Carlos; MASIERO, Paulo Cesar. Uma ferramenta baseada em aspectos para o teste funcional de programas Java. In: BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING (SBES), 19. , 2005, Uberlândia/MG. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2005 . p. 263-278. ISSN 2833-0633. DOI: https://doi.org/10.5753/sbes.2005.23824.