• Nenhum resultado encontrado

Critérios de Teste Baseados na Interação entre Regras Ativas

CASOS DE TESTE

5.3.6 Ameaças à Validade

Nesta subseção, são apresentadas ameaças à validade do experimento, de forma similar às limitações apontadas por Chaim (2001) em um experimento para o teste de fluxo de dados de programas com ponteiros e registros. A validade externa dos experimentos relaciona-se à generalização dos resultados às regras em uso no mundo real. Os resultados apresentados foram obtidos considerando-se algumas aproximações da realidade; por isso, eles devem ser analisados tendo em vista as limitações dessas aproximações.

Embora os defeitos introduzidos não representem de fato defeitos coletados da prática, eles são representativos dos diversos tipos de defeitos reais, conforme publicado em (Leitão et al., 2005). Mesmo assim, é pertinente replicar no futuro esse estudo para outras regras utilizadas na prática com defeitos reais identificados. Uma indagação seria se os resultados obtidos estariam sendo influenciados pela abordagem de geração de dados de teste, pois qualquer abordagem distinta da aleatória poderá introduzir alguma parcialidade a experimentos de engenharia de software (Kitchenham et al., 2002); conforme descrito na Subseção 5.3.2, buscou-se introduzir aleatoriedade na geração de bases de dados para o teste de regras. A adequação aos critérios foi

Critérios de Teste Baseados na Interação entre Regras Ativas 135

apreciada na ótica de cobertura dos elementos requeridos, para então quantificar a descoberta da presença de defeitos. As medidas realizadas buscaram estabelecer uma relação quantitativa entre adequação e descoberta de defeitos para cada granularidade de fluxo de dados.

Uma ameaça é o fato do experimento estar baseado em um único conjunto de regras, embora várias versões diferentes tenham sido utilizadas. Todavia, esse conjunto possui muitos pontos de interação, tornando complexo o seu comportamento em tempo de execução. Tais pontos de interação, sobretudo o disparo entre regras, resultaram, em alguns casos de teste, no exercício de mais de mil nós, elevando as chances de conduta inesperada ou incorreta dos conjuntos de regras.

Outra limitação é que os defeitos foram semeados artificialmente e são únicos em cada versão, apesar da seleção aleatória de ocorrências de manipulação e dos tipos de defeito. Na prática, observa-se que os programas em geral possuem vários defeitos. Deve-se ressaltar, entretanto, que o objeto do experimento é avaliar o desempenho das diferentes granularidades de fluxo de dados na detecção de defeitos em ocorrências de manipulação ligadas à interação entre regras, e obter indícios de que os critérios baseados na interação entre regras apóiam a descoberta desses defeitos. Nesse sentido, o isolamento de defeitos é interessante, pois permite rastrear o relacionamento entre a existência de tais defeitos e as hipóteses investigadas.

Os resultados devem ainda ser analisados levando em consideração as características dos dados de teste. A base de dados de entrada foi determinada pela combinação aleatória de dados para cada atributo da base de dados, os quais foram fornecidos pelo testador. Os comandos de disparo de regras buscaram cobrir as associações de interação nas diversas granularidades, em contextos reveladores e não reveladores de defeito. Os conjuntos selecionados, por sua vez, são

aproximadamente adequados, pois as associações não executáveis em cada precisão de fluxo de

dados foram determinadas pela avaliação subjetiva do testador. Dessa forma, a eficácia e o tamanho dos conjuntos adequados podem estar subestimados.

5.4 Considerações Finais

Um conjunto de critérios de adequação foi proposto neste capítulo, os quais são baseados no modelo de interação entre regras ativas discutido no Capítulo 4. A aplicação dos critérios visa a descoberta de defeitos que normalmente não são revelados no teste individual de regras. A essência dos critérios é explorar as relações de fluxo de dados persistentes existentes na interação entre regras, representando uma extensão ao critério todos os usos, pela dependência exclusiva de fluxo de dados e pela dependência resultante da transferência de controle oriunda do disparo entre regras.

A análise de inclusão entre os critérios propostos e alguns dos critérios baseados em fluxo de dados demonstrou que eles são incomparáveis. Abordagens de teste que endereçam unicamente variáveis de programa em geral não alcançam as relações de fluxo de dados persistentes. Observou-se que mesmo a abordagem de Spoto (2000) não cobre a interação entre regras, pois a definição de dados persistentes deve ser confirmada (execução implícita ou explícita do comando commit) antes de alcançar o uso de dados, condição esta não prevista pelos critérios propostos. Conclui-se que os critérios baseados na interação entre regras alcançam um contexto ainda não tratado por outras abordagens – interação entre regras escritas em SQL para o teste baseado em fluxo de dados persistentes –, o qual representa fonte de defeitos em aplicações de banco de dados ativos.

Mostrou-se, também, que o par (critério, granularidade) determina um novo requisito de teste, pois existe uma relação de inclusão entre os domínios de entrada próprios para cobertura de um particular critério em cada granularidade. Essa relação de inclusão é válida mesmo na presença de não executabilidade. O requisito (critério, granularidade) influencia a complexidade dos critérios propostos: (i) a redefinição de dados persistentes é sensível aos dados manipulados em cada ocorrência de manipulação; e (ii) as estruturas de fluxo de controle não dão origem ao cenário de pior caso. Foi observado que os critérios baseados na interação entre regras possuem complexidade polinomial.

Sobre o experimento aplicado, observou-se que as precisões de fluxo de dados – relação,

tupla, atributo e valor de atributo – não possuem papel suplementar na descoberta de defeitos;

Critérios de Teste Baseados na Interação entre Regras Ativas 137

descoberta de defeito ocorre de forma não sistemática em qualquer das granularidades: casos de teste reveladores de defeito estão relacionados à cobertura de associações de interação nas diversas precisões de fluxo de dados. A eficácia da cobertura de associações de interação alcançou 2/3 do conjunto adequado, obtendo índices de eficácia ainda mais favoráveis na direção de granularidades menos precisas.

Este estudo empírico apresentou índices propícios ao apoio dos critérios propostos à descoberta de defeitos na interação entre regras. Apesar dessa tendência, é pertinente a realização de novos estudos empíricos, visto que vários fatores estão envolvidos nos resultados do estudo, tais como: técnica adotada para a geração de dados de teste; regras ativas utilizadas no experimento; dados de entrada (dados de teste) gerados a partir da técnica adotada; defeitos e tipos de defeito nas regras ativas.

Capítulo 6

Implementação dos Critérios Baseados na Interação