Testes de Integração Aplicados a Software Orientado a Objetos: Heurísticas para Ordenação de Classes
Resumo
Uma questão crucial quando aplicando teste de integração em software orientado a objetos é decidir a ordem de integração das classes. As classes precisam ser integradas uma de cada vez ou, em alguns casos, em pequenos clusters [7] já que a abordagem de integração big-bang se demonstra inadequada nesta situação. Conceitos como encapsulamento, herança e polimorfismo adicionam complexidade aos testes, fazendo com que critérios precisem ser estabelecidos para, eventualmente, quebrar a dependência existente entre as classes sem aumentar a complexidade (esforço) do teste. Este trabalho apresenta um conjunto de heurísticas aplicadas aos diagramas de classes UML que permitem estabelecer uma ordem de prioridade para o teste de integração das classes que compõem o software, utilizando o número de stubs necessários para o teste como medida do esforço requerido. Quando comparada às abordagens existentes, estas heurísticas se aplicam em nível mais alto de abstração (projeto), facilitando sua utilização e permitindo antecipar a tomada de decisão no planejamento do teste de integração. Um estudo de caso demonstra sua aplicação e realiza uma comparação dos resultados com estudos realizados encontrados na literatura.
Palavras-chave:
Teste de Integração, Ordem de Integração, Engenharia de Software Orientada a Objetos, Experimentação
Referências
ANTONIOL, G.; BRIAND, L.C.; DI PENTA, M.; LABICHE, Y.; A case study using the round-trip strategy for state-based class testing, Proceedings of the 13th International Symposium on Software Reliability Engineering, 12-15 Nov. 2002, Page(s): 269 –279
BEIZER, B.; Software System Testing and Quality Assurance; Van Nostrand Reinhold Company Inc, 1984.
BINDER, R.V.; Testing object-oriented systems: models, patterns, and tool; Addison- Wesley, 2000.
BOOCH, G., RUMBAUCH, J., JACOBSON, I., UML – Guia do Usuário, Editora Campus, 2000.
BRIAND, L.C.; LABICHE, Y.; YIHONG, W; Revisiting strategies for ordering class integration testing in the presence of dependency cycles, ISSRE 2001. Proceedings of the. 12th International Symposium on Software Reliability Engineering, Nov. 2001, Page(s): 287 -296
BRIAND, L.C.; LABICHE, Y.; SOCCAR, G.; Automating impact analysis and regression test selection based on UML designs, Software Maintenance, 2002. Proceedings. International Conference on, 3-6 Oct, 2002.
BRIAND, L.C.; FENG, J. ; LABICHE, Y.; Experimenting with Genetic Algorithms and Coupling Measures to Devise Optimal Integration Test Orders, Carleton University, Technical Report SCE-02-03, Version 3, Oct, 2002.
BRIAND, L.C.; LABICHE, Y.; YIHONG, W; An investigation of graph-based class integration test order strategies, IEEE Transactions on Software Engineering, 0098- 5589/03, Vol. 29, Issue: 7, July, 2003, Page(s): 594 -607
FURLAN, J.D.; Modelagem de Objetos através da UML, Makron Books, São Paulo, 1998.
Le TRAON, Y.; JÉRON, T.; JÉZÉQUEL, J.; e MOREL, P., Efficient Object-Oriented Integration and Regression Testing, IEEE Transactions Reliability, Vol. 49, no. 1, Page(s): 12-25, 0018-9529/00, 2000.
LIMA, G.M.P.S.; TRAVASSOS, G.H.; Testes de Integração Aplicados a Software Orientado a Objetos: Heurísticas para Ordenação de Classes, Relatórios Técnicos do Programa de Engenharia de Sistemas e Computação, ES-632/04, COPPE, UFRJ, 2004.
LORENZ, M., KIDD, J.; Object-Oriented Metrics: A Pratical Guide, Prentice Hall, USA, 1994.
OLIVEIRA, H.; Construção de um componente genérico baseado em heurísticas para ordenação das classes em ordem de prioridade de teste de integração, Estudo da disciplina Laboratórios de Engenharia de Software, COPPE, UFRJ, 2003.
PFLEEGER, S. L., Engenharia de Software: Teoria e Prática, Prentice Hall, 2a Edição, 2004.
PRESSMAN, R. S., Engenharia de Software, Mc Graw Hill, 5a . Edição, 2001.
ROCHA, A. R. C., MALDONADO, J. C., WEBER, K. C., Qualidade de Software: Teoria e Prática, Prentice Hall, 2001.
TRAVASSOS, G.H.; GUROV, D.; AMARAL, E.A.G.G., Introdução à Engenharia de Software Experimental, Relatório Técnico ES-590/02-Abril, Programa de Engenharia de Sistemas e Computação, COPPE/UFRJ.
VIEIRA, M.E.R.; Abordagem para Apoio ao Teste Baseado no Comportamento de Sistemas Orientados a Objetos, Tese de Mestrado, Programa de Engenharia de Sistemas e Computação, COPPE, UFRJ, Rio de Janeiro, 1998.
BEIZER, B.; Software System Testing and Quality Assurance; Van Nostrand Reinhold Company Inc, 1984.
BINDER, R.V.; Testing object-oriented systems: models, patterns, and tool; Addison- Wesley, 2000.
BOOCH, G., RUMBAUCH, J., JACOBSON, I., UML – Guia do Usuário, Editora Campus, 2000.
BRIAND, L.C.; LABICHE, Y.; YIHONG, W; Revisiting strategies for ordering class integration testing in the presence of dependency cycles, ISSRE 2001. Proceedings of the. 12th International Symposium on Software Reliability Engineering, Nov. 2001, Page(s): 287 -296
BRIAND, L.C.; LABICHE, Y.; SOCCAR, G.; Automating impact analysis and regression test selection based on UML designs, Software Maintenance, 2002. Proceedings. International Conference on, 3-6 Oct, 2002.
BRIAND, L.C.; FENG, J. ; LABICHE, Y.; Experimenting with Genetic Algorithms and Coupling Measures to Devise Optimal Integration Test Orders, Carleton University, Technical Report SCE-02-03, Version 3, Oct, 2002.
BRIAND, L.C.; LABICHE, Y.; YIHONG, W; An investigation of graph-based class integration test order strategies, IEEE Transactions on Software Engineering, 0098- 5589/03, Vol. 29, Issue: 7, July, 2003, Page(s): 594 -607
FURLAN, J.D.; Modelagem de Objetos através da UML, Makron Books, São Paulo, 1998.
Le TRAON, Y.; JÉRON, T.; JÉZÉQUEL, J.; e MOREL, P., Efficient Object-Oriented Integration and Regression Testing, IEEE Transactions Reliability, Vol. 49, no. 1, Page(s): 12-25, 0018-9529/00, 2000.
LIMA, G.M.P.S.; TRAVASSOS, G.H.; Testes de Integração Aplicados a Software Orientado a Objetos: Heurísticas para Ordenação de Classes, Relatórios Técnicos do Programa de Engenharia de Sistemas e Computação, ES-632/04, COPPE, UFRJ, 2004.
LORENZ, M., KIDD, J.; Object-Oriented Metrics: A Pratical Guide, Prentice Hall, USA, 1994.
OLIVEIRA, H.; Construção de um componente genérico baseado em heurísticas para ordenação das classes em ordem de prioridade de teste de integração, Estudo da disciplina Laboratórios de Engenharia de Software, COPPE, UFRJ, 2003.
PFLEEGER, S. L., Engenharia de Software: Teoria e Prática, Prentice Hall, 2a Edição, 2004.
PRESSMAN, R. S., Engenharia de Software, Mc Graw Hill, 5a . Edição, 2001.
ROCHA, A. R. C., MALDONADO, J. C., WEBER, K. C., Qualidade de Software: Teoria e Prática, Prentice Hall, 2001.
TRAVASSOS, G.H.; GUROV, D.; AMARAL, E.A.G.G., Introdução à Engenharia de Software Experimental, Relatório Técnico ES-590/02-Abril, Programa de Engenharia de Sistemas e Computação, COPPE/UFRJ.
VIEIRA, M.E.R.; Abordagem para Apoio ao Teste Baseado no Comportamento de Sistemas Orientados a Objetos, Tese de Mestrado, Programa de Engenharia de Sistemas e Computação, COPPE, UFRJ, Rio de Janeiro, 1998.
Publicado
31/05/2004
Como Citar
LIMA, Gladys Machado Pereira Santos; TRAVASSOS, Guilherme Horta.
Testes de Integração Aplicados a Software Orientado a Objetos: Heurísticas para Ordenação de Classes. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 3. , 2004, Brasília.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2004
.
p. 162-174.
DOI: https://doi.org/10.5753/sbqs.2004.16191.