Uma Estratégia para Geração de Dados de Teste
Resumo
Teste de software é uma das atividades mais onerosas dentre as de garantia de qualidade de software. Dentro das atividades de teste, a etapa mais difícil de ser automatizada é a de geração de dados de teste para caminhos que cobrem os elementos requeridos por um determinado critério, pois não existe algoritmo tal que, dado um caminho completo qualquer, forneça o conjunto de valores para as variáveis de entrada do programa que executa o caminho dado; não existe algoritmo nem mesmo para dizer se esse conjunto existe, ou seja, se o caminho é executável. Neste trabalho é apresentada uma estratégia para reduzir os efeitos causados por caminhos não executáveis na geração de dados de teste. A estratégia permite em alguns casos, evitar que esforço seja gasto com esses caminhos e também permite reduzir custos, minimizando o número de caminhos a serem executados. Também é apresentada uma maneira de gerar dados de teste para os elementos requeridos pelo teste estrutural, a fim de que eles possam cobrir também certos tipos de erros, detectados por exemplo, por técnicas funcionais. Esses aspectos são discutidos através de exemplos de utilização.
Referências
Bicevks, J.; Borzovs, J.;Shaujums, U.; Zarins, A.; Miller, E., "SMOTL - A System to Construct Samples for Data Program Debugging", IEEE Trans. on Software Eng., 5(1), 60-66, Jan., 1979.
Bird, D.; Munoz, C., "Automatic Generation of Random Self-Checking Test Cases", IBM Syst. J., 22(3), 229-245, 1983.
Boyer, R.S.; Elspas, B.; Levitt, K.N., "Select - A Formal System for Testing and Debugging Programs by Symbolic Execution", SIGPLAN Notices, 10(6), 234-245, June, 1975.
Chaim, M.L., POKE-TOOL - Uma Ferramenta para Suporte ao Teste Estrutural de Programas Baseado em Análise de Fluxo de Dados. Tese de Mestrado, DCA/FEE/UNICAMP - Campinas, SP, Abril 1991.
Clarke, L., "A System to Generate Test Data and Symbolic Execute Programs", IEEE Trans. on Software Eng., SE-2(3), 215-222, Sept., 1976.
DeMillo, R.A.; Offutt J.; "Constraint-Based Automatic Test Data Generation", IEEE Trans. on Software Eng., 17(9), Sept., 1991.
Frankl, F.G., The Use of Data Flow Information for Selection and Evaluation of Software Test Data, PhD Dissertation, New York, Oct., 1987.
Herman, P.M., "Flow Analysis Approach to Program Testing", The Australian Computer Programs, Proc. 8th ICSE, London, UK, 1985.
Howden, W., "Methodology for The Generation of Program Test Data", IEEE Trans. on Comp., 24(5), May, 1975.
Howden, W., "Symbolic Testing and The DISSECT Symbolic Evaluation", IEEE Trans.on Software Eng., SE-4(4), 266-278, July, 1977.
Kernighan, B.W.; Plauger, P.J., Software Tools in Pascal. Addison-Wesley Publishing Company, Reading, Massachusetts, 1981.
Korel, B., "Automated Software Test Data Generation", IEEE Trans. on Software Eng., 6(8), 870-879, August, 1990.
Laski, J.W.; Korel, B., "A Data Flow Oriented Program Testing Strategy", IEEE Trans.on Software Eng., 9(3), 347-354, May, 1983.
Maldonado, J.C; Chaim, M.L.; Jino, M., Resultados do Estudo de uma Família de Critérios de Teste de Programas Baseada em Fluxo de Dados, Relatório Técnico - DCA/FEE/UNICAMP - RT/DCA-001/88 - Campinas, SP, Set., 1988.
Maldonado, J.C; Chaim, M.L.; Jino, M., "Seleção de Casos de Teste Baseada nos Critérios Potenciais Usos", II Simpósio Brasileiro de Engenharia de Software, Canela, RS, Out., 1988.
Maldonado, J.C., Critérios Potenciais Usos: Uma Contribuição ao Teste Estrutural de Software. Tese de Doutorado, DCA/FEE/UNICAMP - Campinas, SP, Julho 1991.
Malevris, N.; Yates, D.F.; Veevers, A., "Predictive Metric for Likely Feasibility of Program Paths" Information and Software Tochnolosv 29/9) March 1900.
Myers, G.J., The Art of Software Testing, Wiley, 1979.
Pressman, R.B., Software Engineering: a Practitioner's Approach, Third Edition, New York, McGraw-Hill, 1992.
Ramamoorthy, S.; Ho, F.S.; Chen, W.T., "On The Automated Generation of Program Test Data, IEEE Tran. on Software Eng,, SE-2(4), 293-300, Dec., 1976.
Rapps, S.; Weyuker, E.J., "Data Flow Analysis Techniques for Test Data Selection", in Proc. Int. Conf. Software Engineering, Tokyo, Sept., 1982.
Ural, U.; Yang, B., "A Structural Test Selection Criterion", Information Processing Leters, Jul., 1988.
Vergilio, S.R., Caminhos Não Executáveis: Caracterização, Previsão e Determinação para Suporte ao Teste de Programas. Tese de Mestrado, DCA/FEE/UNICAMP, Campinas, SP, Jan. 1992.
Vergilio, S.R.; Maldonado, J.C.; Jino, M. "Caminhos Não Executáveis na Automação das Atividades de Teste", VI Simpósio Brasileiro de Engenharia de Software, Gramado, RS, Nov. 1992.
Vergilio, S.R.; Maldonado, J.C; Jino, M., "Influência do Número de Predicados na Executabilidade de Um Caminho no Contexto de Teste Baseado em Fluxo de Dados", XIX Conferencia Latinoamericana de Informatica, Buenos Aires, Argentina, Março, 1993.
Weyuker, E.J., "The Cost of Data Flow Testing: An Empirical Study", IEEE Trans. on Software Eng. SE-16(2), 12-18, Feb., 1988.
White, L.J.; Cohen, E.L., "A Domain Strategy for Computer Program Testing", IEEE Trans. on Software Eng., 6(3), 247-257, May, 1980.