Estratégia de Geração de Dados de Teste Baseada na Análise Simbólica e Dinâmica do Programa

  • Juliana Silva de Herbert UFRGS
  • Ana Maria de Alencar Price UFRGS

Resumo


A geração automática de dados é considerada a tarefa mais crítica do teste estrutural. A obtenção de um conjunto de dados confiável, de propósito geral, não é computável. Assim sendo, os estudos de geração de dados devem basear-se em critérios específicos de teste. Os critérios utilizados para o teste estrutural abordados neste trabalho são os que selecionam caminhos a partir da análise dos fluxos de controle e de dados do programa. Para que a cobertura seja atingida, dados devem ser gerados de tal forma que permitam a execução de todos os caminhos selecionados. Por outro lado, a programação em lógica tem sido bastante utilizada para a implementação de protótipos de ferramentas de apoio às fases do desenvolvimento de software, inclusive à fase de validação. A linguagem Prolog, por exemplo, possui características, próprias para o processamento simbólico, tais como: formalismo DCG, reversibilidade e prova de teoremas, que são extremamente adequadas ao teste estrutural de software, mais especificamente à geração automática de dados para teste. Este artigo apresenta uma proposta de estratégia de geração automática de dados para o teste estrutural, baseada na programação em lógica. Nesta estratégia, são realizadas análises simbólica e dinâmica do programa, a partir das quais são extraídas informações que, combinadas, constituem-se em heurísticas para a geração de dados.
Palavras-chave: teste estrutural, geração de dados para teste, programação em lógica

Referências

BENCH-CAPON, T. et al. Two Aspectos of the Validation and Verification of Knowledge-Based Systems. IEEE Expert, no. 6. Jun. 1993.

CANFORA, G. et al. A Logic-Based Approach to Reverse Engineering Tools Production. IEEE Transactions on Software Engineering, vol. 18(12). Dec. 1992.

COEN-PORISINI, A. et al. Software Specialization Via Symbolic Execution. IEEE Transactions on Software Engineering, vol. 17(9). Setp. 1991.

CROSS, J. H. et al. Expert System Assisted Test Data Generation for Software Branch Covernge. Data & Knowledge Engineering, no. 6. Jun. 1991.

DARRINGER, J. A.; KING, J. C. Applications of Symbolic Execution to Program Testing. Tutorial Software Methodology. C. V. Ranamoortht & R. T. Ych. IEEE Catalog. EHO. 1978.

DeMILLO, R. A. et al. Software Testing and Evaluation. The Benjamin/Cummings Publishing Company, Inc. 1987.

FRANKL, P. G.; WEYUKER, E. J. A Data Flow Testing Tool. Proceedings SoftFairII, Software Development Tools, Tecniques and Alternatives. San Francisco, 1987. Pp. 46-53.

GOLDBERG, A. et al. Applications of Feasible Path Analysis to Program Testing. Proceedings of ISSTA 94. Seattle, USA. 1994.

HAMLET, D. Implementing Prototype Testing Tools. Software Practice and Experience, vol. 25(4). April, 1995,

HOFFMAN, D. M.; STROOPER, P. Automated Module Testing in Prolog. IEEE Transactions on Software Engineering, vol. 17(9). Sept. 1991

HOLBROOK, H. B. & THEBAUT, S. M. A Survey of Software Maintenance Tools that enhance Program Understanding. SERC-TR-9-F. Software Engineering Research Center. Univ. Florida/Purdue Univ., 1987.

HORGAN, J. R.; LONDON, S. Data Flow Coverage and the C Language. Proceedings Symposium on Software Testing, Analysis and Verification (TAV4). Victoria, BC. Oct. 1991. Pp. 87:97.

HOWDEN, W. E. DISSECT - A Symbolic Evaluation and Program Testing System. IEEE Transactions on Software Engineering, vol. 4(1). Jan. 1978,

JAFAR, M. & BAHILL, A. T. Interactive Verification of Knowledge-Based Systems. IEEE Expert, no. 2. Feb. 1993

KHANNA, S. Logic Programming for Software Verification and Testing, The Computer Journal, vol. 34(4). Jul. 1991.

KOREL, B. Automated Software Test Data Generation. IEEE Transactions on Software Engineering, vol. 6(8). Aug, 1990.

MALDONADO, J. C. et al. Critérios Potenciais Usos: Análise da Aplicação de um Benchmark. In: SIMPÓSIO DE ENGENHARIA DE SOFTWARE, 6., 1992. Gramado, 1992.

MENGSHOEL, O. J. & DELAB, S. Knowledge Validation: Principles and Practice. IEEE Expert, no. 6. Jun. 1993,

PALAVRO, I. Depuração de Software. Projeto de Diplomação. I/UFRGS. Porto Alegre, RS. 1996.

PRESSMAN, R. Engenharia de Software. Editora McCrow Books. 1995.

RAPPS, S.; WEYUKER, E. Selecting Software Test Data Using Data Flow Information. IEEE Transactions on Software Engineering, vol. 11(4). Apr. 1985.

Rich, C.; Waters, R. C. Automatic Programming: Myths and Prospects. IEEE Computer, Aug. 1988.

ROMBALDI, V. Heuristicas para Geração de Dados de Teste. Dissertação de Mestrado. CPGCC/UFRGS. Porto Alegre, R$. Maio 1996.

SILVA, Juliana B. da; PRICE, A. M. de'A. Métrica de Complexidade de Software baseada em Critério de Seleção de Caminhos de Teste. In: Anais do VII Simpósio Brasileiro de Engenharia de Software, p. 471-485. Curitiba, PR. Out. 1994.

SILVA, Juliana B. da PROTESTE+: Ambiente de Validação Automática de Qualidade de SW através de Técnicas de Teste e de Métricas de Complexidade. Dissertação de Mestrado. IVUFROS. Porto Alegre, RS. Fev. 1995.

SILVA, C. R. da. Slices no Processo de Teste Estrutural de Software. Projeto de Diplomação. II/UFRGS. 199%.

TSE, T. et al. The Application of Prolog to Structured Design. Software Practice and Experience, vol. 24. 1994

VERGÍLIO, S. R. at al. Uma Estratégia para Geração de Dados do Teste. VII Simpósio Brasileiro de Engenharia de Software. P. 306-319. Out. 1993.

VERGÍLIO, S. et al. Caminhos não-executáveis no Teste de Integração: Caracterização, Previsão e Determinação. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE, 8., 1994. Curitiba, 1994.
Publicado
15/10/1997
HERBERT, Juliana Silva de; PRICE, Ana Maria de Alencar. Estratégia de Geração de Dados de Teste Baseada na Análise Simbólica e Dinâmica do Programa. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 11. , 1997, Recife/PE. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 1997 . p. 397-411. DOI: https://doi.org/10.5753/sbes.1997.24061.